НА ГЛАВНУЮ СТРАНИЦУ

КАК ПОСЧИТАТЬ КООРДИНАТЫ И ПЛОЩАДИ В ШЕЙП-ФАЙЛАХ

Для точек обычно хотят знать координаты X, Y или широту-долготу, для линий длину, для полигонов периметр и площадь. В ArcMap для этой цели начиная версии 9.2 появилась отдельная удобная команда. В таблице щелкаем правой мышкой на заголовок нужной колонки, например, X или Y, из контекстного меню выбираем "Calculate Geometry".

Появляется диалог, в котором можем выбрать, в какой проекции мы желаем видеть результаты, и в каких единицах измерения. Если выбор проекции заблокирован, значит, для слоя она не известна и вы можете использовать только проекцию датафрейма. Если проекция - географическая (точнее сказать, ваша карта "не спроецирована"), то вы сможете получить только широту-долготу в географических градусах. Если укажете какую-либо проекцию, то получите координаты в метрах, километрах или милях соответственно. Учтите, что результаты будут сильно отличаться в зависимости от того, какую проекцию. вы выберете. Расчет площади тоже будет идти в единицах проекции, и тоже с разным результатом.

Колонку, понятное дело, нужно выбрать/заготовить заранее - и она должна быть дробночисленной. Хотя может быть и целочисленной, и даже текстовой - но и результат будет записан соответствено. В целочисленную колонку попадет только целая часть чисел, в текстовую ячейку - всё число, но в строковой форме, и вы не сможете их применять в вычислениях.

В ArcMap старых версий, до 9.1 включительно, процедура несколько сложнее. Все подробно описано в help'е, в разделе "Making field calculations". Предварительно нужно создать или выбрать колонку, куда вы хотите записать площадь (или длину, периметр и т.п.). Далее предлагается включить табличный калькулятор, "Field Calculator" в контекстном меню, его же можно найти и в главном меню. После этого придется скопировать небольшой скрипт в окно калькулятора. Например, для того, чтобы рассчитать площадь и записать ее в какую-то колонку, основная процедура выглядит так: "...dblArea = pArea.area..." плюс разные объявления-присвоения переменных. Копируйте не думая, все работает как часы. В калькуляторе есть возможность сохранить процедуру, и загружать по мере надобности одной лишь кнопкой.

Обратите внимание, что вышеописанные тексты-макросы считают геометрию в единицах вида - т.е. не обязательно в тех "дисплейных" метрах, которые вы видите в строке статуса. Поэтому, если единицы вашего вида десятичные градусы, не удивляйтесь, увидев площадь равной 0.00000456 или в этом роде. Измените проекцию вида, если вам хочется другого. Развитые вспомогательные средства, бывает, содержат обычно встроенный перерасчет единиц. Ищите их в коллекциях ESRI и Dataplus - например, XTools.

В ArcView вы не найдете встроенных средств по подсчету площадей, так же как, впрочем, нет кнопок проставить координаты для точек. Причин этому две: во-первых, формат шейп-файла, в котором работают большинство пользователей, никогда не был основным для ESRI. В эпоху ArcView основными были покрытия ArcINFO, где практически все команды автоматически обновляли атрибуты "Area" и "Perimeter", наряду со многими другими. Точно так же в ArcMap автоматически происходит обновление геометрии в базе геоданных. Владельцам многочисленных шейп-файлов, однако, не стоит печалиться и бросаться гневными словами в адрес разработчиков - во-вторых, и для вас все предусмотрено. Только глянуть попристальнее... Средства прилагаются.

В ArcView это скрипты calcapl.ave и аналогичные, поищите их, они устанавливаются в каталог Arcview/Samples/Scripts по умолчанию. С ними ничего делать не надо, они готовы к работе, только откомпилировать не забудьте. Считают площадь в акрах, гектарах, единицах вида и в чем только захотите, для линий выдается длина, разумеется. Посчитать координаты точек поможет скрипт addxy.ave. Ко всем скриптам коллекции, кстати, есть вполне достаточные разъяснения, но на английском. Как подключить скрипт, рассказано вот здесь.

Lalex