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

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

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

Например, импортируйте файл shapefile, содержащий координаты x и y дорог в Бостоне. Также импортируйте информацию о файле shapefile как о структуре. Найдите спроецированную 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 объект для 19N зоны UTM. Проверьте, что обе проектируемые CRS имеют одинаковые географические CRS. Если географические CRS отличаются, то проективные координаты могут быть неточными. Вы можете найти географическую 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 contains an axes. The axes with title NAD83 / Massachusetts Mainland contains an object of type line.

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

Figure contains an axes. The axes with title NAD83 / UTM zone 19N contains an object of type line.

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

См. также

| | | |

Похожие темы