工作中,我们用了 uv 来管理 Python 项目,可以快速安装依赖和固定子依赖的版本信息。
我在一段时间的休假回来后例行更新电脑上的包库,发现 uv 有了新版本,于是我就更新了
uv。 结果在一个项目中更新 uv.lock
文件后发现有很多依赖的 wheels
从锁文件中消失了。 比如如下配置的 pyproject.toml
文件:
用 Big Query 检查 tzfpy 下载情况
在我休假回来之后,在 PyPi Stats 中发现 tzfpy 下载量增长了很多:
于是在 ChatGPT 的帮助下在 Big Query 上查了一下下载情况。发现来自 Amazon Linux 的下载量增长最多。 考虑到这个下载量和操作系统一般是商业公司。
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
一块使用没有相关的文档。所以我决定自己写一个。
将 crates 文档发布到 GitHub Pages
东缅甸协定
在 日本制铁豪赌,钢铁行业开启新全球竞争 这篇文章中读到了一句话:
另一方面,与欧洲企业之间被认为存在看不见的壁垒。这就是 1990 年代中期美国贸易代表办公室(USTR)指出的所谓的“东缅甸协定”,被认为从 1970 年代开始就存在以现在的缅甸为分界线分栖共存的密约。如今,随着日本制铁进入印度市场,这一壁垒已经开始倒塌。
构建高性能高程 API
本文转载自《构建高性能高程 API》
在彩云科技,我们始终致力于为用户提供更高时空分辨率的气象数据。在过去这些年中,我们始终面临一个挑战:由于高程数据分辨率的限制,徒步、越野等户外活动爱好者用户经常遇到彩云提供的数据与实际感受有着明显偏差,这种情况在海拔变化剧烈的山地和高原地区尤为突出。
制作富士山周边高程 RGB 瓦片
TLDR
前几日查资料的时候发现了 MapTiler 制作的轨迹高程数据可视化页面,效果非常好:
这个做的是真好的啊,而且完全在浏览器实现的https://t.co/R1vQMbdYAo pic.twitter.com/IyTYy5Fxo1
— ringsaturn.me (@ringsaturn_me) January 10, 2024
在其官方的 Blog 找到了 2019 年的博文 提到了使用的技术是将高程数据编码到图片的 RGB 通道值中,然后在浏览器中解码,这样就可以在浏览器中实现高程数据的可视化了,特别是轨迹数据这种连续的数据,下载几张图片就能绘制连续的高程曲线。
珠峰上的气象观测站
2023-12-08 和同事在做数据实验,想看看珠峰上有没有网上可以查阅数据的气象观测站。 之前在新闻上看到了中国科考队维护升级了珠峰 8830 米的自动气象站。 但是其观测数据并没有公开渠道可以直接访问,于是想查下有没有国外资料,毕竟珠峰南坡在尼泊尔境内。
Python 中批量将经纬度转换尾时区名称方式对比
对比的维度有两个:
- 不同的 DataFrame 实现,这里用的是 Pandas 和 Polars,前者是最流行的框架,后者则是用 Rust 驱动的更节约内存的框架
- 不同的经纬度转时区库的实现,这里用的是 timezonefinder1 和 tzfpy2
相关代码可以在仓库中浏览
df-lng-lat-timezones-showcase
tzf 的演进过程
tzf 及相关项目的基础开发工作基本稳定了,在之前的文章零星有些开发和设计过程的资料:
- 2022-05-29, 在 Go 中将经纬度转时区
- 2022-08-01, Python 中经纬度转时区新的选择
- 2022-08-27, 用 Go 编写 Python 扩展
- 2022-09-10, tzf 预览图制作
- 2022-11-24, tzfpy Rust 重写
这一篇是最终的总结,从项目的启动到逐步优化和演进的过程。