PostGIS事實上算是筆者開始寫部落格的第一篇内容。而事實上那篇博文的内容并不豐富,筆者對PostGIS的了解仍然不多,然而17年在OSGeo課程學習時對PostGIS又有了進一步了解,并逐漸發現它的強大。剛好最近又遇上一個問題,也使我萌發了開坑PostGIS的想法。
1 PostGIS簡介
PostGIS是對象關系型資料庫系統PostgreSQL的一個擴充,PostGIS提供如下空間資訊服務功能:空間對象、空間索引、空間操作函數和空間操作符。同時,PostGIS遵循OpenGIS的規範。PostGIS的版權被納入到GNU的GPL中,也就是說任何人可以自由得到PostGIS的源碼并對其做研究和改進。正是由于這一點,PostGIS得到了迅速的發展,越來越多的愛好者和研究機構參與到PostGIS的應用開發和完善當中。
以上引自百度百科。
下面是我的第一篇部落格。
桌面GIS連接配接Postgresql總結安裝可以在網上搜尋教程,在連接配接ArcGIS、QGIS拓展内容可見上文。
2 關鍵問題
最近需要的一個工作是基于土地覆被資料和其他資料做一個簡單的适宜用地提取。其實總結起來就是各種基礎的空間疊加分析,但是卻遇上了一個關鍵問題。土地覆被資料分辨率為300 m,下圖即為土地覆被資料(已提取了需要的土地覆被類型)。為了面積準确性,進行栅格轉矢量的時候并沒有選擇簡化面。結果導緻資料量非常巨大。
打開屬性表可以發現,研究區一共有3146163條資料。
然後需要和另外一個結果做空間疊加(Intersection,相交),得到适宜用地的空間分布。結果由于資料量太大運作時間較長。在ArcGIS平台測試結果如圖。花了21分鐘27秒。
筆者同時嘗試着使用了ArcGIS Pro來進行大資料量的矢量相交計算。計算時間為13分鐘6秒。
也有人給的建議是選用PostGIS進行計算。于是進行了測試。
需要設定SRID和geometry。接下來在PostGIS的SQL查詢裡運作如下的SQL查詢。
SELECT ST_Intersection(suitablewgs84.geometry, ecooutwgs84.geometry)
FROM public.suitablewgs84 INNER JOIN public.ecooutwgs84 on ST_Intersects(suitablewgs84.geometry, ecooutwgs84.geometry)
可能是目前學習不夠深入,速度似乎不夠快。而這也是本部分學習筆記的開篇。
先放一些PostGIS的資料。
postgresql學習資料 PostGIS