geopyspark入門

背景

    對於GIS的大數據量實時數據分析和渲染的需求,ArcGIS Server和Geoserver、普通空間數據庫往往難以滿足,對此我一直感覺很沮喪。這時就要尋求大數據的分佈式框架幫助。(ArcGIS的ga也可以,但是太貴)

現狀

    我瞭解到有Geomesa,Geotrellis,GeoWave三大框架。GeoWave和Geomesa都可以支持Geoserver,但是Geotrellis可以支持這兩個框架。Geotrellis是一個高性能的GIS數據應用,可以處理柵格和矢量數據,提供實時的rest服務,能夠渲染數據並提供切片服務。本文要使用的是它的py版geopyspark。

準備

    首先在linux(Centos 7)環境中安裝docker,參考菜鳥教程(安裝教程)。然後執行下面的命令,經過漫長的等待(裝了一天,終於在早上裝好了),完成就會啟動項目。

<code>

sudo

docker

run

-it

--rm

--name

geopyspark

-p

8000

:8000

quay

.io

/

geodocker

/

jupyter-geopyspark

:b

log

/<code>
geopyspark入門

geopyspark入門

    瀏覽器訪問localhost:8000/鏈接,輸入賬戶名密碼hadoop.jupyter中有一個自帶例子,修改原來的下載數據代碼,註釋例子中最後一個格子的代碼,程序會自動下載數據並讀取數據計算分析生成切片展示到前臺界面(原數據因為牆的問題通過代碼下載失敗,所以我事先下好數據放到github上面)

<code>!curl -o 

/tmp/bars.geojson https:/

/raw.githubusercontent.com/tpolong/geodocker/master/bars.geojson !curl -o

/tmp/cafes.geojson https:/

/raw.githubusercontent.com/tpolong/geodocker/master/cafes.geojson !curl -o

/tmp/transit.geojson https:/

/raw.githubusercontent.com/tpolong/geodocker/master/transit.geojson !curl -o /tmp/roads.geojson https:/

/raw.githubusercontent.com/tpolong/geodocker/master/roads.geojson /<code>

成果

geopyspark入門

    本例中主要實現的是距離成本計算,根據酒吧、咖啡館、中轉站的不同權重結合道路計算距離成本,有藍色向黃色轉變表示成本由高到低的變化。

參考資料:

Geotrellis官網

geospark的github地址

how-to-run-geopyspark-in-a-geonotebook-with-docker

introducing-geopyspark-a-python-binding-of-geotrellis


分享到:


相關文章: