Bagaimana cara menghasilkan gambar mini dari banyak shapefile?


9

Seorang kolega dan saya baru-baru ini merilis proyek Open Source yang disebut Mapoteca yang merupakan sekumpulan Skrip Python yang terintegrasi dengan instalasi GDAL / FWTools yang memungkinkan penelusuran penuh direktori mencari data spasial dan mengekstraksi tingkat, geometri, jumlah elemen, proyeksi dan pengguna menulisnya ke file csv. Kami sedang mengerjakan bagian yang menjelaskan file DBF yang terkait dan kami ingin menghasilkan gambar mini setiap bentuk, apakah Anda tahu cara membuat gambar mini ini dalam jpeg atau png menggunakan Python?

Jawaban:




2

Cara paling sederhana adalah dengan memanggil gdal_rasterize menggunakan subprocess.call (), tapi saya curiga itu tidak melakukan interpolasi apa pun sehingga akan alias tidak dapat dibaca jika Anda menghasilkan gambar berukuran thumbnail langsung dari data. Jadi, Anda harus menghasilkan gambar sementara "berukuran" "dan menggunakan pustaka gambar Python untuk skala ke ukuran yang Anda inginkan.

Tapi saya berharap masalah terbesar adalah atribut apa yang akan Anda gunakan? Shapefile tidak memiliki informasi tampilan bawaan karena saya yakin Anda sadar, jadi Anda harus menemukan cara untuk menentukan warna yang akan digunakan. gdal_rasterize memang memberi Anda kemampuan untuk melakukan ini, tetapi pilihan biasanya didasarkan pada pengetahuan khusus domain. Untuk memiliki alat generik, Anda harus memiliki skema gaya generik.

* Ini juga sesuatu yang Anda mungkin harus membuat beberapa aturan hard-coded. Mungkin mulai dengan ukuran piksel yang ideal (katakanlah 10m per piksel), dan tingkatkan jika gambar yang dihasilkan terlalu besar untuk praktis.



1

Hanya demi kelengkapan - mapserver juga dapat membuat peta yang terlihat bagus dari berbagai data dasar, pada commandline menggunakan utilitas shp2img . Sekali lagi, Anda perlu memutuskan gaya yang sangat umum dan sangat sederhana yang sesuai dengan tujuan Anda.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.