2 个版本
使用旧的 Rust 2015
0.0.2 | 2021 年 2 月 5 日 |
---|---|
0.0.1 | 2021 年 2 月 5 日 |
#14 在 #tiff
每月 51 次下载
2.5MB
523 行
Rust 的 TIFF 库
我需要这个库来导入用于路由库的高程模型。由于高程模型通常以 GeoTIFF 格式提供,但没有适用于 Rust 的此类库,因此我创建了此库,并以此类库为灵感。
此库的目的是简单地读取 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 保持一致(需要进一步调查)。
注意:这里的 longitude
和 latitude
仅表示像素,不应用坐标转换!
开发和测试
只需使用以下命令运行测试
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/)