将ascii windspeed文件转换为栅格


11

我一直在尝试将windspeed文件转换为栅格,但没有成功。我在一个Arcgis论坛中进行了讨论。这涉及用空格替换分号并添加标题。

我希望将原始的.asc文件之一与我“清理”的.csv版本一起使用。不幸的是,我不复制和粘贴文本就看不到该怎么做。原始.asc文件的第一行是:

Conversion of speed45i.dat   Wind m/s  Wind Speed @ 45m N. Ire 
(100,  499); 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 

我将其更改为:

ncols 700
nrows 1300
x||corner 0
y||corner 0
cellsize 1000                                                                                               "
"( 0 1299) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;"

当我使用光栅转换转换格式插件时,出现错误消息:

该过程无法启动。丢失了所调用的程序,或者您可能没有足够的权限来调用该程序。

任何建议表示感谢。


如果您想要有关特定数据集的更多具体帮助,则可以始终尝试在DropBox中放置示例并共享链接。
RyanKDalton 2013年

Answers:


14

我非常了解这些数据。它们是臭名昭著的NOABL风速数据。但是,在将它们转换为ASCII栅格方面,您也走在正确的道路上。我为他们创建的标头(很多年前)如下:

ncols 700
nrows 1300
xllcorner 0
yllcorner 0
cellsize 1000
nodata_value -999
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

似乎您在标题中的xll和yll(代表“左下”)中使用了管道符号('|')而不是'l'。在每行的开头也要丢失括号中的数字,反之亦然。只需使其空间分隔即可。方括号中的数字(我确定您已解决)表示数据行的100公里起始坐标(分辨率为1km-因此每组方括号后面都有100个值)。这些数字不仅在ESRI ASCII栅格中是多余的,而且还会“破坏”它。

注意:
请谨慎使用这些数据。它们非常古老,是从遍布英国各地的少量气象站进行插值的。在不考虑表面粗糙度和影响局部风速的大多数其他因素的情况下对它们进行插值。可以作为一个粗略的指导,但是由于在许多地方过高估计风速而臭名昭著。例如,我经常发现NOABL 45m的风速通常可以与风速计在80m高度处测得的风速相媲美,但是再一次,由于NOABL没有使用北岛的任何数据,因此我发现NOABL严重低估了北岛的风速。设得兰群岛。在NOABL数据中,在少数几个相遇站点(我认为只有10个)中,最北的是Wick。

但是,除所有警告外,我发现当明智地使用时,理解过高的估计(以及大量的经验),我发现使用这些数据计算出的风电场发电量的结果可与使用更多最新数据得出的结果相媲美。严格收集数据。但是,不要把它当作福音,因为每个地点都不相同,实际风速受粗糙度,开放范围,地形等因素的影响很大。

如果风速对您的项目至关重要,则一定要以风速为起点,但不要将农场押在此上!

编辑
要删除括号中的数字,您可以编写Python脚本来解析数据,或者一种简单的替代方法是:

  • 在文本编辑器中打开文件,删除第一行(“ 速度转换... ”),将所有空格全部替换为空,然后使用扩展名'.csv'重新保存
  • 接下来,在电子表格程序包中打开,将分隔符设置为分号(在Excel和OpenOffice Calc中,打开文件时将询问您)。现在,选择包含所有带括号的数字的第一列,并将其删除。
  • 在最开始处插入六行,并添加标题(“ ncols 700”等)。
  • 最后,使用扩展名“ .asc”保存,但请确保分隔符是保存时的空间。

西尔维斯特,非常感谢。删除括号中的数字时遇到问题。前几行应该显示如下吗?行1300 xllcorner 0 yllcorner 0单元大小1000 nodata_value -999 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
tedwalsh 2013年

@tedwalsh:差不多了。我在上面编辑了答案,以将第一行的大部分内容添加到“代码”示例中。我还添加了有关删除支架的简单说明。如果您仍在挣扎,请给我发送您的电子邮件地址PM(在我网站的“联系方式”部分中找到),我会为您解决一些问题。
MappaGnosis

1
NOABL数据集在其时间上非常整洁,但那是差不多20年前的时间了。我记得当时也正在研究/使用它。现在最好不要在典型的风力涡轮机高度上用于实际工作。
13年

11

您的ascii文件中缺少NoData值,并且您有x || 和y || 而不是xll和yll。我假设您的NoData是-999。

尝试这个:

NCOLS 700
NROWS 1300
XLLCORNER 0
YLLCORNER 0
CELLSIZE 1000
NODATA_VALUE -999

在文本编辑器中打开的ascii应该如下所示:

NCOLS 700
NROWS 1300
XLLCORNER 0
YLLCORNER 0
CELLSIZE 1000
NODATA_VALUE -999
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

2
就格式而言,这看起来是正确的,但是我认为将零与NoData值合并可能是一个重大错误。需要零才能指示风速为零,而NoData值将指示缺少有关风速的信息。
whuber

我假设NoData为0,因为@tedwalsh没有提供此信息。
加戈-希尔瓦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.