首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Zarr数据转换为GeoTiff?

如何将Zarr数据转换为GeoTiff?
EN

Stack Overflow用户
提问于 2021-09-17 20:04:50
回答 1查看 170关注 0票数 0

我想要将HRRR预测数据加载到Google Earth引擎中,所以我认为我需要将其转换为GeoTiff。

例如:

代码语言:javascript
复制
import xarray as xr
import s3fs
fs = s3fs.S3FileSystem(anon=True)

urls = ["s3://hrrrzarr/sfc/20210915/20210915_12z_fcst.zarr/surface/APCP_acc_fcst",
        "s3://hrrrzarr/sfc/20210915/20210915_12z_fcst.zarr/surface/APCP_acc_fcst/surface"]
ds = xr.open_mfdataset([s3fs.S3Map(url, s3=fs) for url in urls], engine="zarr")

# Now convert to geotiff, e.g. ds.to_geotiff().save("example.tif")
EN

回答 1

Stack Overflow用户

发布于 2021-09-17 20:04:50

使用rasteriorioxarray完成此示例:

代码语言:javascript
复制
# Open zarr data in xarray
import xarray as xr
import s3fs
fs = s3fs.S3FileSystem(anon=True)

urls = ["s3://hrrrzarr/sfc/20210915/20210915_12z_fcst.zarr/surface/APCP_acc_fcst",
        "s3://hrrrzarr/sfc/20210915/20210915_12z_fcst.zarr/surface/APCP_acc_fcst/surface"]
ds = xr.open_mfdataset([s3fs.S3Map(url, s3=fs) for url in urls], engine="zarr")

# Assign CRS projection using rioxarray
import rioxarray
from pyproj import CRS

ds = ds.rename(projection_x_coordinate="x", projection_y_coordinate="y")
crs = CRS.from_cf({"grid_mapping_name":"lambert_conformal_conic", "longitude_of_central_meridian":-97.5,
                             "latitude_of_projection_origin": 38.5,
                             "standard_parallel":38.5})
ds = ds.rio.write_crs(crs, inplace=True)
ds["APCP_acc_fcst"] = ds["APCP_acc_fcst"].astype("float64") # Original data uses short floats which cause an error
ds = ds.rio.reproject("EPSG:4326") # Arbitrarily picked a projection since GEE seems to want projections w/ official codes

# Save as GeoTiff
ds["APCP_acc_fcst"].rio.to_raster("example.tif")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69228924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档