Преобразуйте координаты к различному спроектированному CRS

Если вы непосредственно сравниваете наборы данных с различными спроектированными системами координат (CRSs), то результаты неточны. Поэтому прежде, чем сравнить наборы данных, сначала проверьте, что CRSs являются тем же самым. Если отличающийся предположил, что CRSs имеют тот же базовый географический CRS, то можно преобразовать координаты от одного спроектированного CRS до другого. Если на наборы данных ссылаются к тому же спроектированному CRS, можно сравнить их.

Чтобы преобразовать спроектированные координаты x-y к различному спроектированному CRS, первый непроект, x-y координирует к координатам долготы широты при помощи projinv функция. Затем спроектируйте координаты долготы широты к координатам x-y в различном спроектированном CRS при помощи projfwd функция.

Например, импортируйте файл форм, содержащий x-и y-координаты дорог в Бостоне. Также импортируйте информацию о файле форм как структура. Найдите спроектированный CRS для координат путем доступа к CoordinateReferenceSystem поле той структуры.

s = shaperead('boston_roads.shp');
x1 = [s.X];
y1 = [s.Y];
info = shapeinfo('boston_roads.shp');
p1 = info.CoordinateReferenceSystem;

Не спроектируйте координаты x-y и возвратите координаты долготы широты.

[lat,lon] = projinv(p1,x1,y1);

Выберите новый спроектированный CRS для целевой проекции. В данном примере создайте projcrs объект для зоны UTM 19 Н. Проверьте, что оба предположили, что CRSs имеют тот же географический CRS. Если географические CRSs отличаются, то спроектированные координаты могут быть неточными. Можно найти географический CRS путем запроса GeographicCRS свойство projcrs объект.

p2 = projcrs(26919);
p2.GeographicCRS.Name
ans = 
"NAD83"
p1.GeographicCRS.Name
ans = 
"NAD83"

Спроектируйте координаты долготы широты к координатам x-y путем определения projcrs возразите, что вы создали.

[x2,y2] = projfwd(p2,lat,lon);

Сравните исходные координаты x-y с новыми координатами x-y путем отображения их. Добавьте метки и заголовок на каждую фигуру.

figure
mapshow(x1,y1)
xlabel('x (meters)')
ylabel('y (meters)')
title(p1.Name)

figure
mapshow(x2,y2)
xlabel('x (meters)')
ylabel('y (meters)')
title(p2.Name)

Визуализация подобна, но координаты, отображенные вдоль линеек оси, соответствуют отличающийся, спроектировал CRSs.

Смотрите также

| | | |

Похожие темы