Кодирование растров с помощью Spatial Analyst

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Аватара пользователя
mant
Участник
Сообщения: 50
Зарегистрирован: 23 ноя 2005, 16:21
Репутация: 0
Откуда: Одесса, Украина
Контактная информация:

Кодирование растров с помощью Spatial Analyst

Сообщение mant » 29 дек 2005, 13:39

С удивлением узнал, что при представлении точечного либо линейного объекта в растр с помощью Spatial Analyst, ячейке растра присваивается значение от _случайно_ выбранной из попавших в ее площадь точек (пересечения линий). Есть ли какое обоснование именно такого алгоритма, а не, например, присвоения среднего значения?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Сообщение Максим Дубинин » 30 дек 2005, 17:48

Почему случайно? Есть ведь Spatial Analyst\Options, там Analysis Extent, потом окно делится на Output cell size, а дальше что в какую ячейку попадет. А как среднее значение присваивать?
пристегивайтесь, турбулентность прямо по курсу

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Сообщение Анна » 30 дек 2005, 22:47

давайте все-таки не будем путаться и смущать народ. Для этого откроем описание алгоритма (например, pointgrid) в help для arcinfo и увидим, что ячейке растра будет присвоево наиболее часто встречающееся значение точки, попавшей в ячейку.
If a cell has more than one possible code (i.e., it contains two or more points) and an {value_item} has been specified, the code with the most occurrences in the cell is used
Если же в векторном покрытие поле, со значениями для создания растра указано не было, то по умолчанию произойдет следующее
If no {value_item} has been specified and there are multiple points within the cell, the assignment is based upon the scanning order and is not easily predictable.
Кроме того, возможен вариант когда дополнительно указывается поле\таблица с весами - т.е. каждому возможному значению точки присваивается определенный вес.
toSim
К вопросу о среднем - есть возможность решить такую задачу - команда pointstats в том же arcinfo.

Аватара пользователя
mant
Участник
Сообщения: 50
Зарегистрирован: 23 ноя 2005, 16:21
Репутация: 0
Откуда: Одесса, Украина
Контактная информация:

Сообщение mant » 04 янв 2006, 12:49

Джилл МакКой, Кевин Джонстон. ArcGIS Spatial Analyst. Руководство пользователя. Издательство "Дата +"
Глава 4 Растровые данные, кодирование растров
"Если входные данные были точечными, любая ячейка, на площади которой встречается точечный объект, получмт значение атрибута точечного объекта из преобразуемого набора данных. По определению, точка не имеет площади, а вы преобразуете данные в площадное представление. При представлении в виде ячеек происходит некоторое обобщение исходных данных. Если в одну ячейку попадают 2 или более точки, Spatial Analyst случайным образом выбирает одну из них и присваивает ячейке ее значение."
и
"Преобразование линейных объектов в растровый набор данных аналогично преобразованию точечных объектов"

?

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Сообщение Анна » 04 янв 2006, 21:24

хммм. честно говоря, всегда думала, что алгоритмы используемые в arcgisвских тулбоксах и модулях повторяют алогортимы arcinfo
ИМХО. это во-первых.
ну а во-вторых, открываем английскую версию Using Spatial Analyst. Глава 7, раздел Conversion. Видим
If more than one point is found in a cell, the cell is given the value of the first point it encounters when processing.
:?
Отсюда вывод - придется уточнять у даты+\esri, что же там на самом деле происходит или использовать команду pointgrid в arcinfo с которой, к счастью, разногласий гораздо меньше.

yumakaev
Активный участник
Сообщения: 143
Зарегистрирован: 10 мар 2004, 08:07
Репутация: 10
Откуда: Redlands
Контактная информация:

Сообщение yumakaev » 04 янв 2006, 21:56

Действительно, интересно.
Using_Spatial_Analyst.pdf с релиза ArcGIS 9.1:
Chapter 4, Raster encoding, Page 85 писал(а):If two or more points fall within the extent of a cell, Spatial Analyst randomly selects one of the points to assign avalue to the cell.
Chapter 7, Conversion, Page 186 писал(а):If more than one point is found in a cell, the cell is given the value of the first point it encounters when processing.
Думаю, что в первом случае неудачно употреблено слово randomly ("случайным образом"), чтобы показать, что из картинки визуально невозможно заранее сказать, какая именно точка определит значение ячейки. Алгоритмически намного легче просто взять первую попадающую точку из БД, чем выяснять все точки, попавшие в ячейку, да ещё запускать потом рандомайзер. В определённом смысле взятие первой попавшейся точки и есть "случайным образом"... :lol:

yumakaev
Активный участник
Сообщения: 143
Зарегистрирован: 10 мар 2004, 08:07
Репутация: 10
Откуда: Redlands
Контактная информация:

