Saya memiliki direktori dengan beberapa shapefile.
Bagaimana cara mengonversi semua shapefile ini ke MapInfo dengan ogr2ogr?
Saya tahu bagaimana saya bisa mengonversi satu file. Dan saya bisa membuat skrip batch menulis baris untuk setiap file. Tetapi apakah tidak ada cara yang lebih mudah untuk mengonversi semua file dalam direktori (dan subdirektori).
Jawaban:
Di Windows, untuk direktori saat ini dan di bawah direktori saat ini, coba perintah ini:
Untuk menjelaskan secara singkat tipu apa yang terjadi di sini ,
%~dpnf.tab
menggunakan variabel % f , dengan yang menambahkan d surat sungai, p nama ath (yaitu, folder atau direktori), dan ekstrak file n ame (tanpa.shp
ekstensi file) . Terakhir,.tab
ditambahkan segera setelah pengubah variabel majemuk untuk ekstensi baru.Jadi jika Anda berada di direktori
C:\MyData
, dan Anda memiliki data di direktori ini, dan sub-direktoriC:\MyData\Region1
danC:\MyData\Region1\City1
, setiap Shapefile (dengan.shp
ekstensi) akan diproses, dan file bernama yang sama dengan.tab
akan dibuat di direktori yang sama.sumber
%f
menjadi%%f
. Lihat ss64.com/nt/for.html untuk detailnya.Untuk unix bash:
Jika Anda bekerja di OS berbasis * nix (yaitu Linux atau OS X), ada beberapa skrip shell batch yang dikembangkan clhenrik di sini (yang menjadi dasar di atas).
Saya sedang mengerjakan garpu yang membuat beberapa skrip menjadi sedikit lebih umum dan memberikan sedikit deskripsi tentang penggunaan.
sumber
Seperti kata Alex Markov , cara terbaik bagi Anda untuk menggunakan OGR .
Anda harus membuat skrip, tetapi skrip yang sangat sederhana. Pada dasarnya jika Anda menggunakan windows, yang harus Anda lakukan adalah menjalankan kode berikut di baris perintah (di dalam folder yang diinginkan):
Periksa situs ini, semua dijelaskan di sini:
http://www.processamentodigital.com.br/?p=2511
sumber
dengan python:
Anda dapat mengubah
os.getcwd()
jalur Anda di mana file Anda berada ...Saya harap ini membantu Anda
sumber
for a in *.shp:
adalah kesalahan sintaksis; Anda berpikirfrom glob import glob; for a in glob('*.shp'):
Anda tidak perlu perulangan, Anda cukup memberi nama direktori sebagai sumber dan tujuan dan ogr2ogr akan mengonversi file apa pun di direktori sumber. Lihat di sini: Mengonversi TAB ke MIF / MIF ke TAB
sumber
sepertinya Anda memerlukan for for loop - lihat http://www.robvanderwoude.com/for.php untuk penjelasan tentang cara kerjanya.
sumber
Penerjemah Universal di Mapinfo dapat menangani banyak file. Buka folder tujuan, pilih semua shapefile, tentukan CRS untuk input dan output. Itu harus dilakukan.
sumber
Ini adalah penyempurnaan dari jawaban Aragon di atas. Ini hanya akan menjalankan ogr2ogr pada file .TAB atau .tab, dan mengabaikan jenis file lain dalam folder.
sumber