gdal庫是gis開發常用的一個類庫,本身是用C/C++進行編寫的,同時提供了其他語言的調用接口,nodejs中是以npm的形式進行安裝,本地電腦裝了個vs2017,導緻安裝這個包的時候一直在node-gyp報錯,安裝不上,各種鼓搗,終于把這個gdal包裝上了。
公衆号之前的文章,分享開源mapbox-gl地形生成代碼,這是python語言實作的,現在python不怎麼用了,電腦上不想裝太多的軟體環境,考慮用nodejs實作一下,簡單的将dem資料轉換成rgb的顔色資料。
環境安裝,報node-gyp錯誤的加油解決
:
npm install gdal --save
gdal庫能操作影像、高程資料,同時也能夠操作矢量資料,這裡根據功能,簡單說一下影像資料的操作,以tif格式的資料為例:
打開/建立一個影像/高程資料:
let dataset = gdal.open("sample.tif");
一般影像資料有3個band,高程資料一個band,get的索引從1開始
let nband1 = dataset.bands.get(1)
band上的根據像素位置擷取值,在高程的操作中,這個是高度值
const topLeft = nband1.pixels.get(0, 0);
band上像素值的設定
nband1.pixels.set(0, 0, 'newvalue')
按照以上的步驟,讀取一個高程資料,就能夠轉換成rgb的顔色值了。
dem原始資料
dem顔色資料
高程疊加影像效果three.js效果,參見公衆号文章Three.js開發:高程資料加載:
- http://naturalatlas.github.io/node-gdal/classes/gdal.html
- https://www.npmjs.com/package/gdal