перейти к теме :: Научно-технические разработки :: ГИС
и все модули Python для ГИС (для работы с шейп-файлами, растрами, KML, GML, геокодированием GPX и т. д.)
Наиболее важные из них уже упоминались, но я также рекомендую Fiona:
« Fiona предоставляет минимальный несложный интерфейс Python для самой надежной библиотеки доступа к геоданным с открытым исходным кодом GIS-сообщества и легко интегрируется с другими пакетами Python GIS, такими как pyproj, Rtree и Shapely ».
и для работы в сети с шейп-файлами или классом объектов Esri с модулем Networkx Геообработка геометрической сети : « Насколько я могу судить, ESRI не выпустила никаких инструментов геообработки для своей геометрической сети » или Альтернативы pgRouting или Python: как преобразовать шейп-файл (или класс объектов ESRI) в топологической сети (граф) (на французском)
import networkx as nx
G = nx.read_shp('pointshapefile.shp')
print(G.nodes())
# result [(1.0, 2.0), (3.0, 2.0), (0.0, 0.0), (3.0, 1.0), (4.0, 4.0), (2.0, 1.0), (2.0, 4.0), (1.0, 3.0), (2.0, 3.0), (1.0, 4.0), (4.0, 3.0), (4.0, 2.0), (3.0, 4.0), (1.0, 1.0)]
print(G.edges())
# result [((1.0, 2.0), (1.0, 1.0)), ((3.0, 2.0), (2.0, 1.0)), ((3.0, 1.0), (2.0, 1.0)), ((4.0, 4.0), (3.0, 4.0)), ((2.0, 1.0), (1.0, 1.0)), ((2.0, 4.0), (2.0, 3.0)), ((1.0, 3.0), (1.0, 2.0)), ((2.0, 3.0), (1.0, 2.0)), ((1.0, 4.0), (1.0, 3.0)), ((4.0, 3.0), (4.0, 2.0)), ((4.0, 2.0), (3.0, 2.0)), ((3.0, 4.0), (2.0, 3.0)), ((1.0, 1.0), (0.0, 0.0))]
# shortest path
print(nx.astar_path(H,(1.0, 4.0),(4.0, 2.0),dist))
# result [(1.0, 4.0), (1.0, 3.0), (1.0, 2.0), (2.0, 3.0), (3.0, 2.0), (4.0, 2.0)]
# and so with all the algorithms of Networkx module
# you can also export the results in shapefile format
Я использую Shapely, Fiona, GDAL / OGR, Pyshp, Networkx и другие в QGIS и GRASS GIS без проблем (и с matplotlib или descartes для интерактивного построения графиков). У них часто есть алгоритмы, которые легче использовать для лечения.
Некоторые из этих модулей также могут использоваться в ArcPy с проблемами, поскольку ArcPy использует устаревшую версию 1.3 Numpy (теперь версия 1.6.1 ...), и вы не можете обновить ее, не сломав модуль ArcPy.