От изолиний к точкам и полигонам

0 голосов
спросил 09 Фев, 08 от Mark (860 баллов) в категории Программные продукты Esri
    Здравствуйте!

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

Думаю действовать так: отнести характеристику к центроидам полигонов, построить изолинии, а затем определить значение характеристики (в кварталах, у которых нет информации) для центроидов путем интерполяции. Есть ли в ArcGIS 9.x или ArcView 3.x возможность автоматизировать определение значения характеристики в точке по существующим изолиниям?

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

Меня смущает противоречие между точками и полигонами, т.е. то, что изначально характеристика (средний доход жителя) определялась на для точки центроида, а для всего квартала. Можете что-нибудь подсказать насчет решения таких задач?

Марк

22 Ответы

0 голосов
ответил 11 Фев, 08 от geologic (39,860 баллов)
Да, вам, похоже, нужна интерполяция. Но:

1. Интерполяция не заключается в изолиниях, обычно выдается сплошная модель распределения ДЛЯ КАЖДОЙ ТОЧКИ поля, по регулярной сетке или иным способом. Изолинии - всего лишь привычный способ визуализации модели, и он вам в общем не нужен. Пока не начнете отчет сочинять :) Да и тогда логичнее будет раскрасить по градациям или построить объемную столбчатую карту.

2. Насчет центроидов надо очень и очень подумать. Если характеристика ровным слоем покрывает полигон (жители живут ведь не центростремительно) то надо полигон весь заполнять доходом, и потом только сглаживать. Модель будет ступенчатая, но более логичная. Если доход теоретически может падать от центра квартала к его краям, тогда сойдет и точка. Но как правило, квартал в жизни либо богатый, либо бедный, или как?

3. Автоматизировать называется Spatial Analyst, модель - Grid. Для кусочных лучше подойдет 3D Analyst, TIN-модель. Другого нет, разве что Сёрфер и другие острозаточенные интерполяторы.

4. Частных "векторных" решений, как у вас в третьем абзаце, может быть множество. Однако только вам знать вашу конкретику и последствия. Рассчитывать можно по кварталам из ближних соседей, взвешивая смежные точки, строя графы и буфера от них, обходя данные скользящим окном и т.п. Большинство таких приемов и сведено в Spatial и 3D Analyst, точнее, наиболее проверенные и универсальные из них.

Да, можно еще и так. Проинтерполировать центры выбранным способом, и полученную точечную характеристику присвоить всему полигону. Изолиний не строить, изображать только ступенчато, ну, как манхеттен с птичьего полета.
0 голосов
ответил 11 Фев, 08 от Vadim (28,120 баллов)

Для этого используйте Spatial Analyst. Сначала интерполируйте значения центроидов, на выходе получите изолинейный растр. Затем используете Zonal Statistics из Spatial Analyst для кварталов. Но итоговый результат конечно же будет зависеть от способа интерполяции, поэтому придется поиграться.

0 голосов
ответил 12 Фев, 08 от Mark (860 баллов)
Спасибо.
К сожалению, у нас нет лицензий на Spatial Analyst и 3D Analyst в ArcGIS 9.1. В обоих модулях есть только выпадающие меню со списками инструментов, которые не работают. Кстати, в Spatial Analyst я не вижу модели Grid, может, версия не та.
Видимо, придется работать в ArcView 3.1, где тоже нет 3D Analyst, зато есть работающий Spatial Analyst. Наверное, в таких условиях не придумаю ничего лучше определения значений центроидов с помощью изолиний или определения средних значений по полигонам с помощью тех же изолиний. Придется думать, как в Avenue написать скрипт для замыкания изолиний и преобразования их в неперекрывающиеся полигоны.
0 голосов
ответил 12 Фев, 08 от geologic (39,860 баллов)
Spatial Analyst в ArcView вполне годится для интерполяции, это полноценный продукт. Грид-модель это самое главное, с чем он работает, ее нельзя " не заметить" - ведь без нее вам не построить изолиний как вы хотите, "сразу по точкам". Почитайте правильный процесс создания модели в учебнике, хотя бы вот тут,
http://gis-lab.info/qa/3dviz.html
прежде чем продумывать обходные маневры. там все просто до предела, поверьте уж. Берутся нерегулярные точки (ровненько ваш случай) и генерится модель по регулярной сетке с заданным разрешением. Потом останется считать значения в центрах ваших кварталов (ну или осреднить поквартально, если по уму подходить).

