Пронумеровать строки в поле по возрастанию

0 голосов
спросил 08 Ноя, 12 от inkda (440 баллов) в категории Программные продукты Esri
Здравствуйте форумчане , хотелось попросить у вас совета по поводу нумерации строк по возрастанию в ArcGis 9.X, дело в том что саму нумерацию через калькулятор поля с использованием скриптов VBA я провести могу. Благо скрипт не сложный да и в соседней теме от 2005г. уже его выкладывали.

Но проблема в том что у меня имеются около 20 административных районов, в каждом из которых 20 и больше точек, которые надо в свою очередь отсортировать по Xmin Ymax координатам, и только после этого провести нумерацию по порядку от 1 до N в поле N_на_карте. НО нумеруются строки не по сортировки а по дефолтному расположению точек в таблице, как сделать так чтобы нумеровалось в том порядке в котором они идут после сортировки???

image

На скриншоте видно что нумерация прошла по дефолтному расположение точек в базе.

з.ы. Пользователь Alexey посоветовал использовать скрипт "Неженские утилиты 3" ссылка - http://www.dataplus.ru/Root/Scripts/Index.asp?offset=30 но этот скрипт для ArcView 3.2. (там скрипт работает как мне нужно, но там я не могу реализовать сложную сортировку по этому есть ли аналог этому скрипту только в ArcGis 9.X???

17 Ответы

0 голосов
ответил 09 Ноя, 12 от Alexey (5,140 баллов)
...как то туманно...все...
Номера в поле "№ на карте" уникальные? Или это просто нумерация по порядку?
    
0 голосов
ответил 09 Ноя, 12 от inkda (440 баллов)
...как то туманно...все...
Номера в поле "№ на карте" уникальны? Или это просто нумерация по пордяку?


да это нумерация по порядку, как раз то что я сделал при помощи скрипта, но поскольку до этого требовалось сделать расширенную сортировку по другим полям, то поле N_на_карте забилось числами по порядку но как бы это было БЕЗ сортировки*
То есть задача такая, делаем выборку некоторых объектов (точек), сортируем их так чтобы эти точки в таблице отсортировались в порядке возрастания по оси X и Y и в пустое поле N_на_карте пронумеровываем их от 1 до последней точки, так вот с последним как раз и проблема после калькуляции поля, нумерация полей по скрипту проходит в том порядке в котором поля были до "сортировки по X и Y" я как бы понимаю почему так, это логично, из за того что каждая точка в таблице имеет свой порядковый номер, так как дополнить скрипт чтобы он нумеровал невзирая на порядковый номер точек.

з.ы. мне сказали можно таблицу сделать в Excel'e, но способ решения в ArcGis'e точно есть, очень охота сделать это там.
0 голосов
ответил 09 Ноя, 12 от Alexey (5,140 баллов)
Как сделать инструметами ArGis я не знаю.
Я бы сделал так:
1. создать новое(вспомогательное) поле в таблице
2. выбранные множества точек проиндексировать вновом поле
3. открыть dbf таблицу вашегофайла в экселе и пронумеровать согласно индексу ваши множества точек.
Просто и быстро.

p.s. .....в ArGis, наверно, через калькулятор поля это делается, а вот какую функцию взять или какое выражение написать там....я незнаю..
0 голосов
ответил 09 Ноя, 12 от inkda (440 баллов)
Как сделать инструметами ArGis я не знаю.
Я бы сделал так:
1. создать новое(вспомогательное) поле в таблице
2. выбранные множества точек проиндексировать вновом поле
3. открыть dbf таблицу вашегофайла в экселе и пронумеровать согласно индексу ваши множества точек.
Просто и быстро.

ну я вот и писал про Excel что там можно сделать, но я хочу узнать как это сделать в ArcGis.
Кстати если уж пошла тема про Excel после импорта таблицы в dbf в Excel'e она открывается но с кривыми буквами, я так понимаю это из за кодировки, вроде бы в arcgis Windows-1251, как можно сделать чтобы нормально читалась база данных??
а вопрос про нумерацию остается открытым.
0 голосов
ответил 09 Ноя, 12 от Alexey (5,140 баллов)
Вот ссылка. Там все написано, как сделать, что бы ArcGis понимал кодировку Exel и наоборот
http://support.esri.com/en/knowledgebase/techarticles/detail/21106
0 голосов
ответил 12 Ноя, 12 от inkda (440 баллов)
Вот ссылка. Там все написано, как сделать, что бы ArcGis понимал кодировку Exel и наоборот
http://support.esri.com/en/knowledgebase/techarticles/detail/21106

за это спасибо, правда что то не получается, сделал по инструкции, все равно эксель отказывается читать правильно экспортированную dbf,
может я где то ошибся, зашел в regedit - далее HKEY_CERRENT_USER - Software - ESRI - тут создал раздел Common в нем создал CodePage - в нем создал "строковый параметр" с именем dbfDefault со значением OEM, 437, 708, 720, 737, 775, 850, 852, 855, 857, 860, 861, 862, 863, 864, 865, 866, 869, 932, 936, 950
Где я ошибся?
0 голосов
ответил 12 Ноя, 12 от Alexey (5,140 баллов)
да вроде все верно... я сам не большой специалист в этом, мне дали эту ссылку - я сделал как там написано. Все работает.
0 голосов
ответил 12 Ноя, 12 от inkda (440 баллов)
да вроде все верно... я сам не большой специалист в этом, мне дали эту ссылку - я сделал как там написано. Все работает.

Так и не получилось, пробовал открыть в Access 2007 там пишет вообще "обьект не найден ядром субд" и не открывает его, чеж такая запара то, никак не могу решение проблемы найти, работа стоит
0 голосов
ответил 12 Ноя, 12 от Alexey (5,140 баллов)
есть же много редакторов dbf  файлов, можно просто взять этот dbf  и перекодировать в нужную кодовую страницу.
0 голосов
ответил 12 Ноя, 12 от Grigoriy (127,020 баллов)
ПОСЛЕ установки параметра dbfdefault нужно заново выполнить ЭКСПОРТ данных в шейп-файл. В момент экспорта файл перекодируется в кодировку DOS (866). Которую Excel использует по-умолчанию при чтении dbf.
Сам по себе файл dbf не изменится, какое бы значенине dbfdefault Вы не потсавили.
image
    
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...