Tại sao có sự khác biệt giữa NDVI khi sử dụng Sentinel 2, trong ArcMap & QGIS?


8

Tôi đã cố gắng tính toán NDVI cho một cảnh bằng Sentinel 2 dải 4 (đỏ) & 8 (NIR). Lần đầu tiên tôi đã làm nó trong ArcMap và sau đó là QGIS. Trong cả hai phần mềm, tôi đã sử dụng máy tính raster và bao gồm công thức NDVI cơ bản = (NIR-Red) / (NIR + Red).

ArcMap đã cho tôi một phạm vi 0-9221 (điều này thay đổi theo độ căng được áp dụng) trong khi QGIS cho tôi các giá trị hợp lý hơn từ 0,0258-0,5255.

Tôi đã đọc ngắn gọn rằng Sentinel 2 là độ phản xạ TOA và có hệ số tỷ lệ 10000, có thể tìm thấy trong tệp xml được tải xuống cùng với hình ảnh. Tôi chưa bao giờ tìm thấy hệ số tỷ lệ này được đề cập trong tệp xml tôi đã tải xuống.

Tại sao có sự khác biệt này? Làm thế nào là tính toán được thực hiện trên QGIS?


Làm thế nào bạn tính toán NDVI, với một máy tính raster hoặc một số công cụ / plugin? Rõ ràng có điều gì đó không ổn trong tính toán Arcmap, bạn có thể chỉnh sửa bài đăng của mình để nêu chính xác cách bạn tính toán không?
HDunn

@ HDunn- Tôi đã bao gồm các chi tiết như bạn đề xuất. Tôi không sử dụng bất kỳ plugin nào, chỉ là máy tính raster trong cả ArcMap & QGIS.
tg110

Hãy thử buộc Arcmap coi chúng là phao, thay vì 8 / 16bit. để làm điều đó, nhân một trong các đối số với 1.0, lưu ý .0. Một cái gì đó như ((NIR-Red) * 1.0) / (NIR + Red).
HDunn

@ HDunn- nó đã làm việc! nhưng phạm vi giá trị trong ArcMap -0,75468 đến 0,877372 rất khác so với phạm vi tôi nhận được khi sử dụng QGIS (0,0258 đến 0,5255) Cái nào đúng? Và tại sao có sự khác biệt này?
tg110

Là căng tương tự? hãy thử tính toán số liệu thống kê hoặc thử xác định một pixel riêng lẻ trong cả hai chương trình, nó sẽ giống nhau hoặc chỉ là một chữ số làm tròn chính xác
HDunn

Câu trả lời:


3

Arcmap nổi tiếng với việc giữ lại kiểu raster và không coi các giá trị là số thập phân / float khi được tính từ các raster số nguyên 16 bit.

Để buộc Arcmap coi kết quả tính toán raster là số float, bạn nên nhân một trong các đối số với 1.0 hoặc chỉ cần thêm '.0' vào bất kỳ số không đổi hoặc số thực nào trong công thức.

Trong trường hợp của bạn (NIR-Red)*1.0/(NIR+Red)sẽ đủ.


@ HDuch hầu như giống nhau. Tôi tự hỏi tại sao sự khác biệt nhỏ vẫn còn.
tg110

0

Bạn đã kiểm tra biểu đồ ban đầu của các dải tương ứng bạn đang sử dụng chưa? Có thể là mỗi phần mềm đang diễn giải các giá trị không có dữ liệu khác nhau có thể làm sai lệch kết quả ....


@ Alexander- Vì vậy, đó là một câu hỏi khác tôi đã có. Các giá trị cho băng tần NIR trong QGIS là 527-3234, nhưng trong ArcMap là 0-9212. Tôi không hiểu làm thế nào và tại sao.
tg110

Đây có thể là nguồn gốc của vấn đề của bạn. Khi bạn xem biểu đồ - bạn sẽ biết giá trị không có dữ liệu của mình thường xuyên vì nó xuất hiện ở đầu hoặc cuối biểu đồ của bạn - thường có số lượng pixel rất lớn. Những gì bạn cần làm là một clip biểu đồ - và cắt bỏ các giá trị không có dữ liệu - sau đó thực hiện lại các chỉ số của bạn và cho chúng tôi biết kết quả của bạn :)
Alexander

@ Alexander- Tôi không biết làm thế nào để làm một clip biểu đồ. Làm thế nào tôi có thể làm điều đó?
tg110

hmmm- Tôi chỉ biết làm thế nào để làm điều đó trong erdas bằng cách sử dụng chức năng Rescale. Tuy nhiên, bạn đã bao giờ thử làm NDVI của mình mà không có máy tính băng tần trong Arcmap chưa? kiểm tra liên kết này: desktop.arcgis.com/en/arcmap/10.3/manage-data/raster-and-images/ chủ
Alexander

về cơ bản, bạn có thể bán lại biểu đồ trong cửa sổ phân tích hình ảnh (thường thì nó sẽ loại trừ không có dữ liệu theo mặc định) - đảm bảo bạn có các dải chính xác được chỉ định bằng cách vào menu tùy chọn phân tích hình ảnh. Hãy thử ndvi của bạn sau đó và xem nếu nó hoạt động.
Alexander
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.