Какие единицы измерения используются функциями GeoPandas / Shapely и расстоянием?


13

это выглядит как глупый вопрос, но я не могу найти четкий ответ на этот вопрос: какие единицы геопанда / стройно использовать вычисление расстояния / площади между объектами?

Ответы:


15

Shapely использует систему декартовых плоскостей для вычисления геометрии (расстояние = евклидово расстояние)

Shapely не поддерживает преобразования системы координат. Все операции над двумя или более объектами предполагают, что объекты существуют в одной и той же декартовой плоскости.

GeoPandas использует Fiona для чтения шейп-файлов (и других) и Pyproj для картографических преобразований.

Система координат координат (CRS) векторных данных коллекции доступна через атрибут crs только для чтения.

import fiona
c = fiona.open("test.shp")
print c.crs['units']
m

Единицей для расчета расстояния / площади между объектами с помощью Shapely является метр в этом случае.

То же самое с GeoPandas

import geopandas as gp
df = gp.GeoDataFrame.from_file('test.shp')
print df.crs['units']
m

Это означает, что если вы работаете с crs.unit = deg (например, WGS84), все вычисления неверны. Сначала вы должны перепроецировать свой слой ( Как преобразовать проекции Eastings и Northings в WSG84 в геопандах? )


1
Что-то меняется, когда вы загружаете из PostGIS? Я устанавливаю координаты в качестве аргумента при вызове read_postgisрезультирующего фрейма данных только с атрибутом crs, который является строкой. У него нет атрибута crs['units']; попытка запросить это приводит к TypeError.
17

3

Какие бы единицы не были представлены координатами в вашей геометрии.

Стройные геометрии являются декартовыми и не делают никаких предположений о том, является ли Лон / Лат или кем-то еще.


0

Для Geopandas это зависит от назначенной системы координат координат GeoDataFrame.

Для shapely в тех же единицах декартовой плоскости, shapely не поддерживает источник CRS .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.