更改使用 "gdal_translate -of XYZ" 创建的 csv 中的默认分隔符
Changing the default separator in csv created with "gdal_translate -of XYZ"
我有 100 个 .tiff 文件,并使用以下命令:
gdal_translate -of XYZ MCD13A2.t201624.006.global.1km_NDVI.O0.tif MCD13A2.t201624.006.global.1km_NDVI.O0.csv
这会生成一个 .csv 文件,但它是 space 分隔的,而不是逗号分隔的。
有没有人知道为什么会这样,或者有什么解决方案可以将这个 space 分隔的文件转换为逗号分隔的 .csv?
您可以简单地使用 CSV 模块:
import csv
with open(ur_infile) as fin, open(ur_outfile, 'w') as fout:
o=csv.writer(fout)
for line in fin:
o.writerow(line.split())
它会自动读取带有 space 分隔符的 CSV 并使用逗号(默认)写入。
此外,您可以像这样指定分隔符:
csv.reader(csvfile, delimiter=' ')
csv.writer(csvfile, delimiter=',')
一位google search揭示了以下方法:
完成 xyz 转换后,您可以使用命令行实用程序 sed
(假设您使用 linux
):
sed 's/ /,/g' in.xyz > out.csv
由于您正在创建 100 个 csv 文件,您可能在 for 循环中使用了 gdal_translate
,因此您可以在 gdal_translate
之后添加该附加行,您甚至不会注意到任何东西!
不过,如果你想使用@iFlo 的方法而不用担心内存不足的问题,你可以看看this thread。
我有 100 个 .tiff 文件,并使用以下命令:
gdal_translate -of XYZ MCD13A2.t201624.006.global.1km_NDVI.O0.tif MCD13A2.t201624.006.global.1km_NDVI.O0.csv
这会生成一个 .csv 文件,但它是 space 分隔的,而不是逗号分隔的。
有没有人知道为什么会这样,或者有什么解决方案可以将这个 space 分隔的文件转换为逗号分隔的 .csv?
您可以简单地使用 CSV 模块:
import csv
with open(ur_infile) as fin, open(ur_outfile, 'w') as fout:
o=csv.writer(fout)
for line in fin:
o.writerow(line.split())
它会自动读取带有 space 分隔符的 CSV 并使用逗号(默认)写入。
此外,您可以像这样指定分隔符:
csv.reader(csvfile, delimiter=' ')
csv.writer(csvfile, delimiter=',')
一位google search揭示了以下方法:
完成 xyz 转换后,您可以使用命令行实用程序 sed
(假设您使用 linux
):
sed 's/ /,/g' in.xyz > out.csv
由于您正在创建 100 个 csv 文件,您可能在 for 循环中使用了 gdal_translate
,因此您可以在 gdal_translate
之后添加该附加行,您甚至不会注意到任何东西!
不过,如果你想使用@iFlo 的方法而不用担心内存不足的问题,你可以看看this thread。