在matlab中將處理結果輸出為shp檔案

2021-09-07 01:29:38 字數 1080 閱讀 4108

在matlab中讀入shp檔案很簡單,乙個函式shaperead就可以了,但輸出為shp檔案就稍微麻煩一些了。shp檔案實際上就是乙個struct,因此得到處理結果後,要先將資料變成struct結構,然後呼叫shapewrite函式就可以了。

clc;clear;close all;

[pic, r] = geotiffread('boston.tif'); %讀取tif影象

gray=rgb2gray(pic);

bw=im2bw(gray,0.1); %閾值分割

bw=1-bw;

bw1 = bwareaopen(bw,30000); %刪除面積小於500000的區域

bw2=imfill(bw1,'holes'); %填充孔洞

figure(1),imshow(bw2);

bw3=bwboundaries(bw2); %得到邊緣輪廓,乙個輪廓為乙個line

num=size(bw3,1); %行數

str = 'struct(''geometry'',values ,''x'', values,''y'', values,''id'',values)';

values = cell(num, 1); %為結構體賦初值

s =eval(str);

clear values;

for i=1:num

data=bw3; %得到輪廓線的座標,乙個n*2的矩陣,此座標為本地影象座標

s(i).geometry='line';

s(i).id=i;

[x,y]=pix2map(r,data(:,1),data(:,2)); %將本地影象座標轉換為地理座標

s(i).x=[x;nan]';

s(i).y=[y;nan]';

endfigure(2),axis off;

mapshow('boston.tif'); %繪製遙感影像

mapshow([s.x], [s.y],'color','r'); %繪製輪廓線

shapewrite(s,'water.shp'); %輸出shp檔案,會生成字尾名為shp,shx和dbf的三個檔案

在PHP中使用MySQL擴充套件庫處理結果集

link mysql connect localhost root or die connect error mysql select db test or die select db error sql select id,name,price,num,desn from shops result...

JDBC高階應用 處理結果集

處理結果集 查詢結果都保持在resultset結果集中,遍歷結果集便可以取得其中的資料。實際應用中,一般會查詢多個 查詢多個 可以使用同乙個statement或者preparedstatement實現,返回同乙個resultset物件 例如 string sql select from table1...

非同步記錄日誌 獲取非同步處理結果

1.場景 有事務的情況下,記錄將異常資訊記錄到異常表中 2.處理過程 2.1本來是加上never或者notsurport註解,然後在throw拋異常之前把異常資訊插入資料庫,但是未成功,拋異常時回滾 2.2finally中呼叫被 async註解的方法 2.3注意 這個帶 async註解的方法要放在其...