有哪些 GIS+Python 的開發經驗值得分享?

我目前能夠找到的只有像Python Geo-Spatial Devlopment[1]這樣有一定年齡的教學書籍,和零散的技術文章[2]。可是具體該怎麼系統學習應用完全沒方向,求教。例如mapfish[3],看了一下介紹就覺得很牛逼,可是不會用。。。

[1]Python Geo-Spatial Development (豆瓣)

[2]W-06: Solid Web Mapping with Python

[3]MapFish — MapFish


GIS 和 python 的結合有很多種可能性

  • Arcpy 參考ArcPy and ArcGIS (豆瓣), pyQGIS 參考PyQGIS Developer Cookbook
  • Geopython GIS相關庫

  • GDAL 參考 Welcome to the Python GDAL/OGR Cookbook!
  • 各種空間資料庫,如 spatialite 參考 SpatiaLite Cookbook

基礎庫(抽象庫)

  • GDAL 不多說,GIS萬物本源
  • Proj.4 製圖學投影轉換庫
  • geojson geojson數據處理,點線面

高級庫

  • Shapley GIS的圖像處理
  • Fiona GIS數據讀入寫出
  • Rtree Rtree空間索引
  • pyproj Proj.4的介面擴展
  • OWSLib WMS地圖服務發放
  • basemap 畫地圖

超高級庫

  • geopandas 整合了pandas,shapely,fiona,descartes,pyproj和rtrees可以直接用於數據處理
  • geodjango django出品,保護GDAL,GEOS等可以發送地圖服務

參考 Python 筆記三:Geopython GIS相關庫

而如今,javascript在互聯網的地位也變得越來越重要,GIS+JS的項目也氤氳而生,所以問題來了。參考:有哪些GIS+JavaScript(node.js)的開發經驗值得分享? - Node.js

或者關注我的博客,寫得不是很好,希望各路大神多多留言指導。

Awesome GIS(GIS Tech Stack技術棧)

Geomatics專欄點此:Geomatics(GIS,GPS,RS,Surveying)

語言

  • Python 最好的快速開發語言,是一門API藝術

    • awesome-python
    • 1簡單的入門
    • 2總結入門坑及基礎資源
    • 3Geopython GIS相關庫
    • 4Python的常用庫入門
    • 5Flask框架
    • 6入門爬蟲坑--網頁數據壓縮(python deflate gzip)
    • 7Requests爬蟲技巧
  • Node.js 最炙手可熱的網路技術源泉,可用於WebGIS

    • awesome-javascript
    • 1常用Global庫
    • 2入門及GeoNode.js GIS相關庫

前段

  • Leaflet 兼容移動端,和現代的一些框架一樣優先考慮移動端
    • 1leaflet入門
    • 2簡單插件編寫leaflet-pip-v2
    • 3進階插件編寫geojsonFilter
  • Mapbox總有人討論「Mapbox VS Leaflet?」這是個爛問題,Mapbox是Leaflet的超集,就像Typescript和Javascript之間的關係一樣
  • Openlayer3扯淡大叔教程
  • Turf js層面做出簡單的空間分析

後端

  • Geoserver 基於Java的地理信息服務的發布,使用簡單
  • Mapserver 基於C語言的地理信息服務的發布,內存佔用小
  • GDAL 數據格式轉換
    • 1GDAL命令行入門
    • 2python for GDAL
    • 3gdal CLI Cheat Sheet

數據格式

  • GeoJSON 開源地理信息JSON格式
    • awesome-geojson
    • geojson-js-utils 空間數據簡單處理js實現
    • geojson-python-utils空間數據簡單處理python實現
  • TopoJSON 開源地理信息JSON格式,大小要比GeoJSON小40%
  • TileJSON 瓦片數據包裝的JSON格式,用的不多
  • WKTWKB 文本標記語言表示矢量數據
    • WKTWKB 筆記一:格式介紹

