GIS-Lab Получаване на основните пространствени характеристики на обектите в ArcGIS
Географски информационни системи и дистанционно наблюдение
Изчисления на координати, дължини, площи в таблицата чрез VBA.
Статията обсъжда получаването на няколко основни пространствени характеристики наобекти без използване надопълнителни разширения, използвайки стандартните възможности на пакета ArcGIS.
Забележка: Функциите, обсъдени в статията, като се започне от версия 9.2, също са достъпни чрез менюто Изчисляване на геометрия.
Тази статия обсъжда следните типове обекти и съответните им пространствени характеристики:
X-координата Y-координата
Дължина (периметър) Площ Центроид
Факт е, че визуалната оценка на параметрите на даден обект като цяло е доста безсмислена задача. Би било по-оптимално да въведете пространствените характеристики на обектите директно в таблицата с атрибути. Ако желаете, можете също да организирате непрекъснат мониторинг (актуализация) на пространствените характеристики на обектите, както например Arcinfo Workstation прави, когато работи със собствен формат. Това има смисъл, ако извършвате поредица от пространствени операции, които променят пространствените характеристики на обектите и трябва да следите промените им.
Пространствените характеристики на въпросните обекти са неразделна част от тяхната геометрия. В Arcview, ArcGIS можете да получите геометрията на даден обект чрез специално поле в таблицата - Shape.
Когато изчислявате пространствен отговор, важно е да запомните, че единиците по подразбиране ще съвпадат с оригиналните единици на вашите данни. Това е:
- Ако данните са в географска координатна система, тогаванезависимо дали изгледът е проектиран или не, получените площи и т.н. ще бъдат зададени по подразбиране в десетични градуси (което е приемливо за координати на точки, но не е приемливо за дължини и площи).
- Ако данните са в неизвестна координатна система и мерните единици също са неизвестни, тогава все още могат да се правят изчисления, но мерните единици също ще останат неизвестни.
Следващото ще демонстрира как, използвайки набор от данни в географска координатна система, която е в проектиран изглед, е възможно да се получат пространствените характеристики на обектите в проектираната координатна система (т.е. като се вземе предвид проекцията на изгледа) в таблицата с атрибути. При такива изчисления е необходимо да се помни в коя координатна система е разположен изгледът при изчисляване на пространствените характеристики.
И така, за да въведете пространствените характеристики на обекта (обектите), е необходимо:
1. Отворете таблицата, като щракнете с десния бутон върху желания слой, пространствените характеристики на обектите, от които искате да получите. ИзберетеОтваряне на таблица с атрибути
2. Създайте в него полето(ята) с необходимия формат: цяло число или с плаваща запетая (в зависимост от вида на пространствената характеристика).Опции\Добавяне на поле.
3. Извикайте инструмента за въвеждане на стойности за всички записи в таблицата, като щракнете с десния бутон върху заглавката на полето и изберетеИзчисляване на стойности.
4. В прозореца на полевия калкулатор активирайте разширен режим
5. В областта Pre-logic VBA Script Code, която се появява, въведете команден израз, който ще препраща към пространствените характеристики на обекта към полетоshape, съдържащо геометрията на обекта.
1. Характеристика на многоъгълник
Израз за получаване на данни в координатна системаи мерни единици на самата тема. Данните, подобно на изгледа, могат да бъдат във всяка координатна система, резултатът НЯМА да зависи от проекцията на изгледа:
Отново, тази заявка е неудобна за използване при работа с проектирани изгледи, тъй като тя (заявката) ще върне площта, без да вземе предвид проекцията на изгледа (вижте статията „Изчисляване на площта“). Въпреки това, ако работите с вектор, който вече е в проекция, това е най-бързият начин за изчисляване на площи за полигони.
За да получите стойност в метри, използвайки данни, проектирани в движение, първоначално в географска координатна система, трябва да промените израза, както следва:
В последната област за въвеждане, чието заглавие гласи "област ="въведетеизход
където Area е името на полето, където ще бъде поставен резултатът от изчислението (името на полето може да бъде произволно).
Израз за получаване на данни в координатната система и единиците на самата тема. Данните, подобно на изгледа, могат да бъдат във всяка координатна система, резултатът НЯМА да зависи от проекцията на изгледа:
Израз за проектирания изглед (данни в географска координатна система, изгледна проекция - набор):
В последната област за въвеждане, чието заглавие гласи "периметър ="въведетеизход
където Perimeter е името на полето, където ще бъде поставен резултатът от изчислението (името на полето може да бъде произволно).
Центроид (точка - многоъгълен център на масата)
Израз за получаване на данни в координатната система и единиците на самата тема. Данните, подобно на изгледа, могат да бъдат във всяка координатна система, резултатът НЯМА да зависи от проекцията на изгледа:
Израз за проектирания изглед (данни в географска координатна система, изгледна проекция - набор):
В най-новитеполе за въвеждане с "centerx =" в заглавието, въведетеизход. За да получите Y координатата, заменете x с y в последния ред.
Centerx, centery - името на предварително създадените полета, където ще бъдат поставени резултатите от изчислението (името на полетата може да бъде всяко).
2. Линеен обект:
Израз за получаване на данни в координатната система и единиците на самата тема. Данните, подобно на изгледа, могат да бъдат във всяка координатна система, резултатът НЯМА да зависи от проекцията на изгледа:
Израз за проектирания изглед (данни в географска координатна система, изгледна проекция - набор):
В последната област за въвеждане, чието заглавие гласи „дължина ="въведетеизход
където Length е името на полето, където ще бъде поставен резултатът от изчислението (името на полето може да бъде произволно).
3. Точков обект:
За да получите координатите на точките, трябва да създадете 2 полета и да въведете 2 израза.
Израз за получаване на данни в координатната система и единиците на самата тема. Данните, подобно на изгледа, могат да бъдат във всяка координатна система, резултатът НЯМА да зависи от проекцията на изгледа:
За географска дължина:
В последната област за въвеждане със заглавие "lat ="въведетеизход
За географска ширина:
Dim pPoint As IPoint Set pPoint = [Shape] output = pPoint.y
В последната област за въвеждане със заглавие "lat ="въведетеизход
Израз за проектирания изглед (данни в географска координатна система, изгледна проекция - набор):
В последното поле, чието заглавие е"long ="или"lat ="въведетеpPoint.xилиpPoint.yсъответно.
където Long, Lat - името на полетата, където ще бъде поставен резултатът от изчислението (името на полето може да бъде всяко).
За да декомпозирате координатите в dd.dddddd в ddmmss, трябва да добавите следния израз към скрипта:
Полето, в което се записва резултатът, трябва да е низ, а в реда ff = pPoint.X задаваме X или Y.
Заключение
Тези изрази са реализация на VBA на заявки за пространствени данни чрез инструмента за изчисляване. Използвайки този инструмент и модифицирани заявки, можете да получите други пространствени характеристики на обекта(ите).
Свързани връзки
Последна актуализация: 01 май 2011 г