讀入與輸出shp檔案——Matlab
阿新 • • 發佈:2018-12-18
Matlab自帶有mapping box工具箱,該工具箱具有很多與地圖相關的功能,如下圖,詳情請訪問Matlab官網幫助. 讀寫shp檔案也是非常容易的事情。shp檔案在Matlab中被視為一個struct,每個欄位的屬性值則是struct的一個元胞。
讀入shp檔案
在命令列視窗輸入:
Map = shaperead('Example.shp')
結果如圖:
輸出shp檔案
與讀入shp相比,輸出shp檔案相比麻煩一些,需要自己建立一個struct,然後利用shapewrite函式將struct寫入shp檔案中。 主要包含步驟為:
%前面的部分為必要的欄位 Map.Geometry = '';%元素型別,Point,Line,Polygon等 Map.BoundingBox = [minx,miny,maxx,maxy]; Map.X = [];%座標X Map.Y = [];%座標Y %儲存相關欄位,至少需要一個,如果沒有其他欄位值的話, %在輸出時不會輸出dbf檔案,導致shp檔案不完整,沒辦法使用. Map.Id = ; Map.Location = ; …… shapewrite(Map,filename); %生成shp,dbf,shx三個檔案
例如:
for i=1:5
Map(i).Geometry = 'Polygon';
Map(i).BoundingBox = [100*i,100*i;100*i+100,100*i+100];
Map(i).X = [100*i,100*i+100,100*i+100,100*i,NaN];
Map(i).Y = [100*i,100*i,100*i+100,100*i+100,NaN];
Map(i).Id = i;
end
shapewrite(Map,'Example.shp');
儲存的struct如圖所示,
將Example.shp匯入Arcmap: