Значення NoData, розпізнані в растрі на ArcGIS Desktop, але не відповідають правилам символіки?


9

У мене в ArcGIS Desktop є растр GeoTIFF, який можна завантажити з наступних двох посилань:

  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

Якщо ви завантажите їх у ArcGIS Desktop, ви побачите великі рівномірні області. Якщо натиснути на ці області за допомогою інструмента "Інформація", показник пікселя буде "Немає даних". Однак, якщо ви вибрали відображення значень No Data настільки прозорими (або як будь-який колір) у налаштуваннях Symbology для шару, значення No Data не дотримуються цього правила.

Цікаво, що значення No Data за межами основної області зображення слідують правилу (встановіть колір червоним, щоб побачити це), але ті, що знаходяться всередині зображення, не відповідають цим.

Я дійсно намагався виправити цю проблему - і не можу зрозуміти, як це зробити взагалі.

Хтось має ідеї?

Відповіді:


3

Я завантажив файл і перетворив його на numpy масив, і коли я перебираю значення в масиві, я бачу, що я отримую -3.40282347e + 38 і NaN як значення nodata. Можливо, ви могли б перекласифікувати їх у значення до одного чи іншого, тому всі значення нодату однакові.

Ви можете скористатися інструментом перекласифікації, arcpy.sa.setnullабо я впевнений, що numpy має деякі фантазійні функції, які могли б це зробити, якщо перетворити зображення в масивний масив.

Переклад Gdal також може бути корисним, якщо ви хочете піти по відкритому коду.


Чи маєте ви якесь уявлення, як я можу перекласифікувати ці значення? Я, здається, не можу змусити ArcGIS визнати що-небудь для NaN, і, схоже, це не має справу з дуже низьким значенням (в основному, NaN це здається - як і діапазон плавців у Arc).
robintw

Якби це я, я перетворив би кожне зображення на нумерований масив, перетворивши цикл на масив, перетворивши всі значення нодату в -9999 або будь-що інше, а потім передати масив назад у зображення. Я впевнений, що є розумніший спосіб зробити це, але я так багато не працював з нумером.
данго

якщо ви вирішили використовувати метод, який я запропонував вище, ви можете переглянути функцію python math.isnan () для ідентифікації значень NaN.
данго

4

З цим файлом / даними напевно відбувається щось дуже прикольне.

Ви маєте рацію в тому, що ArcGIS показує два різних типи NoData, хоча обидва атрибути показують те саме. QGIS робить це теж. Я абсолютно не маю уявлення, що відбувається в даних (але я гадаю, що існують два різних значення "noData", що використовуються за кадром, одне може бути "null", а інше "-9999", наприклад), але мені було б цікаво знати, може хтось інший може нас просвітити.

Однак існує кілька можливих способів вирішення:

Експорт даних - Якщо ви експортуєте дані, обов'язково "використовуйте візуалізацію", вони почнуть працювати правильно. Якщо ви не поставите галочку користувачеві-рендереру, у вашого нового файлу виникнуть ті самі проблеми. З іншого боку, це перетворює його на 8-бітні дані (0-255). Деякі інші інструменти, можливо, зможуть відновити їх, зберігаючи дані як 32-бітові плаваючі.

Використовувати класифіковано - метод класифікованої символіки, здається, відображає обидва типи NoData належним чином (тобто як одне і те ж), тому використовуйте, якщо це можливо, і ви не хочете змінювати дані. Розтягнуті експонати вашої повідомленої помилки, а "Унікальні цінності" просто нічого не показують.

(Використання ArcGIS 9.3.1)


Дякую за відповідь - Я радий, що не тільки я вважаю це дивним. На жаль, класифікована символогія не підходить для того, що мені потрібно зробити, але на даний момент я виконую експортування за допомогою рендерінгу. Розчаровує те, що це відбувається для всіх файлів, які я отримую із супутника MODIS за допомогою системи онлайн-обробки MODIS. Я думаю, що проблема може бути двома різними типами NoData - я думаю, що в цьому випадку вони можуть бути "нульовими" і NaN, але я не знаю.
robintw

Я думаю, що "Використовувати класифікований" - це найменш обтяжливий з усіх запропонованих методик для подолання цієї помилки. Ви можете наблизити майже все, що ви можете зробити в меню "Розтягнуте" в меню "Класифікований".
Олександр

2

Я просто натрапив на те саме питання - і знайшов «рішення». Якщо ви помножите растр на 1,0 за допомогою калькулятора растра, ArcMap розпізнає значення NoData.


1

Була така ж проблема з 32-бітовими сітками ESRI. 16 біт добре працював, а NoData був непомітний, але виявився б чорним для 32-бітових. Виправлено це шляхом експортування індивідуально та змінивши значення нодату на -32768, на відміну від -2147483647 у 32-бітових.


1

У мене була така ж проблема. Для мене працювало - експортувати растр у папку geodatabase. Якщо растр експортується на базу даних геоданих, arcmap правильно відображає значення NoData.


0

У мене є аналогічна проблема із зображеннями Landsat 8-OLI при виконанні мозаїки. Значення "NoData" ззовні (фон) нічого не роблять, але будь-які блоки відсутніх даних, такі як видалення хмари / тіні з внутрішньої сторони, змінять колір еталонного шару мозаїки. Я виконував це в ERDAS і Arcmap, і той самий результат. Чомусь це впливає на символіку, але якщо ви використовуєте інструмент «Ідентифікувати», значення пікселів є правильними. Якщо ви збираєтеся отримувати результати, а не відображатись, вам слід добре.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.