2016-02-04 6 views
1

У меня есть GeoDataFrame с несколькими полигонами (из некоторых файлов формы графства).geandas: как «нормализовать» геодезии

0  POLYGON ((-118.71455 46.822508, -118.67662 46.... 
1  POLYGON ((-118.663169 47.043673, -118.66334 47... 
2  POLYGON ((-118.484262 46.73667, -118.495995 46... 
3  POLYGON ((-118.483051 46.839378, -118.482689 4... 
4  POLYGON ((-118.82874 46.77891, -118.822177 46.... 
5  POLYGON ((-118.606476 46.96391999999999, -118.... 

Я пытаюсь сделать принять некоторые пересечения этих полигонов с некоторыми многоугольников в другом GeoDataFrame (то же самое состояние). Однако координаты многоугольников совершенно разные.

0  POLYGON ((552346.2856999999 380222.8998000007,... 
1  POLYGON ((529754.7249999996 409135.9135999996,... 
2  POLYGON ((552333.0957000004 371726.9315000009,... 
3  POLYGON ((542734.0181999998 376530.5831000004,... 
4  POLYGON ((552291.6204000004 362052.4251000006,... 

Это одно и то же состояние, и участки выглядят одинаково. Я новичок в шейп-файлах, но думаю, если бы я мог «нормализовать» эти полигоны (делить все точки в измерении x на их наименьшее значение, то же самое для измерения y), то многоугольники в двух DataFrames должны быть сопоставимы.

Я пробовал:

df.scale(origin=(1,1)) 

, а также

df.scale(xfact=1.0/df.total_bounds[0], yfact=1.0/df.total_bounds[1]) 

без каких-либо удачи. Они просто возвращают свои исходные значения (или близки к значениям, которые должны быть от 1 до 2). Я мог бы перебирать эти полигоны и распаковывать их точки и делить их, но я надеюсь, что есть более элегантный способ решения.

Запуск последней версии geandas 0.1.0, python 2.7 (я знаю ... время для перехода) OSX.

ответ

2

Вам необходимо перепрограммировать или преобразовать одну из геометрий в общую систему координат.

См. documentation for GeoSeries.to_crs(crs=None, epsg=None).

Первый GeoDataFrame выглядит как EPSG: 4326 (это предположение, существуют и другие географические системы координат). Второй вариант - это проекция плоскости UTM или State.

 Смежные вопросы

  • Нет связанных вопросов^_^