Đọc GeoTiff bằng .NET


11

Có một thư viện được quản lý để đọc các tọa độ từ một GeoTiff tập tin trong NET?

Tôi biết nó có thể được thực hiện thông qua GDAL, nhưng tôi đang tìm kiếm một giải pháp thay thế được quản lý .


Bạn có thể sử dụng Manifold: manifold.net , nhưng ít nhất bạn sẽ cần thời gian chạy của họ để phân phối với ứng dụng của bạn. Bạn sẽ phải đọc GeoTIFF như một thành phần Manifold trước khi truy vấn từ nó, điều này có thể không phù hợp với bạn. Tất cả đều được quản lý VC ++ dưới mui xe và trình đọc GeoTIFF của họ được viết bởi họ. Bạn có thể kiểm tra với các tập lệnh VBScript hoặc C # bên trong ứng dụng, sau đó chuyển sang một ứng dụng bên ngoài trong C # hoặc bất cứ điều gì.
mdsumner

nếu không thì mapiow api có thể hữu ích, tôi chắc chắn cũng có những người khác mà tôi sẽ đăng nếu tôi nhớ
mdsumner

Câu trả lời:



10

Bạn có thể sử dụng các hàm bao .NET . Điều này cho phép bạn truy cập bất kỳ chức năng GDAL nào từ bên trong mã được quản lý.


Tôi đồng ý ... tốt nhất để gắn bó với mã đã được thử nghiệm trong trường hợp này
WolfOdrade

Đây vẫn là GDAL không được quản lý dưới mui xe. Trong trường hợp cụ thể này, tôi đang tìm kiếm chỉ quản lý.
BjartN

1
@BjartN: Bạn luôn có thể sử dụng System.Drawing.Bitmap.PropertyItems, sau đó tự xử lý các thẻ GeoTiff: remotesensing.org/geotiff/spec/geotiff2.6.html#2.6.1 Tuy nhiên, tôi muốn sử dụng trình bao bọc được quản lý xung quanh một thư viện bản địa ...
Reed Copsey

Thx đây có thể là những gì tôi đang tìm kiếm. Tôi sẽ điều tra :) Ngoài ra, tôi có thể kết thúc với một trình bao bọc được quản lý, nhưng tôi không quan tâm lắm đến việc phụ thuộc vào GDAL. Sẽ thích một cái gì đó nhẹ hơn.
BjartN

3

Bạn sẽ không thấy nhiều trong C # được quản lý, do giới hạn sử dụng bộ nhớ và hiệu suất được áp đặt bởi lớp quản lý bộ nhớ .NET Framework. Đừng hiểu lầm tôi - Tôi yêu C # và .NET. Tuy nhiên, C ++ bản địa nhanh hơn nhiều và (theo tôi) ít gây khó chịu hơn khi viết, trong trường hợp này.

Các khảo sát thường chứa nhiều tệp GeoTIFF, đòi hỏi nhiều bộ nhớ và thao tác dữ liệu, khi thực hiện chuyển đổi địa lý (tức là tọa độ WGS82 sang UTMM sang TIFF XY, sau đó quay lại.) những thứ như tổng hợp kết quả khảo sát tuyến tính, xuyên tâm và khu vực.

Có thể bạn không muốn nghe điều này, nhưng viết một trình phân tích cú pháp bằng C ++ gốc và sau đó gói nó vào C # sẽ giúp tăng đáng kể hiệu năng và loại bỏ các giới hạn bộ nhớ. Viết một trình phân tích cú pháp thực sự khá dễ dàng và sẽ rất nhẹ, vì bạn có thể điều chỉnh nó theo nhu cầu của mình. Bạn sẽ thấy điều này đặc biệt đúng, khi tích hợp các tính năng nâng cao hơn, chẳng hạn như chọn tự động và mở rộng các tệp GeoTIFF.


Tôi cho bạn một điểm để thêm giá trị :)
BjartN

Nhiều đánh giá cao! ;)
Mike Christian

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.