Birçok şekil dosyasından nasıl minik resimler oluştururum?


9

Bir meslektaşım ve ben son zamanlarda , mekansal veri arayan ve kapsam, geometri, eleman sayısı, projeksiyon sağlayan dizinlerin tam olarak gözden geçirilmesini sağlayan bir GDAL / FWTools kurulumuyla entegre olan bir dizi Python Scripts olan Mapoteca adlı bir Açık Kaynak projesi yayınladık. ve kullanıcı bunu bir csv dosyasına yazıyor. İlişkili DBF dosyalarını açıklayan kısım üzerinde çalışıyoruz ve her şekil dosyasının küçük resmini oluşturmak istiyoruz, bu küçük resimleri Python kullanarak jpeg veya png'de oluşturmanın bir yolunu biliyor musunuz?

Yanıtlar:




2

En basit yolu subprocess.call () kullanarak gdal_rasterize çağırmak olacaktır, ancak doğrudan verilerden küçük resim boyutlu bir görüntü oluşturduysanız okunaksızlık noktasına takma olacağını herhangi bir enterpolasyon yapma şüpheli. Bu nedenle "makul boyutta" * geçici bir görüntü oluşturmalı ve Python görüntü kitaplığını kullanarak onu istediğiniz boyuta ölçeklendirmelisiniz.

Ama en büyük problemin stilinizi hangi niteliklere dayandıracağını umuyorum? Shapefiles, bildiğinizden emin olduğum için doğal bir ekran bilgisine sahip değildir, bu nedenle hangi renkleri kullanacağınıza karar vermenin bir yolunu bulmanız gerekecektir. gdal_rasterize size bunu yapma olanağı sağlar, ancak seçim normal olarak etki alanına özgü bilgilere dayanır. Genel bir araca sahip olmak için genel bir stil şemasına sahip olmanız gerekir.

* Bu da birkaç zor kodlanmış kural yapmanız gerekebilecek bir şeydir. Belki de ideal bir piksel boyutuyla (piksel başına 10 m) başlayın ve elde edilen görüntü pratik olamayacak kadar büyükse bunu artırın.



1

Sadece eksiksizlik adına - mapserver ayrıca shp2img yardımcı programını kullanarak komut satırında çeşitli temel verilerden iyi görünümlü haritalar oluşturabilir . Yine, amaçlarınıza uyan çok genel, çok basit bir stile karar vermeniz gerekecektir.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.