перейти до теми: Науково-технічний: GIS і у
вас є всі модулі Python для ГІС (для роботи з форм-файлами, растрами, KML, GML, геокодування GPX тощо)
Найважливіші вже були цитовані, але я рекомендую також Fiona
" Fiona забезпечує мінімальний, нехитрий інтерфейс Python до найбільш надійної бібліотеки доступу геодезистичної спільноти з відкритим кодом та легко інтегрується з іншими пакетами GIS Python, такими як pyproj, Rtree та Shapely. "
а також для створення мереж з shapefiles або Esri Feature Class з модулем Networkx Геометрична мережа Geoprocessing : " Наскільки я можу сказати, ESRI не випустив жодних інструментів для геообробки для їх Геометричної мережі " або альтернатив pgRouting або Python: як трансформувати shapefile (або клас особливості 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.