И абстрагируйтесь вы от горизонталей, наконец, иначе вперед не двинетесь по жизни.
    
0 голосов
ответил 13 Фев, 08 от Mark (860 баллов)
Спасибо за совет насчет Grid-модели и за ссылку. Однако после того, как ввожу параметры Output Grid Specification и Interpolate Surface, появляется ошибка Assertion "Abstract method called!" failed at line 718 of file "..\view\theme.c".
Эта ошибка появляется всегда, независимо от интерполируемого слоя и параметров Grid. Дело в том, что у меня крэкнутый ArcView 3.1...    
0 голосов
ответил 13 Фев, 08 от geologic (39,860 баллов)
Все работало как часы независимо от версий. Попробуйте другие... Не вы первый, словом - задача типовая.

Да, Golden Soft Серфер еще можете заодно поизучать. Полезная штука для таких игрищ :)
0 голосов
ответил 14 Фев, 08 от Mark (860 баллов)
Мой крэкнутый Spatial Analyst в ArcView 3.1 изолинии рисует без проблем. Однако все мои попытки получить поверхность приводят все к той же ошибке, хотя перепробовал разные варианты параметров Output Grid Specification и Interpolate Surface и разные данные.
А Serfer свободно скачать можно? В Интернете вижу, что вроде бы можно, но не хочется рисковать служебным компьютером.
0 голосов
ответил 18 Фев, 08 от Mark (860 баллов)
Оказывается, у нас плавающая лицензия на Spatial Analyst и 3D Analyst в ArcGIS 9.1. Используя центроиды, построил Grid-модель методом IDW, затем с помощью Zonal Statistics для таблиц рассчитал средние значения для полигонов, т.е. получил что хотел. Но хочется попробовать и другие варианты. Поэтому возникают следующие вопросы:
1. Построил TIN-модель, но не знаю как ее использовать для расчета средних значений для полигонов или хотя бы для точек.
2. Не знаю как построить ступенчатую модель, т.е. такую, где характеристика ровным слоем покрывает полигон.
0 голосов
ответил 18 Фев, 08 от geologic (39,860 баллов)
1. В AM нет таких функций, переведите в грид с очень малым разрешением.

2. Объяснял в первом посте, начинайте не с центроидов, а с облаков точек по кварталам. Можно перевести в точки только край, лучше весь полигон. Но все равно края ступеней будут сглажены. Другой вариант - сразу по полигонам делать TIN, он будет более резким.
0 голосов
ответил 21 Фев, 08 от Mark (860 баллов)
Спасибо за добрые советы. Но что-то я не понимаю, как это сделать. Может быть, подскажете?
1. Вы советуете перевести существующую TIN-модель в Grid-модель. Я не могу найти такой возможности ни в TIN Surface, ни в Raster Interpolation, ни в других списках инструментов. Где искать?
2. Хочу построить ступенчатую TIN-модель сразу по полигонам. Создал TIN с помощью Create TIN. Дальше пытаюсь использовать Edit TIN, где выбираю созданный TIN, а также полигональный слой. Для последнего выбираю:
- height_field с нужной мне характеристикой дохода;
- tag_field с ней же;
- SF_type: пробовал softclip, softline, hardline и т.д. - результат тот же;
- use_z: false по умолчанию, изменить нельзя.
В результате выдается сообщение "Datum conflict between map and output", TIN-модель строится всего лишь для 12 полигонов из 760, и она не похожа на ступенчатую.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...