ShellRS
ShellRS 是一款免费开源的 SSH 客户端,使用 Rust 编写:主机管理、终端、WinSCP 风格的 SFTP 与端口转发,全部在一个 GPU 渲染窗口中,支持 macOS、Windows 和 Linux。
AI 翻译
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Fast, async GeoTIFF and COG reader for Python
翻译准备中
正在加载完整 README。
查看完整 README ↗Fast, async GeoTIFF and Cloud-Optimized GeoTIFF (COG) reader for Python, wrapping the Rust-based Async-TIFF library.
Documentation website. Introduction blog post
Features explicitly not in scope:
Resampling and warping bring significant additional complexity and are out of scope for this library. Consider using Async-GeoTIFF to load data, then Rasterio's In-Memory Files to resample or reproject data, if needed.
First create a "store", such as an S3Store, GCSStore, AzureStore, or LocalStore for reading data from AWS S3, Google Cloud, Azure Storage, or local files. Refer to obstore documentation for more information.
from obstore.store import S3Store
store = S3Store("sentinel-cogs", region="us-west-2", skip_signature=True)
path = "sentinel-s2-l2a-cogs/12/S/UF/2022/6/S2B_12SUF_20220609_0_L2A/TCI.tif"
Then open a GeoTIFF:
from async_geotiff import GeoTIFF
geotiff = await GeoTIFF.open(path, store=store)
On the GeoTIFF instance you have metadata about the image, such as its affine transform and Coordinate Reference System:
geotiff.transform
# Affine(10.0, 0.0, 300000.0,
# 0.0, -10.0, 4100040.0)
geotiff.crs
# <Projected CRS: EPSG:32612>
# Name: WGS 84 / UTM zone 12N
For a COG, you can access the overviews, or reduced resolution versions, of the image:
# Overviews are ordered from finest to coarsest resolution
# In this case, access the second-coarsest resolution version of the image
overview = geotiff.overviews[-2]
Then we can read data from the image. This loads a 512-pixel square from the upper-left corner of the selected overview.
from async_geotiff import Window
window = Window(col_off=0, row_off=0, width=512, height=512)
array = await overview.read(window=window)
This RasterArray instance has data, mask, and some other metadata about the fetched array data.
Plot, using rasterio.plot.show (requires matplotlib):
import rasterio.plot
rasterio.plot.show(array.data)