Batch Georeferencing ใน ArcMap / ArcPy?


9

ฉันมีแผนที่ pdf ประมาณ 50 แผนที่ที่ฉันต้องการจัดทำ georeference และ / หรือ georectify ฉันบันทึกหนึ่งไฟล์เป็น jpg และอ้างอิงทางภูมิศาสตร์ด้วยตนเองและต้องการให้ส่วนที่เหลือซึ่งอยู่ในตำแหน่งเดียวกันโดยอัตโนมัติและมีขอบเขตเท่ากัน

ป้อนคำอธิบายรูปภาพที่นี่

ความหนาแน่นของการไล่ระดับสีจะเปลี่ยนไปในแต่ละกรณี แต่แผนที่ (บันทึกเป็น jpg ในขณะนี้) จะมีขอบเขตเท่ากันสำหรับทั้ง 50 กรณี

ไม่มีใครรู้ลิงค์ไปยังบทช่วยสอนแบบทีละขั้นตอนที่เกี่ยวข้องกับการประมวลผลแบบกลุ่มใน Arcmap 10.2 เท่านั้น? ฉันกำลังคิดว่าจะใช้Warp จากรหัสไฟล์หรืออาจเป็นตัวเลือกการลงทะเบียนอัตโนมัติแต่ฉันไม่แน่ใจว่าจะเริ่มจากที่ใด

รหัสตัวอย่างคือ:

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

พวกเขาครอบครองพื้นที่เดียวกันหรือไม่ เป็นไฟล์ที่อยู่ติดกันหรือไม่?

คุณสามารถแก้ไขคำถามของคุณเพื่อรวมลิงค์ไปยังรหัส Wrap จากไฟล์ที่คุณพูดถึงได้ไหม
PolyGeo

ฟิสิคัลไฟล์อยู่ภายในโฟลเดอร์เดียวกัน ข้อมูลแผนที่ใช้พื้นที่ว่างตรงตามตัวอย่างทั้งหมด 50 ตัวอย่าง
โค้ดเซอร์เฟอร์

คำตอบ:


15

ในกรณีของคุณ (jpg rasters และขอบเขตที่แน่นอนสำหรับ rasters ทั้งหมด) เครื่องมือ Warp From File ก็ใช้ได้

หากคุณยังไม่ได้บันทึกไฟล์ลิงก์คุณควรทำสิ่งนี้ก่อน: Georeference หนึ่ง raster ใน ArcMap คลิกที่ปุ่มดูลิงค์ตารางและบันทึกลิงค์ไปยังไฟล์ข้อความโดยใช้ปุ่มบันทึก:

ดูตารางการเชื่อมโยง จากนั้นมีตัวเลือกต่าง ๆ :

  • แบทช์ : คุณสามารถใช้ Warp จากเครื่องมือไฟล์ในโหมดแบทช์โดยคลิกขวาในกล่องเครื่องมือ:

ชุด

  • arcpy : เปลี่ยนตัวแปรในรหัสต่อไปนี้และเรียกใช้ในแบบที่คุณต้องการ ฉันเพิ่งจะคัดลอก / วางใน Python Window ใน 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 : คุณสามารถวนซ้ำ rasters ด้วย Raster Iterator (ใส่> Iterators> Rasters) ใช้% Name% .png ในพา ธ เอาต์พุตเพื่อรับเอาต์พุตของคุณในชื่อเดียวกับอินพุต (หรือ% Name% _suffix.png):

ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณ. ฉันจะลองตอนเย็นนี้และจะอัปเดตกับผลลัพธ์
Codesurfer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.