資料庫

  • Spatialite 空間數據的查詢等處理,小項目足矣
    • 1簡單的入門
    • 2CLI Cheat Sheet
    • 3python for Spatialite
    • 4NET平台使用spatilite擴展
    • 5Spatiliate2GeoJson數據的轉換
  • Postgresql 大型空間數據項目
  • MBTILES 承載瓦片的數據,快速索引
    • 1入門與簡單應用

瓦片渲染

  • Global Mapper 專門用作已有柵格圖像切片
  • Mapnik 專門用於矢量數據的切片
  • TileMill 在矢量數據渲染時,運用CartoCSS對矢量數據賦予樣式

數據處理

  • QGIS 開源GIS數據處理桌面軟體,其中包含Grass,SAGA兩個學術界開源GIS平台
    • 1簡單的介紹
    • 2地圖綜合
  • Mapsharper 數據綜合神器
    • 1地圖綜合神器

數據資料

  • 地理空間數據云 沒想到數據來的這麼快

填坑

  • 1網頁端JS的緩存問題
  • 2Angular遇到的一些坑
  • 3SpatialiteSharp的使用坑

整個技術棧主要針對的是輕量或者小項目去考慮,運用一些流行的儘可能開源的工具去做,這是我的一些想法和筆記,詳情參考從mapbox的開源工具看Web GIS的發展,希望能給您一點點幫助。PS:我在github上看到一個awesome gis,並非我主導的,希望各位GISer可以一起參與修改。

轉載,請表明出處。總目錄Awesome GIS


python之於GIS與python之於IT類似

GISer採用python的原因也在於「人生苦短,我用python」

python在gis中的應用非常之廣

1. desktop GIS:

ArcGIS從版本10開始不再支持原來的VBA,而改用python

QGIS本身大部分的代碼特別是插件部分可以採用python進行開發

2. 地圖引擎

mapnik—基於C++引擎的頂級地圖引擎庫,和python結合比較緊密

mapfish—支持部分專題地圖在線製作

3. webgis

python+geodjango 是最常用也最龐大的後台框架

GISer使用python一定要充分發揮python語言的特性

如ArcGIS集成phthon是利用了python的腳本語言特性

後台webgis等服務,可以發揮python作為語言黏合劑的特性,充分利用已有的GIS演算法庫


1、如果之前沒有接觸過Python但有一定的編程基礎,極力推薦 深入 Python 3 這本書,對比《Python基礎教程》的基礎全面,這本書更加簡潔、實用、上手快。

2、Python與ArcGIS結合,推薦《Programming ArcGIS 10.1 with Python Cookbook》(英文版)這本書,主要使用簡短的Python腳本批處理ArcGIS文件,實用、上手快。

附圖:


之前做過一個開源WebGIS系統,可以分享下一點WebGIS與Python結合的經驗。

我用是全開源框架:OpenLayers 3 + GeoServer

其中用到Python是發布Web Processing Service的時候,GeoServer裡面本身提供了直接用Python編寫Web Processing Service,自己寫個WPS的Python腳本放在一個固定目錄下就可以了,具體的做法可以參考Mastering GeoServer裡面第九章的內容,這本書在我百度雲里,就在這個鏈接上。

還有一些發布實施WPS的Python庫有:

52°North Initiative for Geospatial Open Source Software GmbH;

PyWPS ? PyWPS

另外要是會科學上網的話,國外優酷上面有一些GIS+Python的教學視頻可以看看,直接搜這兩個關鍵字就可以。

希望能給你提供一定的參考~


請問您自己有看過這本書嗎?書中除了代碼外,用於操作的數據是該書的作者自己準備的吧?需要去買是嗎?比較著急,希望能給於回復哈


推薦閱讀:

有沒有 好的Arcpy案例,Arcgis批處理相關的需求,相關的書籍介紹?
LBS資料庫的架構是怎樣的?
測繪這個行業到底應該往哪邊靠??

TAG:Python | GIS地理信息系統 |