Özet

ArcGIS Desktop (ArcMap), uzun yıllar boyunca birçok kullanıcının haritalama projeleri için tercih ettiği bir araç olmuştur. Ancak, Esri’nin ArcGIS Pro’yu geliştirmesiyle birlikte kullanıcılar projelerini Pro formatına taşımak zorunda kalmaktadır. Bu makalede, ArcMap’in MXD (Map Document) dosyalarını toplu bir şekilde ArcGIS Pro’nun APRX (ArcGIS Project) formatına dönüştürülmesini otomatikleştirmek isteyen kuruluşlara ve bireysel kullanıcılara destek olması adına bir Python betiği sunulacaktır. Kod örneği üzerinden adım adım süreci ele alacağız.


Avantajlar

  • Zaman Tasarrufu: Çok sayıda dosyanın manuel olarak dönüştürülmesi yerine süreç tamamen otomatik hale gelir.
  • Hata Azaltma: Standart bir proje şablonu kullanılarak tutarlılık sağlanır.
  • Esneklik: Kod, farklı dizinlere veya şablonlara göre kolayca uyarlanabilir.

Gereksinimler

  • ArcGIS Pro yüklü bir sistem.
  • ArcPy modülü (ArcGIS Pro ile birlikte gelir).
  • Dönüştürülmesi gereken MXD dosyaları.
  • Boş bir ArcGIS Pro projesi şablonu (.aprx dosyası).

Kodun İşleyişi

Aşağıdaki Python betiği, belirttiğiniz bir dizindeki tüm MXD dosyalarını alır ve her biri için yeni bir APRX projesi oluşturur. Her yeni proje, bir şablon proje (tempProject.aprx) temel alınarak oluşturulur ve ilgili MXD dosyası bu yeni projeye aktarılır.

Kod

import os
import arcpy

# Dosya yollarının belirlenmesi
mxd1 = r"C:\Users\user\Desktop\template_data" # MXD dosyalarının bulunduğu dizin
tempProject = r"C:\Users\user\Desktop\NewProject\TestProject\TestProject.aprx" # Şablon ArcGIS Pro projesi
newPath = r"C:\Users\user\Desktop\NewProject\NewProject" # Yeni APRX dosyalarının oluşturulacağı dizin

# Dizinin ve dosyaların varlığını kontrol eder
if not os.path.exists(mxd1):
    raise FileNotFoundError(f"The directory {mxd1} does not exist.")
if not os.path.exists(tempProject):
    raise FileNotFoundError(f"The template project {tempProject} does not exist.")
if not os.path.exists(newPath):
    os.makedirs(newPath) # Dizin yoksa oluşturur

# Çalışma alanını tanımlar ve MXD dosyalarını listeler
arcpy.env.workspace = mxd1
mxds = arcpy.ListFiles("*.mxd")
if not mxds:
    print("No MXD files found in the specified directory.")
else:
    print(f"Found MXD files: {mxds}")

# MXD dosyalarını işler
for i in mxds:
    try:
        # Yeni APRX dosyasının adı ve yolu
        newAprx = i[:-4] + ".aprx"
        x = os.path.join(newPath, newAprx)
        # Şablon projesini kopyalar
        aprx = arcpy.mp.ArcGISProject(tempProject)
        aprx.saveACopy(x)
        # İlgili MXD'yi içeri aktarır ve kaydeder
        aprx = arcpy.mp.ArcGISProject(x) # Yeni projeyi düzenlenebilir olarak yükler
        aprx.importDocument(os.path.join(mxd1, i))
        aprx.save()

        print(f"Successfully converted {i} to {newAprx}.")
    except Exception as e:
        print(f"Failed to process {i}. Error: {e}")


Sonuç

Kod başarıyla çalıştırıldığında, newPath dizininde her bir MXD dosyasına karşılık gelen yeni APRX (<MXD Adı>.aprx) dosyaları oluşturulacaktır. MXD’lerin içeriği (haritalar, çıktı düzenleri vb.) ise bu yeni .aprx dosyasına aktarılır. Tamamlanan dosyalar belirtilen çıkış klasörüne kaydedilir. Dönüşüm işlemleri tamamlandıktan sonra ArcGIS Pro’ya giderek yeni oluşturulan .aprx dosyalarını açabilirsiniz. 
Catalog Pane veya Catalog View üzerinden Maps ve Layouts bölümlerini kontrol edin ve gerekirse düzenlemeler yaparak projenizi kaydedin. Artık projelerinizi ArcGIS Pro’da kullanmaya başlayabilirsiniz.


Faydalı Bağlantılar

Automate conversion of ArcMap MXDs to ArcGIS Pro APRX with Python
Migrate from ArcMap to ArcGIS Pro
ArcGIS Pro migration guide

Geri Bildirim