【问题标题】:Open large geotif file打开大geotiff文件
【发布时间】:2021-05-12 08:38:17
【问题描述】:

我有非常大的 geotif 文件。但我无法在 colabs 中打开它。 RAM 是不够的。所以我一直运行它开始崩溃。有人能帮我解决这个问题吗?

import numpy as np
from rasterio.plot import show
import os
import matplotlib.pyplot as plt
%matplotlib inline

# Data dir
data_dir = "data"

# Filepath
fp = os.path.join(data_dir, "/content/drive/MyDrive/LINEasia/test2.tif")

# Open the raster file in read mode
raster = rasterio.open(fp)

# Read NIR channel (channel number 4)
nir = raster.read(1)

# Calculate some stats to check the data
#print(red.mean())
print(nir.mean())
print(type(nir))

# Visualize
show(nir, cmap='terrain')
}```

uncompressed file size around 3GB. 

【问题讨论】:

  • 嗯,可能“最简单”的方法是添加一些 RAM?您拥有的 RAM 大小是多少?你能退出一些其他程序来释放更多的内存空间吗?

标签: python raster ram geopandas geotiff


【解决方案1】:

您可以处理更小的部分,更像是窗口。下面的代码从 (0, 0) 点读取 400x400 窗口。

with rasterio.open('/content/drive/MyDrive/LINEasia/test2.tif') as f:
    w = f.read(1, window=Window(0, 0, 400, 400))

【讨论】:

  • 是的,我们可以,但问题是它是一张地图。如果我们得到那部分,则某些区域可能会丢失。这就是共鸣
  • 如果您尝试从地图评估某些内容(例如 nir.mean()),您可以遍历多个窗口,这些窗口将覆盖所有地图,每个窗口都进行部分计算。稍后你可以用另一个计算来总结。如果您尝试将其可视化,则不能直接加载所有地图而不卸载某些部分或不进行压缩
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
相关资源
最近更新 更多