Работа с системами координат в GeoPandas

Работа с геопространственными данными в Python

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

Информация о СКО в GeoPandas

Атрибут .crs объекта GeoDataFrame/GeoSeries:

import geopandas
gdf = geopandas.read_file("countries.shp")
print(gdf.crs)
{'init': 'epsg:4326'}
Работа с геопространственными данными в Python

Ручная установка СКО

gdf_noCRS = geopandas.read_file("countries_noCRS.shp")
print(gdf_noCRS.crs)
{}

Добавление информации о СКО в crs:

# Option 1
gdf.crs = {'init': 'epsg:4326'}

# Option 2
gdf.crs = {'proj': 'longlat', 'datum': 'WGS84', 'no_defs': True}
Работа с геопространственными данными в Python

Преобразование в другую СКО

import geopandas
gdf = geopandas.read_file("countries_web_mercator.shp")
print(gdf.crs)
{'init': 'epsg:3857', 'no_defs': True}

Метод to_crs():

# Option 1
gdf2 = gdf.to_crs({'proj': 'longlat', 'datum': 'WGS84', 'no_defs': True})

# Option 2 gdf2 = gdf.to_crs(epsg=4326)
Работа с геопространственными данными в Python

Зачем преобразовывать СКО?

1) Источники с разными СКО

df1 = geopandas.read_file(...)
df2 = geopandas.read_file(...)

df2 = df2.to_crs(df1.crs)
Работа с геопространственными данными в Python

Зачем преобразовывать СКО?

1) Источники с разными СКО

2) Картографирование (искажение формы и расстояний)

Работа с геопространственными данными в Python

Зачем преобразовывать СКО?

1) Источники с разными СКО

2) Картографирование (искажение формы и расстояний)

3) Вычисление расстояний и площадей

Работа с геопространственными данными в Python

Как выбрать подходящую СКО?

Советы:

  • Используйте проекцию, подходящую для вашего региона
  • У большинства стран есть стандартная СКО

Полезные ресурсы:

Работа с геопространственными данными в Python

Итоги

  • Для преобразования СКО используйте метод to_crs()
  • Убедитесь, что все наборы данных имеют одинаковую СКО
  • При вычислении расстояний, площадей и т. д. -> используйте проецированную СКО

Полезные ресурсы:

Работа с геопространственными данными в Python

Давайте потренируемся!

Работа с геопространственными данными в Python

Preparing Video For Download...