有哪些 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或者關注我的博客,寫得不是很好,希望各路大神多多留言指導。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資料庫的架構是怎樣的?
※測繪這個行業到底應該往哪邊靠??