Saya memiliki lebih dari 100 file bentuk yang tidak memiliki file .prj dan dengan demikian ketika saya membawa mereka ke dalam ArcMap 10 mereka menunjukkan sistem koordinat sebagai tidak diketahui. Saya tahu semua bentuk file sistem koordinat adalah GCS WGS 1984. Saya juga tahu saya bisa menggunakan alat Tentukan Proyeksi GP untuk secara individual menetapkan sistem koordinat untuk setiap file tetapi itu akan memakan waktu selamanya.
Saya berharap ada alat GP untuk batch mendefinisikan ini tetapi saya tidak melihatnya. Selanjutnya saya berpikir mungkin saya bisa menggunakan python untuk melakukan ini sehingga saya mencari di menu bantuan dan menemukan skrip tetapi itu memberi saya kesalahan.
Berikut adalah kode python yang saya coba (ini untuk satu file shp jadi saya masih kesulitan mengetikkan nama untuk setiap file:
import arcpy
infc = r"C:\Documents and Settings\User\My Documents\ArcGIS\shpfiles\Site_2.shp"
prjfile = r"<install directory>\Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj"
arcpy.DefineProjection_management(infc, prjfile)
sumber
Jawaban:
Saya pikir kalian terlalu memikirkan yang satu ini ...
sumber
Jika mereka berada di direktori yang sama, sesuatu seperti ini akan berfungsi (ganti saja jalur Anda, mungkin tambahkan beberapa penanganan pengecualian):
sumber
import os, shutil
(lihat yang diperbarui jawabannya). docs.python.org/tutorial/stdlib.html harus Anda di sana.Cukup buat salinan .prj dan ganti nama. Jadi, misalnya, jika Anda memiliki 3 shapefile:
Tentukan proyeksi untuk one.shp dan Anda akan memiliki one.prj di direktori. Salin one.prj ke direktori two.shp dan ganti nama menjadi two.prj, ulangi untuk semua shapefile. .Prj hanyalah sebuah file teks. Selama ada .prj di direktori yang sama dengan .shp dan dengan nama yang sama, perangkat lunak akan mengambilnya. Otomatiskan dengan alat apa pun yang Anda kenal untuk menyalin dan mengganti nama file.
sumber
Edit:
Mungkin metode yang paling mudah adalah. Bawa semuanya masuk dan tetapkan CR yang benar untuk dokumen tersebut. Mereka akan "tidak diproyeksikan" tetapi duduk di tempat yang tepat. Kemudian cukup ekspor (beberapa) ke lokasi baru.
Saya melihat alat GP untuk proyeksi batch.
Ini mungkin tidak terpapar dalam busur. ??
Saya pikir saya akan membuat pgdb, (File, personal atau bahkan sde) dan kemudian membuat fds (fitur data set).
Tetapkan CR yang sesuai untuk fds itu.
Impor file bentuk (banyak). [semua fc dalam fds mewarisi crs dari fds].
Kemudian Anda dapat mengekspor ke bentuk file (banyak).
Ini akan menjadi pengganti proyeksi batch, dan saya yakin bisa dituliskan.
sumber
bagaimana dengan skrip shell sederhana dan ogr2ogr? Lihat http://www.gdal.org/ogr2ogr.html untuk sintaks yang tepat.
sumber
Inilah yang saya gunakan ... itu hanya akan menentukan proyeksi untuk file raster yang tidak memiliki proyeksi. Semoga ini bisa membantu. Itu juga membuat daftar file tanpa proyeksi untuk tujuan Jaminan Kualitas.
Untuk vektor Anda, hanya perlu sedikit mod - FileList = arcpy.ListFeatureClasses ()
sumber