当前位置: 首页 > news >正文

GDAL—瓦片格式栅格数据创建和修改

瓦片栅格数据

要点:瓦片是物理分区存储方式;实际的写入操作是逻辑分区方式;通过新建瓦片栅格的方式修改瓦片设置

import numpy as np
from osgeo import gdal, osr# ========== 参数设置 ==========
cols = 25000  # 列数
rows = 20000  # 行数
bands = 1
dtype = gdal.GDT_Float32# 预期文件大小 = 25000 × 20000 × 4 = 2,000,000,000 字节 ≈ 1.86 GBoutput_raster = r""print(f"正在创建 {cols} × {rows} 的栅格(约 1.9 GB)...")# ========== 1. 创建空文件 ==========
driver = gdal.GetDriverByName("GTiff")
ds = driver.Create(output_raster, cols, rows, bands, dtype, options=["TILED=YES",  # 瓦片存储(分块读取必需,物理分区存储)"BLOCKXSIZE=256",  # 瓦片宽度"BLOCKYSIZE=256",  # 瓦片高度"COMPRESS=LZW"  # 压缩(可减少实际大小)
])# ========== 2. 设置坐标和投影 ==========
x_min, x_res = 110.0, 0.01
y_max, y_res = 35.0, -0.01
ds.SetGeoTransform((x_min, x_res, 0, y_max, 0, y_res))srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)
ds.SetProjection(srs.ExportToWkt())# ========== 3. 写入数据(分块写入,避免内存爆炸) ==========
band = ds.GetRasterBand(1)
band.SetNoDataValue(np.nan)# 分块写入:每次写入 1000 行,峰值内存约 25000×1000×4 ≈ 100MB
block_rows = 1000for start_row in range(0, rows, block_rows):    # 逻辑分块处理end_row = min(start_row + block_rows, rows)current_rows = end_row - start_row# 生成这一块的数据(示例:随机数)# 注意:生成 25000×1000 的随机数组需要约 100MB 内存zone_id = start_row // block_rows + 1  # 分区编号从 1 开始block_data = np.full((current_rows, cols), float(zone_id), dtype=np.float32)# 写入这块数据band.WriteArray(block_data, 0, start_row)   # 写入的数据;列方向偏移;行方向偏移# 释放内存del block_dataprint(f"  已写入行 {start_row} - {end_row} ({(end_row / rows) * 100:.1f}%)")# ========== 4. 关闭文件 ==========
ds = Noneprint(f"\n 大文件创建完成: {output_raster}")
print(f"文件大小约 1.9 GB,可作为 Level 3 练习数据")# ========== 5. 修改(新建文件)瓦片格式 ==========
gdal.Translate("output_tiled.tif","input.tif",creationOptions=["TILED=YES", "BLOCKXSIZE=128", "BLOCKYSIZE=128", "COMPRESS=LZW"]
)
http://www.jsqmd.com/news/758182/

相关文章:

  • 保姆级教程:用STM32CubeMX HAL库驱动SG90舵机(附完整代码和接线图)
  • 语聊社交变现核武!盲盒V6MAX源码系统小程序解析,海外盲盒源码与国际版盲盒源码赋能盲盒定制开发,颠覆盲盒app源码程序 - 壹软科技
  • 亨得利维修保养服务电话400-901-0695|官方直营门店地址与2024最新维修数据全公开 - 时光修表匠
  • Hermes Skill 系统架构选型:TypeScript 与 Markdown 双配置方案深度解析
  • 2026年5月积家官方售后网点深度评测与避坑指南(含迁址与新开门店)亲测实录 - 亨得利官方服务中心
  • 张琦、李一舟 变身 AI 老师 底层逻辑 + 完整变现打法
  • NXP MR-CANHUBK344评估板:多CAN-FD接口与安全设计解析
  • 青岛鼎力信达起重设备租赁:青岛吊车出租企业哪家好 - LYL仔仔
  • Taotoken模型广场在项目初期技术选型中的辅助作用观察
  • 南昌拓拆建筑拆除工程:南昌性价比高的微挖机拆除哪家好 - LYL仔仔
  • 3DS自制软件终极指南:Universal-Updater一键安装与更新解决方案
  • 沉浸式商业重构!盲盒V6MAX源码系统小程序,海外与国际版盲盒源码赋能盲盒定制开发,颠覆盲盒app源码程序及盲盒源码 - 壹软科技
  • 嵌入式开发中的蓝牙与WiFi技术实践:核心技能要求、开发指南与面试准备
  • 2026年5月万国官方售后网点 深度评测 与 避坑指南 ——基于 亲身经历 与多方验证的客观解析 - 亨得利官方服务中心
  • 如何高效管理《泰坦之旅》装备:TQVaultAE背包扩展工具完整指南
  • 2026年5月爱彼官方售后网点实测报告:避坑指南与现场记录(含迁址/新开) - 亨得利官方服务中心
  • 贵州蓝马会务会展服务:贵州舞台设计电话 - LYL仔仔
  • 西安谷恩机械科技:靠谱酿醋生产设备实力厂家解析 - 奔跑123
  • Vosk 离线语音唤醒(纯前端)
  • WeChatExporter:免费开源的微信聊天记录完整备份终极方案
  • 亨得利维修保养服务电话400-901-0695:腕表修复的“六城生命线”——为什么你的百达翡丽宁愿跨越3000公里邮寄,也绝不能在本地小店开盖? - 时光修表匠
  • 4.29作业
  • Pearcleaner:你的macOS数字管家,彻底告别应用残留烦恼
  • Android蓝牙与WiFi技术深度解析及应用指南
  • 亨得利维修保养服务电话400-901-0695:高端腕表维修的五大认知误区——只有北京、上海、深圳、南京、无锡、杭州六城直营门店才能真正避开 - 时光修表匠
  • 想让AI搜到你?自建内容站才是长久办法
  • 绍兴昱泽吊装:绍兴吊车租赁电话多少 - LYL仔仔
  • STM32 PID温控实战指南:如何实现±0.5°C精度的智能温度控制
  • 墨观 油墨行业周报 第19周
  • 终极指南:Visual C++ Redistributable AIO 安装失败完全修复方案