NoVeri değerleri ArcGIS Desktop'ta taramada tanınıyor, ancak semboloji kurallarına uymuyor mu?


9

ArcGIS Desktop'ta aşağıdaki iki bağlantıdan indirilebilen bir GeoTIFF rasterim var:

  1. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tfw
  2. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tif

Bunları ArcGIS Masaüstüne yüklerseniz, geniş tek biçimli alanlar görürsünüz. Bilgi aracıyla bu alanlara tıklandığında piksel değeri Veri Yok olarak gösterilir. Ancak, katmanın Semboloji tercihlerinde Veri Yok değerlerini saydam (veya herhangi bir renk olarak) olarak görüntülemeyi seçtiğinizde, Veri Yok değerleri bu kurala uymaz.

İlginç bir şekilde, görüntünün ana alanının dışındaki Veri Yok değerleri kuralı izler (bunu görmek için rengi kırmızıya ayarlayın), ancak görüntünün içindeki değerler buna uymaz.

Bu sorunu çözmeye çalışmak için gerçekten uğraştım - ve nasıl yapılacağını hiç çözemiyorum.

Herhangi bir fikri olan var mı?

Yanıtlar:


3

Dosyayı indirdim ve bir numpy diziye dönüştürdüm ve dizideki değerlerin üzerine döndüğümde no3.ta değerleri olarak -3.40282347e + 38 ve NaN aldım. Belki bunları bir veya diğerine yeniden sınıflandırabilirsiniz, böylece tüm nodata değerleri aynıdır.

Yeniden sınıflandırma aracını kullanabilirsiniz, arcpy.sa.setnullya da eminim numpy görüntüyü bir numpy diziye dönüştürürseniz bunu yapabilen bazı fantezi işlevleri vardır.

Gdal translate , açık kaynak yolundan gitmek istiyorsanız da yararlı olabilir.


Bu değerleri nasıl yeniden sınıflandırabileceğime dair bir fikrin var mı? ArcGIS'in NaN için bir şey tanımasını sağlayamıyorum ve çok düşük değerle (temelde NaN görünüyor - çünkü Arc'daki şamandıra aralığı) ilgilenmiyor gibi görünüyor.
robintw

Ben olsaydım, her görüntüyü bir numpy diziye dönüştürürüm, tüm nodata değerlerini -9999'a veya başka bir biçime dönüştüren dizi üzerinde döngü yapar ve diziyi bir görüntüye geri iletirim. Eminim bunu yapmanın daha akıllı bir yolu var ama o kadar çok numpy ile çalışmadım.
dango

yukarıda önerdiğim yöntemi kullanmaya karar verirseniz, NaN değerlerini tanımlamak için python math.isnan () işlevini kullanarak bakmak isteyebilirsiniz.
dango

4

Kesinlikle bu dosya / veri ile ilgili çok korkak bir şey var.

Her iki özellik de aynı şeyi gösterse de ArcGIS'in iki farklı türde NoData gösterdiği konusunda haklısınız. QGIS de bunu yapıyor. Ben verilerde neler olduğunu kesinlikle hiçbir fikrim yok (ama benim tahminim perde arkasında kullanılan iki farklı "noData" değerleri vardır, biri "boş" diğer "-9999" örneğin olabilir) ama ilgilenen olurdu belki başka biri bizi aydınlatabilir.

Ancak, birkaç olası geçici çözüm vardır:

Verileri dışa aktarma - "Oluşturucuyu kullan" öğesinden emin olduğunuz verileri dışa aktarırsanız, düzgün çalışmaya başlar. Kullanım oluşturucuyu işaretlemezseniz, yeni dosyanızda aynı sorunlar olur. Dezavantajı, bunu 8 bit verilere (0-255) dönüştürür. Başka bir araç, verileri 32 bit yüzer halde tutarken yeniden oluşturabilir.

Sınıflandırılmış Kullan - Sınıflandırılmış semboloji yöntemi, her iki NoData türünü de (aynı şey gibi) düzgün görüntülüyor gibi görünüyor, bu nedenle mümkünse bunu kullanın ve verileri değiştirmek istemezsiniz. Gerginlik bildirilen hatanızı gösterir ve "Benzersiz Değerler" hiçbir şey göstermez.

(ArcGIS 9.3.1'i kullanma)


Yanıt için teşekkürler - Bunun garip olduğunu düşünen sadece ben değilim. Ne yazık ki sınıflandırılmış semboloji yapmam gerekenler için uygun olmayacak, ancak şu anda bir oluşturucu kullanarak dışa aktarmayı yapacağım. Sinir bozucu şey, bunun MODIS çevrimiçi işlem sistemini kullanarak MODIS uydusundan aldığım tüm dosyalar için gerçekleşmesidir . Sorunun NoData iki farklı türde olabileceğini düşünüyorum - Ben bu durumda "boş" ve NaN olabilir düşünüyorum, ama bilmiyorum.
robintw

Bence 'Sınıflandırılmış Kullan', bu hata etrafında çalışmak için önerilen tüm tekniklerin en azını uyandırıyor. 'Sınıflandırılmış' menüsündeki 'Uzatılmış' menüsünde yapabileceğiniz neredeyse her şeye yaklaşık olarak ulaşabilirsiniz.
Alexander

2

Ben sadece aynı sorunla karşılaştım - ve bir "çözüm" buldum. Raster'i raster hesap makinesiyle 1.0 ile çarparsanız, ArcMap NoData değerlerini tanır.


1

32 bit ESRI ızgaraları ile aynı sorunu vardı. 16 bit olanlar iyi çalıştı ve NoData görünmezdi, ancak 32bit olanlar için siyah görünecekti. 32bit olanların normalde sahip olduğu -2147483647'nin aksine nodata değerini -32768 olarak değiştirerek düzeltildi.


1

Ben de aynı problemi yaşadım. Benim için işe yarayan olanı, coğrafi veri tabanı klasöründeki raster dışa aktarmaktı. Raster bir coğrafi veritabanına dışa aktarılırsa, arcmap NoData değerlerini doğru olarak görüntüler.


0

Bir mozaik yaparken Landsat 8-OLI görüntüleri ile benzer bir sorunum var. Dışarıdaki "NoData" değerleri (arka plan) hiçbir şey yapmaz, ancak içerideki bulut / gölge kaldırma gibi eksik veri blokları referans mozaik katmanının rengini değiştirir. ERDAS ve Arcmap'de de aynı sonucu çektim. Herhangi bir nedenle semboloji üzerinde etkisi vardır, ancak "Tanımla" aracını kullanırsanız, piksel değerleri doğrudur. Sonuçların peşinden gidiyorsanız ve görüntülenmiyorsa, iyi olmalısınız.

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.