Сообщение yumakaev » 04 янв 2006, 22:13

Анна писал(а):хммм. честно говоря, всегда думала, что алгоритмы используемые в arcgisвских тулбоксах и модулях повторяют алогортимы arcinfo
Теперь действительно вопрос, какие же алгоритмы действуют в командах Toolbox'а. В принципе, и в документации к Spatial Analyst, и в описании pointgrid оба подхода изложены достаточно недвусмысленно, и они противоречат друг другу. Бум разбираться.

yumakaev
Активный участник
Сообщения: 143
Зарегистрирован: 10 мар 2004, 08:07
Репутация: 10
Откуда: Redlands
Контактная информация:

Сообщение yumakaev » 05 янв 2006, 02:10

Только что прогнал и pointgrid из ArcInfo Workstation, и ArcToolbox\Conversion Tools\To Raster\Feature To Raster. Состряпал тестовые данные таким образом, чтобы из результата однозначно было видно логику команд.

Обнаружено:

Команды работают по-разному.

Pointgrid назначает ячейке значение, максимально представленное точками.

Feature To Raster тупо берёт самое первое найденное значение. В моём случае это была точка с самой большой координатой Y.

Вердикт:

При всех достоинствах ArcMap/ArcCatalog, инструменты в ArcInfo Workstation всё-таки работают умнее. Но почему-то они не доступны через ArcToolbox. В том числе через Command Line - я не смог запустить pointgrid из арктулбокса. Поэтому, если есть возможность, осваивайте ArcInfo, и в критических задачах пользуйтесь именно её инструментами.

yumakaev
Активный участник
Сообщения: 143
Зарегистрирован: 10 мар 2004, 08:07
Репутация: 10
Откуда: Redlands
Контактная информация:

Сообщение yumakaev » 05 янв 2006, 04:29

P.S. Почему-то в девятке при инсталяции Workstation у меня не появилась в меню ссылка Arc Tools, через которую запускается GUI, худо-бедно упрощающий жизнь. Если у кого-то такие же проблемы как у меня, их очень просто решить.

1) В меню Пуск\Все Программы\ArcGIS\ArcInfo Workstation щёлкнуть правой кнопкой на Arc, выбрать Create Shortcut (у меня виндоза англоязычная, в русской должно быть что-то типа Создать Ссылку, не помню). Появится Arc (2).

2) Щёлкнуть правой кнопкой на Arc (2), выбрать Properties (Свойства).

3) В появившемся окне поле Target исправить на
C:\arcgis\arcexe9x\bin\arc.exe arctools
(вместо C: может стоять D: или E: и т.п., короче, куда аркинфу поставили). Нажать OK.

4) Переименовать Arc (2) во что-нибудь типа Arc Tools: правой кнопкой на Arc (2), выбрать Rename (Переименовать).

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Сообщение Анна » 05 янв 2006, 10:30

to yumakaev
большущий респект за проделанную работу и разбор аркгисовских "полетов". Спасибо!!!

Аватара пользователя
mant
Участник
Сообщения: 50
Зарегистрирован: 23 ноя 2005, 16:21
Репутация: 0
Откуда: Одесса, Украина
Контактная информация:

Сообщение mant » 05 янв 2006, 14:55

3) В появившемся окне поле Target исправить на
C:\arcgis\arcexe9x\bin\arc.exe arctools
(вместо C: может стоять D: или E: и т.п., короче, куда аркинфу поставили). Нажать OK.

у меня аркинфо 9 сборки 580, путь ""D:\Program Files\ArcGIS\Bin\ArcMap.exe", т.е. исполняемый файл уже не arc.exe, и, соответственно, с добавлением "arctools" выдает ошибку

чтот я делаю неправильно?

yumakaev
Активный участник
Сообщения: 143
Зарегистрирован: 10 мар 2004, 08:07
Репутация: 10
Откуда: Redlands
Контактная информация:

Сообщение yumakaev » 07 янв 2006, 01:05

mant писал(а):у меня аркинфо 9 сборки 580, путь ""D:\Program Files\ArcGIS\Bin\ArcMap.exe", т.е. исполняемый файл уже не arc.exe, и, соответственно, с добавлением "arctools" выдает ошибку

чтот я делаю неправильно?
Вы пытаетесь исправить ярлык на ArcMap из ArcGIS Desktop, а нужен ярлык на Arc из ArcInfo Workstation. Workstation устанавливается с отдельного диска (не с того, на котором ArcMap и ArcCatalog), поэтому, даже если у вас ArcGIS с лицензией ArcInfo, но установлены только компоненты Desktop, ничего не выйдет.

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей