Форум Блог
pix

Основы макроязыка EASI (PCI Geomatica)
Часть 3. Географическая привязка и проекции.

Третья часть серии статей о языке EASI, основные команды для географической привязки и работы проекциями, системами координат.

Содержание

Поддерживаемые проекции, эллипсоиды и датумы

Стандартные программы EASI поддерживают ограниченный набор проекций и эллипсоидов. Тем не менее, он обычно бывает достаточным для работы с большинством типов данных. Для того, что бы назначить проекцию, используется ее код. Список кодов проекций приводится ниже:

Проекции, поддерживаемые на эллипсоиде
ACEA - Albers Conical Equal-Area
CASS - Cassini
EC - Equidistant Conic
KROV - Krovak
LCC - Lambert Conformal Conic
MER - Mercator
MSC - Mod. Stereographic Conformal (Alaska)
OM - Oblique Mercator
PC - Polyconic
PS - Polar Stereographic
RSO - Rectified Skew Orthomorphic
SOM - Space Oblique Mercator
SPAF - State Plane (U.S. Feet)
SPCS - State Plane (Metres)
SPIF - State Plane (International Feet)
TM - Transverse Mercator
UPS - Universal Polar Stereographic
UTM - Universal Transverse Mercato

Кроме того, географические координаты - LONG/LAT.

Проекции, поддерживаемые ТОЛЬКО на сфере:
AE - Azimuthal Equidistant
ER - Equirectangular
GNO - Gnomonic
GOOD - Goode's Homolosine
GVNP - Gen. Vertical Near-Side Perspective
LAEA - Lambert Azimuthal Equal-Area
MC - Miller Cylindrical
OG - Orthographic
ROB - Robinson
SG - Stereographic
SIN - Sinusoidal
VDG - Van der Grinten
(Если в параметрах проекции указан другой эллипсоид, этот параметр игнорируется и выполняется пересчет со сферы).

Эллипсоиды обозначаются кодами, начинающимися с буквы «Е». Буква может быть опущена (тогда предполагается, что используется эллипсоид). Список эллипсоидов довольно большой. Вы можете сами найти код нужного Вам эллипсоида в справочной системе EASI. Приведем лишь наиболее часто используемые:
Е000 (или просто 0) - Сlarke 1866 (этот эллипсоид будет подразумеваться в том случае, если никакого эллипсоида и датума не указано!)
Е008 - GRS 1980
Е012 - WGS 84
Е015 - Krassovsky
Е019 - Sphere of Radius 6370997 metres

Эллипсоид может быть задан полуосями ("6378206.4 6356583.8").

Датум задается числовым кодом, начинающимся с буквы «D». Информация о проекции содержит только что-то одно: или имя эллипсоида (тогда подразумевается геоцентрический датум) или имя датума (тогда имя эллипсоида однозначно определено кодом датума). Некоторые распространенные датумы:
D800 – геоцентрический датум для сферы (=Е019)
D000 – WGS 84 (=Е012)
D203 – Pulkovo 1942 (для России)
D-01 - NAD27 (USA, NADCON)
D-02 - NAD83 (USA, NADCON)

Пользовательские датумы могут быть добавлены в таблицу датумов, хранящуюся в текстовом формате ($PCIHOME/etc/datum.txt). Обратите внимание, что бы номер нового датума не совпадал с уже имеющимися в таблице!

Вывод информации о проекции

Информация о привязке и проекции файла хранится в специальном сегменте данных, имеющем номер 1. Вывести на экран или в файл информацию о проекции можно с помощью команды GEOREP:

GEOREP – вывод информации о привязке.
file=" (имя файла)
report= (“term или имя файла для вывода)

r georep

На экране (или в файл) будет выведена следующая таблица с информацией:

Georeference Units:
Projection:
Datum - Ellipsoid:
Grid units:          

UTM    33   D000
Universal Transverse Mercator
WGS 1984 (Global Definition) - WGS 84
METRE

 

Upper Left Corner
Upper Right Corner
Image Centre
Lower Left  Corner
Lower Right Corner

Pixel Size

Upper Left Corner
Upper Right Corner
Image Centre
Lower Left  Corner
Lower Right Corner

288804.750  E
533106.750  E
410955.750  E
288804.750  E
533106.750  E

57.000  E

13d06'07.60" E  Lon
15d17'51.23" E  Lon
14d11'59.31" E  Lon
13d06'07.60" E  Lon
15d17'51.23" E  Lon

108912.750  N
108912.750  N
-99.750  N
-109112.250  N
-109112.250  N

57.000 N

