Как изучать программирование в ArcGIS?

0 голосов
спросил 23 Март, 10 от Korobkin1 (3,140 баллов) в категории Программные продукты Esri

Есть необходимость в изучении Python и VBA, в частности для написания скриптов под ArcGIS 9.2 Больше интересуют описание объектов и методов, а также взаимосвязи между языком и тулбоксом (тут возникает множество мне непонятных проблем взаимосвязи, как например: в питоне алгоритм работает более менее, а в тулбоксе скрипт не работает). Английский help помогает конечно, но системности учебника ему не хватает.

Может есть нормальная книга или доступный интернет ресурс для изучения? Или где-нибудь курсы проводятся по программированию под ArcGIS?
 
Благодарен всем, кто сможет хоть как-нибудь прояснить этот вопрос!

19 Ответы

0 голосов
ответил 23 Март, 10 от TDenis (42,620 баллов)
Это смотрели?
http://resources.esri.com/geoprocessing/index.cfm?fa=mediaGalleryDetails&mediaID=87E1C24B-1422-2418-A032E2B6F2766513
http://resources.esri.com/geoprocessing/index.cfm?fa=mediaGalleryDetails&mediaID=7C523FCC-1422-2418-A0F7F22D3B614962
http://resources.esri.com/geoprocessing/index.cfm?fa=For_Developer

Насчёт VBA - вы уверены? Его ведь уже выкидывать из аркгиса по-тихоньку собираются, а вы изучать запланировали.
0 голосов
ответил 23 Март, 10 от Korobkin1 (3,140 баллов)
Насчёт VBA - вы уверены?
не уверен... поэтому и спрашиваю. Надо автоматизация работы, есть что автоматизировать, но методы не знаю. Как вы считаете, можно и питоном ограничиться, хотябы на первое время?
0 голосов
ответил 23 Март, 10 от pooperec (10,820 баллов)
Питон нужен, если Вам необходимо комбинировать/наращивать имеющуюся ГИС функционально (Model Builder и так далее). Так же, подозреваю, что Питон станет на место ВБА.

