转到主题::科学/工程:: GIS
并找到所有用于GIS的Python模块(用于处理shapefile,栅格,KML,GML,GPX地理编码等)。
最重要的部分已经被引用,但我也建议 Fiona:
“ Fiona为开源GIS社区最受信任的地理数据访问库提供了一个最小,简单的Python接口,并且可以轻松地与pyproj,Rtree和Shapely等其他Python GIS软件包集成。 ”
对于使用shapefile进行联网或使用Networkx模块Geometric Network Geoprocessing进行 Esri Feature Class 联网:“ 据我所知,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
我在QGIS和GRASS GIS中使用Shapely,Fiona,GDAL / OGR,Pyshp,Networkx和其他工具都没有问题(并且使用matplotlib或笛卡尔进行交互式绘图)。他们通常拥有更易于使用的算法。
其中一些模块也可以在有问题的ArcPy中使用,因为ArcPy使用的Numpy版本为1.3,已过时(现在为1.6.1 ...),并且如果不破坏ArcPy模块就无法对其进行更新。