ArcGIS中任意选点获取栅格点的行列号

本人在arcgis中从栅格影像中任意选取代表点,但是只能得到点的地理坐标(单位:米)。而代入MATLAB获得该点信息必须要得到该点的行列号。几经周折,终于得到一毕业学长的提示,找到MATLAB中自带的函数map2pix解决问题。现提供代码如下,仅供各位参考:

%程序用于将arcgis中选点的地理坐标x,y转化为栅格影像数据的行列值
clc,clear all;

%读取影像坐标信息
path1=’C:\Users\hongLiang\Desktop\graph Of the Paper\tvdi – Band_1021.tfw’;
R = worldfileread(path1);

%输入代表点的地理坐标信息
xArr=[337534.037000,418849.340000,293550.789000,434961.890000,250309.658000,579420.669000,376670.474000,489423.750000,…
 348525.157000,271670.394000,278450.893000,395062.633000,295934.056000,295934.056000,456791.070000,414319.629000];

yArr=[3149544.901000,3135776.099000,2800939.887000,3261782.986000,3179205.782000,3191586.340000,2967300.524000,…
 3197098.577000,2861594.128000,2760617.994000,2737525.636000,3170668.673000,3079553.702000,3079553.702000,3150314.340000,3231377.910000];

len=length(xArr);

for i=1:len
    %用map2pix函数得到坐标点的行列值,但是得到的有负值,此处可以取个绝对值
    [row,col] = map2pix(R,xArr(i),yArr(i));
    %取绝对值
    row=abs(row);col=abs(col);
    %取整
    row=round(row);col=round(col);
    Col(i)=col;
    Row(i)=row;
end

转载自:https://blog.csdn.net/xiaomashitu1203/article/details/52502634

You may also like...