В остальных случаях, если Вы предполагаете создавать новые, специализированные решения, на базе AG - учить можно любой распространённый язык програмирования (С++, С#, Delphi) и платформу .Net. Так как рано или поздно она таки "заполонит".

А каким языком владеете?
0 голосов
ответил 23 Март, 10 от Korobkin1 (3,140 баллов)
А каким языком владеете?
более-менее VBA и вот теперь немного разобрался в Python. Но на любительском уровне.
0 голосов
ответил 23 Март, 10 от pooperec (10,820 баллов)
Я бы рекомендовал к изучению какой-то другой язык Java/C... Так как довольно сильно прийдёться в будущем изощеряться чтобы Ваш код заработал...
0 голосов
ответил 23 Март, 10 от TDenis (42,620 баллов)
Насчёт VBA - вы уверены?
не уверен... поэтому и спрашиваю. Надо автоматизация работы, есть что автоматизировать, но методы не знаю. Как вы считаете, можно и питоном ограничиться, хотябы на первое время?

Не знаю, какие перед вами задачи стоят. Может хватит, может нет.
Python - это хорошо, удобно редактировать, мало писать. Много плюсов, про них по вышеприведённым ссылкам уже сказано.
С другой стороны, раз вы знаете VBA, то можно поизучать VB.Net. В отличие от питона получите бОльшую гибкость, проверку на этапе компиляции, полную поддержку одной из самых хороших IDE (включая нормальный интеллисенс ;) ), кучу средств и технологий для работы с данными (от удобных средств для работы с локальными коллекциями до систем объектно-реляционного маппинга), возможность создания современных пользовательских интерфейсов (WPF), хорошую справку, большое сообщество. Тот же язык (VB.Net) можно использовать при разработке под аркгис сервер - ASP.NET, Silverlight. Его же можно использовать для написания собственного приложения на ArcObjects.
Выбирайте) И то и другое хорошо.
А вот в VBA пожалуй уже не стоит инвестировать.
0 голосов
ответил 24 Март, 10 от Korobkin1 (3,140 баллов)
А вот в VBA пожалуй уже не стоит инвестировать.
Спасибо, я уже понял. Сосредоточился пока на питоне. Пока непаханное поле предо мною. :(
И за ссылки спасибо, но 1 и 2 ссылаются на видео 400 и 200 Мб соответственно. По названию что-то интересное, но пока скачаю с моим интернетом пройдет, увы, не одна ночь... Учусь по хелпу и жду первой возможности скачать.

Не могу разрешить непреодолимую для меня задачу. Есть Таблица, скажем 'D:\База.mdb\Набор\таблица', а в ней есть [Поле1], содержащее географические названия. Мне бы хотелось выгрузить содержимое этого поля в массив (или хотя бы список, кортеж) для дальнейшей обработки. Вроде бы все просто по отдельности, но никак не пойму принцип перебора значений ячеек: получениеобращение к ячейке, переход на следущую. Кто-нибудь может пояснить, как это выглядит в виде программного кода (можно ссылкой на подходящий скрипт из хелпа)?
0 голосов
ответил 26 Март, 10 от Korobkin1 (3,140 баллов)
Ладно, пожалуй никто так и не ответит. Спрошу про другое...

Скрипты в хелпе - для какого интерпретатора писаны? Проблема у меня такая. В приложении PythonWin скрипт выполняется замечательно. Как только я его на тулбокс в виде скрипта вешаю: ошибка
Error in executing: cmd.exe /C D:\РАБОТА\2010\СХЕМА_~1\ADMI_T~1.PY
0 голосов
ответил 26 Март, 10 от pooperec (10,820 баллов)
1. Не нужно упрёков, пожалуйста.
2. Стоит всё таки использовать кнопку "Поиск", или правльно формировать запросы, или ждать пока ответя. Но, в любом случае, см. п1.
3. https://forum.esri-cis.ru/index.php?qa=34792
0 голосов
ответил 26 Март, 10 от TDenis (42,620 баллов)
Не могу разрешить непреодолимую для меня задачу. Есть Таблица, скажем 'D:\База.mdb\Набор\таблица', а в ней есть [Поле1], содержащее географические названия.

Таблица (table) не может находиться в наборе. Либо она не в наборе, либо это feature class (класс пространственных объектов).


Ну а решение "непреодолимой задачи" выглядит как-то так:

import arcgisscripting


gp = arcgisscripting.create(9.3)
rows = gp.searchcursor("c:/geodata/test.mdb/table1","","","","")
row = rows.next()
while row:
    print row.OBJECTID
    row = rows.next()


Здесь я просто последовательно перебираю все записи таблицы и для каждой записи вывожу на печать значение её поля OBJECTID. Подставьте название своего поля и добавляйте полученные значения в списки, кортежи, выходные файлы или куда угодно.
Перебор производится с помощью специального объекта - курсора (в нашем случае Search-курсора, они бывают разные).
Если у вас всё таки feature class, отметьте следующее: название набора в пути не указывается.

Ладно, пожалуй никто так и не ответит. Спрошу про другое...

Скрипты в хелпе - для какого интерпретатора писаны? Проблема у меня такая. В приложении PythonWin скрипт выполняется замечательно. Как только я его на тулбокс в виде скрипта вешаю: ошибка
Error in executing: cmd.exe /C D:\РАБОТА\2010\СХЕМА_~1\ADMI_T~1.PY

Какой конкретно скрипт? Из какой справки?
Для начала попробуйте поместить скрипт по нормальному пути - без длинных слов на русском языке.
Если скрипт имеет входные параметры, убедитесь, что вы их корректно определяете при добавлении скрипта в toolbox.

Вот, к примеру, я взял первый попавшийся скрипт из тех, что попроще (чтобы не возиться с кучей параметров):
http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=AddMessage_method
Он без проблем добавляется и работает. Проверяйте, получается ли у вас его добавить и запустить? Если нет, то описывайте свои действия.
    
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...