Перетворення файлів ascii windspeed в растри


11

Я без успіху намагався конвертувати файли з швидкою швидкістю в растрові. Це обговорювалося на форумі Аркгіса, який я дотримувався. Це стосувалося заміни напівколонок пробілами та додавання заголовка.

Я сподівався включити один із оригінальних файлів .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

Відповіді:


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, але й "розбивають" його.

CAVEAT:
Використовуйте ці дані обережно. Вони дуже старі і були інтерпольовані з крихітної жменьки метеорологічних станцій, широко розповсюджених по всій Великобританії. Вони також були інтерпольовані, не враховуючи шорсткості поверхні та більшості інших факторів, що впливають на швидкість вітру на місцевому рівні. Вони в порядку як орієнтовний настанов, але відомі тим, що в багатьох місцях оцінюють швидкість руху вітру. Наприклад, я регулярно вважаю, що швидкість вітру NOABL 45 м часто порівнюється зі швидкістю вітру, виміряною анемометром на висотах 80 м, але знову ж таки, оскільки NOABL не використовував жодних даних з Північних островів, я виявив, що NOABL надзвичайно недооцінює швидкість вітру в Шетланд. Найдальший північ від будь-якої з кількох зустрічених станцій (я думаю лише 10!) У даних NOABL був Вік.

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

Якщо швидкість руху вітру є критичною для вашого проекту, використовуйте це як вихідну точку, але не ставте на це ферму!

EDIT
Щоб видалити числа в дужках, ви можете написати скрипт Python для розбору даних або легкою альтернативою є:

  • відкрийте файл в текстовому редакторі, видаліть перший рядок (" Перетворення швидкості ... "), глобально замініть всі пробіли нічим і повторно збережіть з розширенням '.csv'
  • Далі відкрийте в пакеті електронних таблиць, встановивши роздільник як крапку з комою (в Excel та OpenOffice Calc вам буде запропоновано, коли ви відкриєте файл). Тепер виберіть перший стовпець, який містить усі скорені цифри, і видаліть його.
  • Вставте шість рядків на самому початку та додайте заголовок ("ncols 700" тощо).
  • Нарешті, збережіть за допомогою розширення ".asc", але переконайтеся, що роздільник обмежений простір.

Сильвестр, велике спасибі Проблема з видаленням цифр у дужках. Чи повинні перші кілька рядків відображатися як нижче? nrows 1300 xllcorner 0 yllcorner 0 cellize 1000 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 0.0 0.0 0.0 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, відкрита в текстовому редакторі, має виглядати так:

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 не дав цієї інформації.
Гаго-Сільва
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.