0d59'05.36" N  Lat
0d59'07.27" N  Lat
0d00'03.25" S  Lat
0d59'11.86" S  Lat
0d59'13.77" S  Lat

Формат таблицы стандартный, что позволяет ее использовать при автоматизации процессов с помощью языка PERL (см. статью 4). Следует обратить внимание на замеченные проблемы с выводом таблицы. В ряде случаев (по неизвестной причине) координаты углов могут быть перепутаны (обычно правый и левый углы меняются местами).

Назначение параметров привязки и проекции растровой базе данных

Импорт из другого формата.
Существуют несколько способов задания проекции для файла PCIDSK. Прежде всего, проекция может быть автоматически импортирована при импорте данных из другого формата командой FIMPORT. Следует обратить внимание на две замеченные проблемы, возникающие при импорте информации о проекции и привязке:

  1. При импорте из формата GeoTIF PCI подразумевает, что координаты верхнего левого угла являются координатами границ углового пикселя, в то время как ряд программ подразумевает, что это координаты центра углового пикселя. Ошибка легко может быть замечена при импорте файла GeoTIF одновременно в ERDAS Imagine и PCI, с последующим экспортом обратно в GeoTIF. При этом файл, экспортированный из PCI, будет смещен на пол-пикселя по обеим осям относительно оригинала и файла, экспортированного из ERDAS. Возможные пути решения проблемы: смещение импортированного в PCI файла или импорт в PCI через другие форматы (например, *.img).
  2. В ряде случаев параметры проекции могут быть прочитаны неправильно. Особенно часто проблема проявляется при импорте данных из южного полушария в проекции UTM. Для устранения ошибки, проекция может быть переписана в EASI или исправлена через другие приложения PCI (Focus, ImageWorks).

Создание нового файла с указанием проекции и привязки.
Создать новый файл и назначить ему параметры привязки и проекцию можно с помощью команды CIMPRO2. Использование команды рассмотрено в статье 1. Здесь мы приведем пример использования команды для создания нового файла в проекции UTM:
file="new (имя файла)
dbnc=10,0,0,0 (число каналов - 10 8-битных каналов)
dblayout=”file (тип хранения каналов – по разным файлам)
project="UTM (имя проекции)
zone=33 (зона проекции UTM)
ellips="D000 (датум WGS1984)
llbound="n (координаты углов: если y – географические, если n - метрические)
ulx="288804.750
uly="108912.750
lrx="533106.750
lry="-109112.250
bxpxsz="57.000 (размер пикселя)
bypxsz="57.000
extrainf= (дополнительная информация о проекции по умолчанию)

r cimpro2

Назначение проекции созданному файлу.
Существует несколько команд задания проекции файлу PCIDSK. Мы рекомендуем по возможности всегда использовать команду SETRPO2. После ввода параметров и запуска команды, значения первого сегмента (сегмента привязки) файла PCIDSK будут изменены.

SETPRO2 – Ввод информации о привязке и проекции растрового файла.

file=" (имя файла)
project=" (имя проекции)
zone= (зона проекции UTM)
ellips=" (эллипсоид или датум)
llbound=" (координаты углов: если y – географические, если n - метрические)
ulx=" (координаты углов)
uly="
lrx="
lry="
extrainf= (дополнительная информация по проекции. Команда включает множество дополнительных параметров для разных проекций. Все эти параметры могут быть объявлены «по умолчанию»)

r setpro2

Существуют другие команды для ввода информации о проекции и привязке:
SETPRO – команда аналогичная SETPO2, но с меньшими возможностями при вводе параметров проекции. GEOSET – Простая команда, позволяющая назначить ограниченный набор проекций (UTM, LONG/LAT, State plane). Замечена следующая ошибка: при вводе координат углов значения по оси Y обычно округляются, что приводит к неправильному назначению информации о привязке.

Создание дополнительного сегмента привязки с информацией о проекции.
Для использования ряда программ (например, DBREPRO) бывает необходимым создание дополнительного сегмента с указанием проекции, в которую Вы хотите спроецировать данные. Для этого используем команду PROSET.

PROSET – изменение значений или создание нового сегмента привязки с указанием проекции.

file=" (имя файла)
dbgeo= (номер сегмента. если номер=1, то будет изменена информация о проекции файла. Если номер не указан, будет создан новый сегмент)
dbsn=" (имя нового сегмента – обязательный параметр)
mapunits=" (Имя проекции. Если проекция зональная, так же и номер зоны. Например, “UTM 33”)
ellips=" (эллипсоид или датум)
prolat=" (стандартная параллель)
prolong=" (центральный меридиан)

