Giá trị NoData được nhận dạng trong raster trong ArcGIS Desktop nhưng không tuân theo quy tắc mã vạch?


9

Tôi có một raster GeoTIFF trong ArcGIS Desktop, có thể tải xuống từ hai liên kết sau:

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

Nếu bạn tải chúng vào ArcGIS Desktop, bạn sẽ thấy các khu vực thống nhất lớn. Nhấp vào các khu vực này bằng công cụ Thông tin sẽ hiển thị giá trị pixel là Không có Dữ liệu. Tuy nhiên, khi bạn chọn hiển thị giá trị No Data dưới dạng trong suốt (hoặc bất kỳ màu nào) trong các tùy chọn Symbology cho lớp, các giá trị No Data không tuân theo quy tắc đó.

Thật thú vị, các giá trị Không có Dữ liệu bên ngoài khu vực chính của hình ảnh tuân theo quy tắc (đặt màu thành màu đỏ để thấy điều đó), nhưng các giá trị bên trong hình ảnh thì không.

Tôi đã thực sự đấu tranh để cố gắng khắc phục vấn đề này - và không thể tìm ra cách để làm điều đó.

Có ai có ý tưởng nào?

Câu trả lời:


3

Tôi đã tải xuống tệp và chuyển đổi nó thành một mảng numpy và khi tôi lặp qua các giá trị trong mảng tôi có thể thấy rằng tôi nhận -3.40282347e + 38 và NaN làm giá trị nốt. Có lẽ bạn có thể phân loại lại các giá trị này thành giá trị này hoặc giá trị khác, vì vậy tất cả các giá trị nốt đều giống nhau.

Bạn có thể sử dụng công cụ reclassify arcpy.sa.setnullhoặc tôi chắc chắn numpy có một số chức năng ưa thích có thể làm điều này nếu bạn chuyển đổi hình ảnh thành một mảng numpy.

Dịch thuật cũng có thể hữu ích nếu bạn muốn đi theo đường dẫn nguồn mở.


Bạn có biết làm thế nào tôi có thể phân loại lại các giá trị này? Tôi dường như không thể khiến ArcGIS nhận ra bất cứ điều gì cho NaN và dường như nó không đối phó với giá trị rất thấp (về cơ bản là NaN - vì đó là phạm vi nổi trong Arc).
robintw

Nếu là tôi, tôi sẽ chuyển đổi từng hình ảnh thành một mảng gọn gàng, lặp qua mảng chuyển đổi tất cả các giá trị nốt thành -9999 hoặc bất cứ thứ gì và sau đó chuyển mảng trở lại thành hình ảnh. Tôi chắc chắn có một cách thông minh hơn để làm điều đó nhưng tôi đã không làm việc với numpy nhiều như vậy.
dango

nếu bạn quyết định sử dụng phương thức tôi đã đề xuất ở trên, bạn có thể muốn xem xét việc sử dụng hàm python math.isnan () để xác định các giá trị NaN.
dango

4

Chắc chắn có điều gì đó rất thú vị đang diễn ra với tệp / dữ liệu đó.

Bạn đã đúng khi ArcGIS hiển thị hai loại NoData khác nhau mặc dù cả hai thuộc tính đều thể hiện cùng một thứ. QGIS cũng làm điều này. Tôi hoàn toàn không biết chuyện gì đang xảy ra trong dữ liệu (nhưng tôi đoán là có hai giá trị "noData" khác nhau được sử dụng đằng sau hậu trường, một ví dụ có thể là "null" khác "-9999") nhưng sẽ được quan tâm để biết, có lẽ người khác có thể khai sáng chúng ta.

Tuy nhiên, có một vài cách giải quyết có thể:

Xuất dữ liệu - Nếu bạn xuất dữ liệu chắc chắn "sử dụng trình kết xuất", nó sẽ bắt đầu hoạt động chính xác. Nếu bạn không đánh dấu vào trình kết xuất sử dụng, tệp mới của bạn sẽ gặp vấn đề tương tự. Mặt khác, nó chuyển đổi thành dữ liệu 8 bit (0-255). Một số công cụ khác có thể có thể kết xuất lại nó trong khi vẫn giữ dữ liệu dưới dạng nổi 32 bit.

Sử dụng phân loại - Phương pháp ký hiệu phân loại dường như hiển thị đúng cả hai loại NoData (iee là cùng một thứ) vì vậy hãy sử dụng nếu có thể và bạn không muốn thay đổi dữ liệu. Kéo dài cho thấy lỗi được báo cáo của bạn và "Giá trị duy nhất" không hiển thị bất cứ điều gì.

(Sử dụng ArcGIS 9.3.1)


Cảm ơn câu trả lời - Tôi rất vui vì không chỉ tôi nghĩ rằng điều này là lạ. Thật không may, hệ thống ký hiệu được phân loại sẽ không phù hợp với những gì tôi cần làm, nhưng tôi sẽ xuất khẩu bằng trình kết xuất vào lúc này. Điều khó chịu là điều này xảy ra với tất cả các tệp mà tôi nhận được từ vệ tinh MODIS bằng hệ thống xử lý trực tuyến MODIS. Tôi nghĩ vấn đề có thể là hai loại NoData khác nhau - tôi nghĩ trong trường hợp này chúng có thể là "null" và NaN, nhưng tôi không biết.
robintw

Tôi nghĩ rằng 'Sử dụng phân loại' cho đến nay là ít nhất trong tất cả các kỹ thuật được đề xuất để khắc phục lỗi này. Bạn có thể ước chừng gần như mọi thứ bạn có thể làm trong menu 'Kéo dài' trong menu 'Classified'.
Alexander

2

Tôi chỉ gặp một vấn đề tương tự - và tìm thấy một "giải pháp". Nếu bạn nhân raster với 1.0 bằng máy tính raster, ArcMap sẽ nhận ra các giá trị NoData.


1

Có cùng một vấn đề với lưới ESRI 32 bit. Những cái 16 bit hoạt động tốt và NoData là vô hình nhưng sẽ hiển thị màu đen cho những cái 32 bit. Đã sửa nó bằng cách xuất riêng lẻ và thay đổi giá trị nốt thành -32768 trái ngược với -2147483647 mà các loại 32 bit thường có.


1

Tôi đã từng gặp vấn đề tương tự. Điều làm việc cho tôi là xuất raster trên thư mục geodatabase. Nếu raster được xuất sang cơ sở dữ liệu địa lý, arcmap sẽ hiển thị chính xác các giá trị NoData.


0

Tôi gặp vấn đề tương tự với hình ảnh Landsat 8-OLI khi thực hiện khảm. Các giá trị "NoData" ở bên ngoài (nền) không làm gì cả, nhưng bất kỳ khối dữ liệu bị thiếu nào, chẳng hạn như loại bỏ đám mây / bóng ở bên trong sẽ thay đổi màu của lớp khảm tham chiếu. Tôi đã thực hiện nó trong ERDAS và Arcmap, cả hai đều có kết quả như nhau. Vì một số lý do, nó có ảnh hưởng đến hệ thống ký hiệu, nhưng nếu bạn sử dụng công cụ "Xác định", các giá trị pixel là chính xác. Nếu bạn đang đi sau kết quả và không hiển thị, bạn sẽ ổn thôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.