PROJ 9.6.0版本发布:地理空间坐标转换工具的重大更新
项目简介
PROJ是一个功能强大的开源地理空间坐标转换库,广泛应用于GIS(地理信息系统)领域。它提供了坐标转换、地图投影转换以及基准面转换等功能,是许多GIS软件(如QGIS、GDAL等)的核心组件之一。PROJ支持数千种坐标参考系统(CRS)和投影方法,能够处理复杂的地理空间数据转换需求。
PROJ 9.6.0版本核心更新
1. 性能优化与效率提升
新版本在多方面进行了性能优化,显著提升了处理效率:
-
坐标转换加速:
proj_factors()函数在重复调用相同复合或投影CRS时速度得到显著提升,这对于需要频繁进行相同类型坐标转换的应用场景尤为重要。 -
数据库查询优化:
createOperations()函数避免了对使用未知基准的CRS(通常是PROJ字符串)进行不必要的数据库查找,减少了冗余操作。 -
内存缓存管理:
proj_download_file()函数现在会在下载文件后使相关内存缓存失效,确保当前上下文中的数据一致性。
2. 新增投影方法支持
9.6.0版本引入了多种新的地图投影方法:
-
Airocean投影(原Dymaxion投影):这是一种创新的投影方法,能够将地球表面展开为一个近似等面积的二十面体,特别适合全球可视化。
-
Spilhaus投影:专为海洋制图设计的投影方法,能够突出显示全球海洋系统的连通性。
-
新增对ESRI:54099(
WGS_1984_Spilhaus_Ocean_Map_in_Square)投影的PROJ字符串导出支持。
3. 坐标参考系统(CRS)处理增强
-
复合CRS支持:
proj_trans_bounds()函数现在能够正确处理目标CRS为复合CRS的情况,扩展了其应用范围。 -
工程CRS支持:数据库新增了
engineering_datum和engineering_crs表,并导入了相关EPSG记录,增强了对工程坐标系统的支持。 -
垂直转换改进:新增对"Vertical Offset by Grid Interpolation (asc)"方法的支持,映射到
+proj=vgridshift。
4. 数据库与转换方法更新
-
EPSG数据库升级:更新至EPSG v12.004版本,包含最新的坐标参考系统定义。
-
转换方法扩展:新增对"Coordinate Frame rotation full matrix (geocen)"和"Coordinate Frame rotation full matrix (geog2D)"方法的支持。
-
网格转换增强:支持新的EPSG方法"Cartesian Grid Offsets by TIN Interpolation (JSON)"和"Vertical Offset by TIN Interpolation (JSON)"。
5. 构建与部署改进
-
C++17标准:项目构建系统升级至C++17版本,利用了现代C++的特性优势。
-
资源文件嵌入:新增CMake选项
EMBED_RESOURCE_FILES和USE_ONLY_EMBEDDED_RESOURCE_FILES,允许将proj.db和proj.ini等资源文件直接嵌入到库中,简化部署。 -
TIF/JSON资源嵌入:通过
EMBED_RESOURCE_DIRECTORY选项,可以将.tif/.json文件嵌入到libproj中,提高便携性。
重要问题修复
-
坐标转换稳定性:修复了
+proj=cass投影在输入坐标等于假东移或假北移值时可能出现的非收敛问题。 -
内存管理:修复了
proj_clone()函数未能正确传播errorIfBestTransformationNotAvailable等标志的问题。 -
SSL连接:增加了对"SSL connection timeout"的重试机制,提高了网络操作的可靠性。
-
ITRF转换:修正了ITRF97到ITRF2014转换文件中的参数错误。
开发者工具增强
-
projinfo改进:现在可以显示操作是否具有时间依赖性,帮助开发者更好地理解转换特性。
-
bash自动补全:为projinfo工具添加了bash补全脚本,提升命令行使用体验。
-
调试支持:在多网格TIFF文件打开时,将子网格索引附加到网格名称中,便于调试和分析。
总结
PROJ 9.6.0版本在性能、功能和稳定性方面都有显著提升,特别是新增的投影方法和增强的CRS处理能力,使其在地理空间数据处理领域继续保持领先地位。对于GIS开发者和数据分析师来说,升级到这个版本将获得更高效、更可靠的坐标转换体验。无论是处理传统的地图投影需求,还是应对新兴的地理空间数据处理挑战,PROJ 9.6.0都提供了强有力的支持。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C0113
let_datasetLET数据集 基于全尺寸人形机器人 Kuavo 4 Pro 采集,涵盖多场景、多类型操作的真实世界多任务数据。面向机器人操作、移动与交互任务,支持真实环境下的可扩展机器人学习00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python059
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00