Làm thế nào để công cụ rasterize quyết định giá trị nào đại diện khi một ô bao phủ một khu vực bao gồm các giá trị khác nhau? Tôi cần nó trong trường hợp này cho đa giác nhưng cũng muốn biết cho các dòng và điểm. Các quy tắc mà nó tuân theo là gì.
Làm thế nào để công cụ rasterize quyết định giá trị nào đại diện khi một ô bao phủ một khu vực bao gồm các giá trị khác nhau? Tôi cần nó trong trường hợp này cho đa giác nhưng cũng muốn biết cho các dòng và điểm. Các quy tắc mà nó tuân theo là gì.
Câu trả lời:
Nhìn vào nguồn ở đây và ở đây , có vẻ như GDAL chỉ bắt đầu từ đầu danh sách và đi xuống, vì vậy nó sẽ được sắp xếp theo thứ tự các hình dạng được lưu trữ, ghi đè lên bất kỳ dữ liệu nào được lưu trữ trong một pixel nhất định. Tôi thậm chí không chắc chắn nó làm bất cứ điều gì với các chỉ mục thuộc tính.
Trình rasterizer theo mặc định chỉ sử dụng tâm pixel cho đa giác hoặc thuật toán của Bresenham cho các dòng (có lẽ các điểm chỉ là lân cận gần nhất). Dường như có một tùy chọn để điền vào bất kỳ pixel cảm ứng nào, theo tôi có thể được cung cấp trên dòng lệnh. Có một nhận xét về hiệu ứng này trong mã :
462 * <dt>"ALL_TOUCHED":</dt> <dd>May be set to TRUE to set all pixels touched
463 * by the line or polygons, not just those whose center is within the polygon
464 * or that are selected by brezenhams line algorithm. Defaults to FALSE.</dd>
Vì vậy, không có sự pha trộn nào cả, và nó không cố gắng làm bất cứ điều gì thông minh.