Được rồi, không ai đưa ra câu trả lời cho câu hỏi này vì vậy tôi nghĩ rằng tôi đã đồng ý. Tôi nghi ngờ rằng tất cả các hệ thống cung cấp hỗ trợ cho giá trị NoData đều thực hiện theo cách chính xác như vậy. Mỗi thao tác toán học được áp dụng cho hình ảnh raster sẽ tìm trường hợp đặc biệt của các ô lưới chứa các giá trị NoData và sau đó thực hiện một đường dẫn bỏ qua hoạt động một cách hiệu quả và đưa ra giá trị NoData cho ô lưới tương ứng trong hình ảnh đầu ra . Dưới đây là một ví dụ được lấy từ công cụ Thêm trong GAT GIS Whitebox nguồn mở:
Ngẫu nhiên, đây là mã cũng được thực thi nếu bạn thêm hai hình ảnh vào Máy tính Raster của Whitebox. Trong Whitebox, mỗi raster có thể có một giá trị NoData duy nhất vì nó được chỉ định trong tệp tiêu đề của raster. Như vậy, nó không nhất thiết giống nhau cho cả hai hình ảnh được thêm vào và đó là lý do tại sao bạn thấy các biến noData1 và noData2 được xác định trong mã ở trên. Điều quan trọng, bạn sẽ thấy rằng khi các vòng lặp mã qua từng ô lưới trong ngăn xếp raster, nó sẽ trả về hai giá trị trong các hình ảnh đầu vào tương ứng cho một ô (z1 và z2), sau đó kiểm tra xem cả hai không bằng NoData . Do đó, việc bổ sung chỉ xảy ra nếu cả hai raster chứa một giá trị hợp lệ trong các đầu vào. Nếu đây không phải là trường hợp, không có gì được nhập vào ô lưới đầu ra. Trong thực tế, hình ảnh đầu ra đã được tạo và khởi tạo với giá trị NoData của riêng nó, do đó, bằng cách không nhập giá trị gia tăng cho ô lưới (vì ít nhất một trong các đầu vào là NoData), đầu ra cũng sẽ có giá trị NoData. Các hoạt động tương tự diễn ra cho từng hoạt động toán học và trên thực tế, hầu hết các công cụ liên quan đến bộ dữ liệu raster đầu vào sẽ tuân theo cách tiếp cận tương tự để xử lý trường hợp đặc biệt của các giá trị NoData. Hai trường hợp ngoại lệ phổ biến cho quy tắc này là các hoạt động tạo ra giá trị NoData cho các đầu vào NoData được tìm thấy trong hầu hết các hệ thống GIS trongCon và Set công cụ Null . Công cụ Con của ArcGIS tuyên bố: "Nếu NoData không thỏa mãn thì nó không nhận được giá trị của và nó vẫn là NoData." Do đó, nếu 'NoData' là một phần của câu lệnh có điều kiện và một ô lưới có giá trị này giảm xuống 'TRUE', thì giá trị không phải là NoData có thể được xuất ra. Tương tự, công cụ Set Null thực sự sẽ xuất giá trị không phải NoData cho các ô nhập có chứa NoData.
Tôi hy vọng điều đó sẽ giúp bạn hiểu được hoạt động của giá trị NoData bí ẩn đó. Và hãy nhớ số 0 không giống với NoData! (Tất nhiên trừ khi số 0 đã được gắn thẻ là giá trị NoData cho một raster cụ thể).