问题描述
我正在将 tif 文件转换为 csv 文件。这是我的代码。请注意,“copy”命令是一个 Stata 命令,但您可以从我在代码中提供的链接轻松下载 zip 文件,很可能带有请求。
copy "https://biogeo.ucdavis.edu/data/worldclim/v2.1/base/wc2.1_5m_prec.zip" ///
"wc2.1_5m_prec.zip",replace
unzipfile wc2.1_5m_prec.zip,replace
erase readme.txt
蟒蛇:
#Importing relevant commands
from osgeo import gdal
import pandas as pd,numpy as np,os,glob
#Loops over these to save space
for file in glob.glob("*.tif"):
ds = gdal.Open(file)
# TIFF to CSV
xyz = gdal.Translate(file+".xyz",ds)
xyz = None
df = pd.read_csv(file+".xyz",sep = " ",header = None)
df.columns = ["x","y","value"]
df.to_csv(file+".csv",index = False)
files_in_dir = glob.iglob('*.xyz')
del df
for _file in files_in_dir:
print(_file) # just to be sure,you kNow how it is...
os.remove(_file)
os.remove(file)
end
我想将第一个文件 (wc2.1_5m_prec_01.tif
) 转换为 xyz
文件,然后将此 xyz
文件转换为 csv
文件。但是,在继续下一个文件 (wc2.1_5m_prec_02.tif
) 之前,我想删除 原始 tif
文件,因为它已经过时了。我想我会删除它存储的数据框。即使我这样做了,除非我完全离开 Stata 并像这样删除它,否则文件不会删除。我在这里缺少什么吗?请注意,我可以删除 xyz 文件就好了。这里的 tif 文件似乎有问题。
解决方法
答案是 del ds
,如上所述,因为这是键控的数据集变量。