đi tới Topic :: Khoa học / Kỹ thuật :: GIS
bạn có tất cả các Mô-đun Python cho GIS (để làm việc với shapefiles, raster, KML, GML, GPX mã hóa, v.v.)
Điều quan trọng nhất đã được trích dẫn nhưng tôi cũng khuyên Fiona
" Fiona cung cấp giao diện Python tối thiểu, không phức tạp cho thư viện truy cập geodata đáng tin cậy nhất của cộng đồng GIS và tích hợp dễ dàng với các gói Python Python khác như pyproj, Rtree và Shapely. "
và để kết nối với shapefiles hoặc Esri Feature Class với mô đun Networkx Công cụ địa lý mạng hình học : " Theo như tôi có thể nói, ESRI đã không phát hành bất kỳ công cụ xử lý địa lý nào cho Mạng hình học của họ " hoặc Giải pháp thay thế cho pgRouting hoặc Python: cách chuyển đổi một shapefile (hoặc tính năng lớp ESRI) trong mạng cấu trúc liên kết (biểu đồ) (bằng tiếng Pháp)
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
Tôi sử dụng Shapely, Fiona, GDAL / OGR, Pyshp, Networkx và những người khác trong QGIS và GRASS GIS mà không gặp vấn đề gì (và với matplotlib hoặc descartes để vẽ đồ thị tương tác). Họ thường có các thuật toán dễ sử dụng hơn để điều trị.
Một số mô-đun này cũng có thể được sử dụng trong ArcPy có vấn đề vì ArcPy sử dụng phiên bản 1.3 của Numpy, đã lỗi thời (hiện là phiên bản 1.6.1 ...) và bạn không thể cập nhật nó mà không phá vỡ mô-đun ArcPy.