Преобразование файлов ASCII WindSpeed ​​в растры

11

Я пытался преобразовать файлы скорости ветра в растры, но безуспешно. Это обсуждалось на форуме 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 ;"

Когда я использую плагин растрового перевода, я получаю сообщение об ошибке:

Процесс не запустился. Либо вызываемая программа отсутствует, либо у вас недостаточно прав для ее запуска.

Любые предложения с благодарностью принимаются.

tedwalsh
источник
вы всегда можете попробовать поместить пример в DropBox и поделиться ссылкой, если вам нужна более конкретная помощь по конкретному набору данных.
RyanKDalton

Ответы:

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 

Похоже, что вы использовали символы канала ('|') вместо 'l' для xll и yll в заголовке (которые обозначают 'левый нижний'). Также теряйте числа в скобках в начале каждой строки и кавычки тоже. Просто сделайте это пробелом. Числа в скобках (как я уверен, вы уже определили) обозначают 100-километровые начальные координаты строки данных (то есть с разрешением 1 км - поэтому после каждого набора скобок есть сто значений). Эти числа не только избыточны в растре ESRI ASCII, но и «сломают» его.

ПРЕДУПРЕЖДЕНИЕ.
Используйте эти данные с осторожностью. Они очень старые и были получены из крошечной горстки метеорологических станций, широко распространенных по всей Великобритании. Они также были интерполированы без учета шероховатости поверхности и большинства других факторов, которые влияют на скорость ветра на местном уровне. Они хороши как грубый ориентир, но печально известны переоценкой скорости ветра во многих местах. Например, я регулярно нахожу, что скорость ветра 45 м NOABL часто сопоставима со скоростью ветра, измеренной анемометром на высоте 80 м, но опять же, поскольку NOABL не использовал никаких данных с Северных островов, я обнаружил, что NOABL ужасно недооценивает скорости ветра в Шетландские. Самым дальним к северу от любой из немногих станций метро (думаю, всего 10) в данных NOABL был Вик.

Однако, за исключением всех предупреждений, я обнаружил, что при разумном использовании, понимая завышенную оценку (и с небольшим опытом), я обнаружил, что результаты расчетов урожайности ветряных электростанций с использованием этих данных сопоставимы с расчетами с использованием более современных и строго собранные данные. Тем не менее, не принимайте это как евангелие, потому что все места разные, и фактическая скорость ветра сильно зависит от шероховатости, открытой досягаемости, топографии, чтобы назвать несколько факторов.

Если скорость ветра важна для вашего проекта, во что бы то ни стало, используйте это как отправную точку, но не ставьте ферму на это!

РЕДАКТИРОВАТЬ
Чтобы удалить числа в скобках, вы можете написать скрипт Python для анализа данных или простой альтернативой является:

  • откройте файл в текстовом редакторе, удалите первую строку (« Преобразование скорости ... »), глобально замените все пробелы ничем и повторно сохраните с расширением «.csv»
  • Затем откройте в пакете электронных таблиц, задав разделитель точкой с запятой (в Excel и OpenOffice Calc вам будет предложено открыть файл). Теперь выберите первый столбец, который содержит все числа в скобках, и удалите его.
  • Вставьте шесть строк в самом начале и добавьте свой заголовок («ncols 700» и т. Д.).
  • Наконец, сохраните с расширением .asc, но убедитесь, что ваш разделитель является пробелом при сохранении.
MappaGnosis
источник
Сильвестр, большое спасибо. Возникли проблемы с удалением чисел в скобках. Должны ли первые несколько строк появиться, как показано ниже? nrows 1300 xllcorner 0 yllcorner 0 cellize 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
Тедвальш
@tedwalsh: вот и все. Я отредактировал свой ответ выше, чтобы добавить большую часть первой строки в пример кода. Я также добавил инструкции по снятию скобок простым способом. Если вы все еще не можете справиться, отправьте мне сообщение с вашим адресом электронной почты (найдите раздел «Контакты» на моем веб-сайте), и я кое-что для вас выясню.
MappaGnosis
1
Набор данных NOABL был довольно аккуратным для своего времени, но это было почти 20 лет назад. Я помню, что работал с ним и тогда тоже. Лучше не использовать для реальной работы на типичных высотах ветряных турбин сейчас.
scruss
11

В файле ascii отсутствует значение NoData, и у вас есть x || и у || вместо xll и yll. Я предполагаю, что ваш NoData -999.

попробуй это:

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

Ваш ascii open в текстовом редакторе должен выглядеть так:

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 не дал эту информацию.
Гаго-Сильва