exponenta event banner

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

Если непосредственно сравнивать наборы данных с различными проектируемыми системами координат (CRS), результаты будут неточными. Поэтому перед сравнением наборов данных сначала проверьте, что CRS одинаковы. Если разные проектируемые CRS имеют одну и ту же базовую географическую 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 объект для 19N зоны UTM. Убедитесь, что обе проектируемые 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.

См. также

| | | |

Связанные темы