#tiff #data #nothing #pull-request #read #open #basic

geotiff

本库的目的是简单地读取 GeoTIFF 文件,仅此而已。也许它也适用于其他 TIFF 文件,但 TIFF 文件有很多种类,它并不打算涵盖所有。在其当前状态下,它适用于非常基本的 GeoTIFF 文件,足以用于路由库中的高程数据提取。如果您想扩展库或提出改进建议,请随时联系我,打开问题工单或发送拉取请求。您也可以考虑使用 Rust 的 GDAL 绑定。根据您的使用场景,这可能更容易使用。

2 个版本

使用旧的 Rust 2015

0.0.2 2021 年 2 月 5 日
0.0.1 2021 年 2 月 5 日

#14#tiff

Download history 38/week @ 2024-03-11 14/week @ 2024-03-18 4/week @ 2024-03-25 61/week @ 2024-04-01 9/week @ 2024-04-08 10/week @ 2024-04-15 5/week @ 2024-04-22 4/week @ 2024-04-29 2/week @ 2024-05-06 18/week @ 2024-05-20 16/week @ 2024-06-03 13/week @ 2024-06-10 8/week @ 2024-06-17 14/week @ 2024-06-24

每月 51 次下载

MIT 许可证

2.5MB
523

Rust 的 TIFF 库

Version

我需要这个库来导入用于路由库的高程模型。由于高程模型通常以 GeoTIFF 格式提供,但没有适用于 Rust 的此类库,因此我创建了此库,并以此类库为灵感。

  • Gavin Baker 的 TIFF (已停止更新:[链接]).
  • Whitebox 的 GeoTIFF 库 ([链接]).

此库的目的是简单地读取 GeoTIFF 文件,仅此而已。也许它也适用于其他 TIFF 文件,但 TIFF 文件有很多种类,它并不打算涵盖所有。

在其当前状态下,它适用于非常基本的 GeoTIFF 文件,足以用于路由库中的高程数据提取。如果您想扩展库或提出改进建议,请随时联系我,打开问题工单或发送拉取请求。

您还可以考虑使用 Rust 的 GDAL 绑定。根据您的使用场景,这可能更容易使用。

库使用

该库公开了一个 TIFF 结构体,可用于打开 GeoTIFF 文件并与它们交互。其使用很简单

TIFF::open("geotiff.tif");

TIFF::open(...) 返回一个 Option,取决于打开操作是否成功。然后可以使用以下方式读取单个值(目前,仅限于像素)

x.get_value_at(longitude, latitude);

其中 longitude 对应于 image_length,而 latitude 对应于 image_width。这可能有点反直觉,但似乎与 GDAL 保持一致(需要进一步调查)。

注意:这里的 longitudelatitude 仅表示像素,不应用坐标转换!

开发和测试

只需使用以下命令运行测试

cargo test

TIFF 基础

几份文档描述了(地理)TIFF的结构。

  • 官方TIFF规范:[http://download.osgeo.org/geotiff/spec/tiff6.pdf](http://download.osgeo.org/geotiff/spec/tiff6.pdf)。
  • 官方GeoTIFF规范:[http://download.osgeo.org/geotiff/spec/geotiff.rtf](http://download.osgeo.org/geotiff/spec/geotiff.rtf)
  • Mahammad和Ramakrishnan撰写的文章《GeoTIFF – 地理信息系统应用的标准图像文件格式》:[https://www.geospatialworld.net/article/geotiff-a-standard-image-file-format-for-gis-applications/](https://www.geospatialworld.net/article/geotiff-a-standard-image-file-format-for-gis-applications/)

依赖项