Пакетная привязка в ArcMap / ArcPy?


9

У меня есть около 50 карт в формате PDF, которые я хотел бы использовать для геопривязки и / или геопривязки. Я сохранил один как jpg и привязал его вручную и хотел бы автоматизировать остальные, которые находятся в том же месте и имеют одинаковый размер.

введите описание изображения здесь

Градиент плотности будет меняться в каждом случае, но карта (сохраненная как jpg сейчас) будет иметь одинаковый экстент для всех 50 случаев.

Кто-нибудь знает ссылку на пошаговое руководство, которое касается только пакетной обработки в Arcmap 10.2? Я думаю об использовании деформации из кода файла или, возможно, опции авторегистрации , но я не уверен, с чего начать?

Пример кода:

import arcpy
arcpy.WarpFromFile_management(
"\\cpu\data\raster.img", "\\cpu\data\warp_out.tif",
"\\cpu\data\gcpfile.txt", "POLYORDER2", "BILINEAR")

Они занимают одно и то же место? Файлы соседствуют друг с другом?

Можете ли вы отредактировать свой вопрос, добавив ссылку на код Wrap from File, который вы упомянули, пожалуйста?
PolyGeo

Физические файлы находятся в одной папке. Данные карты занимают одно и то же место во всех 50 примерах.
Codesurfer

Ответы:


15

В вашем случае (растры jpg и одинаковый экстент для всех растров) инструмент «Деформация из файла» очень хорош.

Если вы еще не сохранили файл ссылок, вам следует сначала сделать это: привязать один растр в ArcMap, нажать кнопку «Просмотреть таблицу ссылок» и сохранить ссылки в текстовом файле с помощью кнопки «Сохранить»:

Посмотреть таблицу ссылок Тогда есть разные варианты:

  • Пакетная обработка : инструмент «Деформация из файла» можно использовать в пакетном режиме, щелкнув его правой кнопкой мыши на панели инструментов:

партия

  • arcpy : измените переменные в следующем коде и запустите его так, как вам нравится. Я бы просто скопировал / вставил его в окно Python в ArcMap или ArcCatalog.
import arcpy, os

# Variables
arcpy.env.workspace = r"C:\InFolder"    # Folder with rasters to be georeferenced"
OutF = r"C:\OutFolder"                  # Output folder
Suf = "_georef"                         # Suffix added to the output (if necessary)
Ext = ".jpg"                            # Format of the output rasters
LinkFile = r"C:\linkfile.txt"           # Your link file
Transf = "POLYORDER0"                   # Transformation type - to choose from:
                                        #"POLYORDER0", "POLYORDER1", "POLYORDER2", "POLYORDER3", "ADJUST SPLINE" or "PROJECTIVE"
Resampl = "NEAREST"                     # Resampling type - to choose from:
                                        # "NEAREST", "BILINEAR", "CUBIC" or "MAJORITY"

# Process
ListRas = arcpy.ListRasters()
for ras in ListRas:
    basename = arcpy.Describe(ras).baseName
    outpath = os.path.join(OutF, basename + Suf + Ext)
    arcpy.WarpFromFile_management(ras, outpath, LinkFile, Transf, Resampl)
    print "Georeferenced {} successfully".format(basename)
  • ModelBuilder : вы можете перебирать растры с помощью итератора растров («Вставка»> «Итераторы»> «Растры»). Используйте% Name% .png в выходном пути, чтобы ваши выходные имена были названы так же, как входные (или% Name% _suffix.png):

введите описание изображения здесь


Спасибо. Я собираюсь попробовать это сегодня вечером и обновлю с результатами.
Codesurfer
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.