用 Big Query 检查 tzfpy 下载情况

使用 Big Query 分析 tzfpy 包的下载来源和趋势,发现来自 Amazon Linux 的下载量显著增长,推测可能是商业公司的使用

 · 3 min · 1132 words · ringsaturn

protoc-gen-go-hertz

背景:我有一个 API 项目 tzf-server,想利用 proto 文件生成 openapi.yaml 配合 Swagger 使用, 并且有与其一致的 HTTP API 供调用。很遗憾的是 Go 生态中尚未有能和 Python 生态中的 FastAPI 接近的 API 框架来简化业务代码编写和文档生成工作。 特别是 Hertz 框架,提供了很多功能甚至通过扩展支持了参数校验功能,但是这些并不能直接输出成 openapi.yaml 文件。 gRPC-Gateway 是一个不错的选择,但是尚不支持 OpenAPI V3。 还有一个隐藏的原因是在用 buf 管理 proto,但是 hertz 的生成工具怎么和 buf 一块使用没有相关的文档。所以我决定自己写一个。 ...

 · 2 min · 700 words · ringsaturn

将 crates 文档发布到 GitHub Pages

 · 1 min · 127 words

东缅甸协定

在 日本制铁豪赌,钢铁行业开启新全球竞争 这篇文章中读到了一句话: 另一方面,与欧洲企业之间被认为存在看不见的壁垒。这就是 1990 年代中期美国贸易代表办公室(USTR)指出的所谓的“东缅甸协定”,被认为从 1970 年代开始就存在以现在的缅甸为分界线分栖共存的密约。如今,随着日本制铁进入印度市场,这一壁垒已经开始倒塌。 ...

 · 2 min · 689 words · ringsaturn

构建高性能高程 API

本文转载自《构建高性能高程 API》 在彩云科技,我们始终致力于为用户提供更高时空分辨率的气象数据。在过去这些年中,我们始终面临一个挑战:由于高程数据分辨率的限制,徒步、越野等户外活动爱好者用户经常遇到彩云提供的数据与实际感受有着明显偏差,这种情况在海拔变化剧烈的山地和高原地区尤为突出。 ...

 · 4 min · 1897 words · ringsaturn

制作富士山周边高程 RGB 瓦片

TLDR 前几日查资料的时候发现了 MapTiler 制作的轨迹高程数据可视化页面,效果非常好: 这个做的是真好的啊,而且完全在浏览器实现的https://t.co/R1vQMbdYAo pic.twitter.com/IyTYy5Fxo1 — ringsaturn.me (@ringsaturn_me) January 10, 2024 在其官方的 Blog 找到了 2019 年的博文 提到了使用的技术是将高程数据编码到图片的 RGB 通道值中,然后在浏览器中解码,这样就可以在浏览器中实现高程数据的可视化了,特别是轨迹数据这种连续的数据,下载几张图片就能绘制连续的高程曲线。 ...

 · 3 min · 1408 words · ringsaturn

珠峰上的气象观测站

2023-12-08 和同事在做数据实验,想看看珠峰上有没有网上可以查阅数据的气象观测站。 之前在新闻上看到了中国科考队维护升级了珠峰 8830 米的自动气象站。 但是其观测数据并没有公开渠道可以直接访问,于是想查下有没有国外资料,毕竟珠峰南坡在尼泊尔境内。 ...

 · 1 min · 315 words · ringsaturn

Python 中批量将经纬度转换为时区名称方式对比

对比的维度有两个: 不同的 DataFrame 实现,这里用的是 Pandas 和 Polars,前者是最流行的框架,后者则是用 Rust 驱动的更节约内存的框架 不同的经纬度转时区库的实现,这里用的是 timezonefinder1 和 tzfpy2 相关代码可以在仓库中浏览 df-lng-lat-timezones-showcase ...

 · 1 min · 193 words · ringsaturn

tzf 的演进过程

介绍 tzf 的演进过程,从最初的 Go 实现到后来的 Python 扩展,再到现在的 Rust 实现,以及 PyO3 的封装。

 ·  · 6 min · 2685 words · ringsaturn

彩云天气地理查询优化(2): 行政区划查询

本文转载起《彩云天气地理查询优化(2): 行政区划查询》 在彩云天气 App 和 API 里可以获取到当前经纬度的气象预警信息,比如「大风蓝色预警」。 不同国家地区的预警发布规则不一样,在中国是按照行政区划层级来发布的,其中最小到县级行政区。 所以在实现中,需要将经纬度转换成行政区划层级信息,再查找相关的预警信息。 在过去几年中,这部分模块经历了多次重构和完善,在此分享下每个版本的实现方式。 ...

 · 5 min · 2231 words · ringsaturn