r prosin

Команда включает множество дополнительных параметров для разных проекций. Для упрощения ввода только параметров нужной проекции, используются специальные процедуры, основанные на команде PROSET. Имя процедур для каждой проекции Вы можете найти в справочной системе EASI. Например, для определения синусоидальной проекции используется процедура PROSIN:

file=" (имя файла)
dbgeo=
dbsn=" (имя нового сегмента – обязательный параметр)
ellips="19 (для синусоидальной проекции всегда сфера!)
prolong="0.0 (стандартные параметры)

r prosin

Изменение проекции

Изменение проекции (перепроецирование) растровых данных в EASI решено в виде серии команд:

  1. Создание нового сегмента с информацией о требуемой проекции (PROSET).
  2. Пересчет координат растрового файла и определение размеров выходного файла в требуемой проекции (DBREPRO).
  3. Создание файла с рассчитанными параметрами (CIM, CIMPRO2).
  4. Трансформация каналов растра из одной проекции в другую (REGPRO, MOSAIC).

DBREPRO – расчет параметров перепроецирования. Данная команда имеет дополнительные параметры, позволяющие вводить ограниченное число проекций для трансформации. Для трансформации в пользовательскую проекцию обычно бывает удобным сначала создать новый сегмент с параметрами проекции с помощью команды PROSET, а затем использовать в параметрах только имя нового сегмента:

file=" (имя файла)
project= (оставляем пустым – этот параметр будет замещен информацией из нового сегмента)
ellips= (оставляем пустым – этот параметр будет замещен информацией из нового сегмента)
outgeo= (номер нового сегмента с параметрами проекции)
report=" (вывод параметров трансформации на экран или в файл)

r dbrepro

Дополнительно можно указать размер пикселя выходной базы данных (параметры bxpxsz и bypxsz).

После запуска команды DBREPRO в параметрах EASI сохраняются границы и параметры проекции, в которую Вы хотите перепроецировать Ваши данные. Вы можете воспользоваться командой CIMPRO2 для создания новой базы данных, в которую будет произведена трансформация. Рассчитанные с помощью DBREPRO параметры нового файла будут автоматически использованы командой CIMPRO2. Обратите внимание, чтобы число каналов создаваемого файла соответствовало числу каналов, которые Вы хотите перепроецировать! Другой возможный вариант – вывод параметров в файл (опция report) и обработка файла программой на языке PERL. Этот путь может быть необходим, если Вы, допустим, хотите, что бы новый файл был «привязан» к стандартной растровой сетке.

После создания нового файла Вы можете произвести трансформацию исходного растра в полученный пустой файл с помощью команды REGPRO.

REGPRO – трансформация растрового изображения.

fili=" (имя исходного файла)
dbic= (список каналов для трансформации)
ingeo= (номер сегмента привязки исходного файла – по умолчанию 1)
filo=" (имя выходного файла)
dboc= (список каналов выходного файла)
outgeo= (номер сегмента привязки выходного файла – по умолчанию 1)
resample=" (тип пересчета near/bilin/cubic)

r regpro

(дополнительные параметры программы смотрите в справочной системе EASI).

Вместо команды REGPRO для трансформации изображения может использоваться команды MOSAIC. Эта команда всегда будет использовать первые сегменты файлов для расчета параметров трансформации, и пересчет всегда будет производиться методом ближайшего соседа (см. статью 1).

Пример использования команд для перепроецирования снимка:
Исходный снимок Landsat имеет проекцию UTM. Мы перепроецируем снимок в проекцию Albers Conical Equal Area с параметрами, настроенными для Европейской России.

  1. Создаем новый сегмент привязки с параметрами требуемой проекции:
    file="img.pix (имя исходного снимка)
    dbgeo= dbsn="albers (имя проекции)
    ellips="D203 (датум – Пулково 1942)
    prolong="45 (центральный меридиан)
    prolat="0 (широта начала отсчета координат)
    stpar1="52 (1 стандартная параллель)
    stpar2="64 (2 стандартная параллель)
    efalse="8500000 (смещение начала координат на запад)
    nfalse=

    r proacea


  2. Вычисляем параметры трансформации:
    file="img
    project=
    ellips=
    outgeo=2 (новый сегмент с информацией о проекции)
    report="
    bxpxsz="28.5 (требуемые размеры пикселя
    ) bypxsz="28.5

    r dbrepro


  3. Создаем новый файл командой CIMPRO2. Все необходимые параметры команды будут прописаны автоматически:
    file="img_alb (имя нового файла)
    dbnc=3,0,0,0 (число каналов нового файла)
    dblayout="file (способ хранения каналов)

    r cimpro2


  4. Выполняем трансформацию:
    fili="img (имя исходного файла)
    dbic=1,2,3 (список каналов для трансформации)
    ingeo= filo="img_alb (имя выходного файла)
    dboc=1,2,3 (список каналов выходного файла)
    outgeo= resample="near (тип пересчета)

    r regpro

