Géoréférencement par lots dans ArcMap / ArcPy?


9

J'ai environ 50 cartes pdf que je voudrais regrouper par géoréférence et / ou géorectifier. J'en ai enregistré un au format jpg et l'ai géoréférencé manuellement et j'aimerais automatiser les autres qui se trouvent au même emplacement et ont la même étendue.

entrez la description de l'image ici

Le gradient de densité changera dans chaque cas, mais la carte (enregistrée au format jpg maintenant) aura la même étendue pour les 50 cas.

Quelqu'un connaît-il un lien vers un didacticiel pas à pas qui traite uniquement du traitement par lots dans Arcmap 10.2? Je pense utiliser le code Warp from File ou éventuellement l' option Autoregistration , mais je ne sais pas par où commencer?

L'exemple de code est:

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

Occupent-ils le même espace? Les fichiers sont-ils adjacents?

Pouvez-vous modifier votre question pour inclure un lien vers le code Wrap from File que vous mentionnez, s'il vous plaît?
PolyGeo

Les fichiers physiques se trouvent dans le même dossier. Les données cartographiques occupent exactement le même espace dans les 50 exemples.
Codesurfer

Réponses:


15

Dans votre cas (rasters jpg et exactement la même étendue pour tous les rasters), l'outil Warp From File est très bien.

Si vous n'avez pas encore enregistré de fichier de liens, vous devez d'abord le faire: géoréférencer un raster dans ArcMap, cliquez sur le bouton Afficher la table des liens et enregistrez les liens dans un fichier texte à l'aide du bouton Enregistrer:

Afficher le tableau des liens Ensuite, il existe différentes options:

  • Lot : vous pouvez utiliser l'outil Déformer à partir d'un fichier en mode Lot en cliquant dessus avec le bouton droit dans la boîte à outils:

Lot

  • arcpy : modifiez les variables dans le code suivant et exécutez-le comme vous le souhaitez. Je voudrais simplement le copier / coller dans la fenêtre Python dans ArcMap ou 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 : vous pouvez parcourir les rasters avec l'itérateur Rasters (Insertion> Itérateurs> Rasters). Utilisez% Name% .png dans le chemin de sortie pour obtenir le nom de vos sorties de la même manière que les entrées (ou% Name% _suffix.png):

entrez la description de l'image ici


Je vous remercie. Je vais l'essayer ce soir et je mettrai à jour les résultats.
Codesurfer
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.