GDAL ile raster yumuşatma / yeniden yorumlama?


15

Kısa:
Bir raster çözünürlüğünü değiştirmek ve aşağıdaki görüntüde gösterildiği gibi gri rampayı düzeltmek istiyorum. Tercih GDAL, PIL veya Numpy kullanmaktır.

Açıklama: Yüksek Performanslı Geostatist Kütüphanesi
ile 20 metrelik bir çıkış çözünürlüğü ile rasterlere puan veriyorum . Çıkış çözünürlüğünü değiştirmek istemiyorum çünkü enterpolasyon süresi katlanarak artıyor. Bu çözünürlükle çıktı görüntüsü çirkinleşir (pikselli ve diğer ad). Kavramsal olarak doğru olup olmadığını bilmiyorum ama görüntünün aşağıdaki örnekteki gibi daha pürüzsüz olmasını istiyorum. Görüntüyü daha iyi çözünürlüklü bir görüntüye 'yeniden yorumlamak' gibi bir şey. Tercihlerim GDAL, Python Imaging Library veya Numpy olacak şekilde python kullanıyorum. Cevap, algoritma adını veya bu tür bir işlem kavramını işaret etmek gibi teorik olabilir.

Kaynak:
resim açıklamasını buraya girin

Hedef:
resim açıklamasını buraya girin

Gdalwarp kübik spline ile DÜZENLEME Sonuçları:
resim açıklamasını buraya girin


Gdalwarp ile paylaştığınız 'after' görüntüsü kadar iyi sonuçlar almıyorum. Tam olarak kullandığınız komutu gönderebilir misiniz?
Grant Humphries

Yanıtlar:



5

Python'da görünen GDALReprojectImage kullanın :

from osgeo import gdal
help(gdal.ReprojectImage)

Düzgün enterpolasyon için bilinear veya kübik yöntemler kullanın. Bu işlev gariptir, çünkü anahtar kelime bağımsız değişkenleri almaz, bu nedenle konumu bulmanız gerekir:

gdal.ReprojectImage(src_ds, dst_ds, None, None, gdal.GRA_Bilinear)

Muhtemelen zor kısım, dst_dsbuna benzer src_ds, ancak değiştirilmiş hücre boyutlarına sahip bir jeotransforma sahip olması gerekiyor .


+1. "Kübik" yönteminin ne olduğundan emin değilim. Kübik bir spline olsaydı, muhtemelen bilineardan daha pürüzsüz olurdu; fakat kübik evrişim ise, bilinear'dan daha az pürüzsüz olacaktır. Kübik bir spline ideal olacaktır.
whuber

1
@whuber true, iki "kübik" algoritma seçeneği vardır: GRA_CubicSpline(ilk önce bunu deneyin) ve GRA_Cubic(evrişim).
Mike T

0

Varyasyonları yumuşatmak için düşük geçişli bir filtreye ihtiyacınız vardır. GDAL kullanarak kendiniz yazabilirsiniz veya GRASS kullanarak bir tane yazabilirsiniz. Denemedim, ama işte bir rehber http://wiki.awf.forst.uni-goettingen.de/wiki/index.php/Exercise_31

Daha iyi çözünürlük çıkışı elde etmek için alçak geçiren filtreyi uygulamadan önce rasterinizi ilk önce örneklemek isteyebilirsiniz.


1
OP'nin varyasyonları düzeltmek istediğini düşünmüyorum: aksi halde neden ilk etapta kriging çabasına giresiniz? Tüm faydaları kaybolacaktı. Bunun yerine, görüntülerin önerdiği gibi, soru, elde edilen sonuçların daha yüksek çözünürlüklü bir versiyonunu oluşturmak için yumuşak bir yeniden örnekleme prosedürü ister (bu, kriging'i hızlandırmanın akıllı ve etkili bir yoludur).
whuber

-1

yarıçapı = 5 olan bir sıra / medyan filtre kullanabilirsiniz, yani çekirdek boyutu boyutu = 11 (her bir rgb kanalı için).

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.