Калькулятор координат

PROCONV - простая команда EASI, позволяющая пересчитать координаты из одной проекции (или из географических координат) в другую проекцию (или географические координаты).

Ввод координат для пересчета обычно осуществляется из тестового файла. Пары координат в текстовом файле разделяются запятыми:
288804.750,108912.750
Если вводятся географические координаты, то они могут иметь вид десятичных градусов или градусы-минуты-секунды:
-20.4560,35.4568 (десятичные градусы)
13 06 07.60 E ,0 59 05.36 N (градусы-минуты-секунды)

Исходная и выходная проекции могут быть заданы по имеющимся сегментам привязки или как параметр команды (только для LONG/LAT, UTM и State Plane). Пример использования программы с заданием проекции из сегментов привязки:

file=" (имя файла, содержащего сегменты привязки)
dbgeo=1,2 (номера сегментов, описывающих входную и выходную проекции)
tfile=" (имя текстового файла с парами координат)
ltyp="brief (вывод в короткой форме)
dmsform="off (если выходные координаты географические, то они будут представлены в десятичных градусах)
report=" (имя файла для сохранения результата)

r proconv

Пример использования команды для пересчета координат с заданием проекции через параметры файла: file= (пустой)
dbgeo= (пустой)
iunits=lon e012 (исходные координаты – географические)
ounits="utm zone e012 (выходные координаты – UTM)
tfile=" (имя текстового файла с парами координат)
ltyp="brief (вывод в короткой форме)
dmsform="off (если выходные координаты географические, то они будут представлены в десятичных градусах)
report=" (имя файла для сохранения результата)

r proconv

Краткий перечень команд привязки изображений по набору контрольных точек (GCP)

Расстановка контрольных точек (GCP) для привязки изображения может проводиться как в PCI, так и в других программа. Контрольные точки хранятся в специальном сегменте в файле PCIDSK. Существует возможность загрузки-выгрузки таблицы контрольных точек в текстовый файл. В PCI существуют модули автоматической расстановки контрольных точек (основанные на расчете корреляции между изображениями). Правда, они продаются отдельно от основного пакета программы. Помимо алгоритма с использованием целого исходного снимка для привязки, реализован подход для создания набора модельных участков (image chips) для автоматической привязки. Ниже приведен краткий перечень команд для работы с наборами контрольных точек и автоматической привязки. Трансформация снимка на основе набора контрольных точек производится командой REGPRO (см. выше) или REG. Описание команд смотрите в справочной системе EASI.

Работа с сегментом контрольных точек (GCP):
GCPREAD – Прочитать набор контрольных точек из текстового файла.
GCPWRIT – Записать набор контрольных точек в текстовый файл.
GCPREP – Вывод описания сегмента контрольных точек.
GCPPRO – Проецирование сегмента контрольных точек в другую проекцию.
GCPREFN – Автоматическое удаление контрольных точек с большой ошибкой.

Автоматическая расстановка контрольных точек и привязка снимка:
AUTOGCP – Создание набора контрольных точек путем корреляционного анализа.
AUTOREG – Автоматическая ко-регистрация изображений.
CHIPEXT – Создание набора модельных участков на основе привязанного снимка.
CHIPMAT – Автоматический поиск контрольных точек на основе библиотеки модельных участков.

Обсудить в форуме (Комментариев - 0)

См. также:

Основы макроязыка EASI (PCI Geomatica). Часть 1. Управление данными >>>
Основы макроязыка EASI (PCI Geomatica). Часть 2. Анализ данных >>>
Основы макроязыка EASI (PCI Geomatica). Часть 4. Примеры автоматизации процессов >>>

Последнее обновление: August 15 2007
(Наверх)

E-mail: 3 цифры: Введите 3 цифры с картинки в поле
Комментарий, вопрос, ошибка: (?)

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter (?)

О нас : Статьи : Программы : Форум (все) : Документация : Контакты : Участие : English

Новости сайта:(?)

Сервисный центр "компьютеры Жуковский" - продажа и обслуживание компьютеров и оргтехники.; оформление гражданства, бланки документов; информация как снять офис на ленинском проспекте в Москве; Промышленные такелажные работы по разумным ценам в Москве.