Mengubah file kecepatan angin ascii menjadi raster

11

Saya telah mencoba untuk mengkonversi file kecepatan angin ke raster tanpa hasil. Itu dibahas dalam forum Arcgis yang saya ikuti. Ini termasuk mengganti semi-titik dua dengan spasi dan menambahkan header.

Saya berharap untuk memasukkan salah satu file .asc asli bersama dengan versi .csv yang saya 'bersihkan'. Sayangnya saya tidak bisa melihat bagaimana melakukan ini tanpa menyalin dan menempelkan teks. Baris pertama dari file .asc asli adalah:

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; 

Saya mengubah ini menjadi:

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 ;"

Ketika saya menggunakan plug-in format terjemahan raster translate, saya menerima pesan kesalahan:

Proses gagal memulai. Program yang dipanggil tidak ada, atau Anda mungkin memiliki izin yang tidak memadai untuk menjalankan program.

Semua saran diterima dengan rasa terima kasih.

tedwalsh
sumber
Anda selalu dapat mencoba memberikan contoh di DropBox dan membagikan tautan, jika Anda ingin bantuan yang lebih spesifik dengan dataset tertentu.
RyanKDalton

Jawaban:

14

Saya tahu data ini dengan sangat baik. Mereka adalah data kecepatan angin NOABL yang sedikit terkenal. Anda juga berada di jalur yang benar dalam mengubahnya menjadi raster ASCII. Header yang saya buat untuk mereka (bertahun-tahun lalu) adalah sebagai berikut:

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 

Sepertinya Anda telah menggunakan simbol pipa ('|') alih-alih 'l' untuk xll dan yll di header (yang berarti 'kiri bawah'). Juga kehilangan angka dalam tanda kurung di awal setiap baris dan koma terbalik juga. Jadikan ruang terbatas. Angka-angka dalam tanda kurung (karena saya yakin Anda sudah berhasil) menunjukkan koordinat awal 100 kilometer dari baris data (yang pada resolusi 1 km - jadi ada seratus nilai setelah setiap set tanda kurung). Angka-angka ini tidak hanya berlebihan dalam raster ESRI ASCII tetapi juga akan 'memecahnya'.

CAVEAT:
Gunakan data ini dengan hati-hati. Mereka sangat tua dan diinterpolasi dari segelintir stasiun meteorologi yang tersebar luas di Inggris. Mereka juga diinterpolasi tanpa memperhitungkan kekasaran permukaan dan sebagian besar faktor lain yang mempengaruhi kecepatan angin di tingkat lokal. Mereka baik-baik saja sebagai panduan kasar tetapi terkenal karena memperkirakan kecepatan angin di banyak lokasi. Sebagai contoh, saya secara teratur menemukan kecepatan angin NOABL 45m sering sebanding dengan kecepatan angin yang diukur dengan anemometer pada ketinggian 80m, tetapi sekali lagi, karena NOABL tidak menggunakan data apa pun dari Kepulauan Utara, saya telah menemukan NOABL untuk sangat meremehkan kecepatan angin di Shetland. Bagian utara terjauh dari beberapa stasiun yang bertemu (hanya 10 saya kira!) Dalam data NOABL adalah Wick.

Di samping semua peringatan itu, saya telah menemukan bahwa ketika digunakan secara bijak, memahami perkiraan yang terlalu tinggi (dan dengan sedikit pengalaman), saya telah menemukan hasil perhitungan hasil pertanian-angin menggunakan data ini untuk dibandingkan dengan perhitungan menggunakan lebih banyak informasi terkini dan mengumpulkan data dengan ketat. Namun, jangan menganggap itu sebagai Injil karena setiap situs berbeda dan kecepatan angin aktual sangat dipengaruhi oleh kekasaran, jangkauan terbuka, topografi untuk menyebutkan beberapa faktor.

Jika kecepatan angin sangat penting untuk proyek Anda, tentu saja gunakan ini sebagai titik awal tetapi jangan bertaruh pertanian di atasnya!

EDIT
Untuk menghapus angka dalam tanda kurung Anda bisa menulis skrip Python untuk mengurai data atau alternatif mudah adalah dengan:

  • buka file dalam editor teks, hapus baris pertama (" Konversi kecepatan ... "), ganti semua ruang secara global dengan apa pun dan simpan kembali dengan ekstensi '.csv'
  • Selanjutnya buka dalam paket spreadsheet mengatur pembatas menjadi titik koma (di Excel dan OpenOffice Calc Anda akan ditanya saat Anda membuka file). Sekarang pilih kolom pertama yang berisi semua angka kurung, dan hapus.
  • Masukkan enam baris di bagian paling awal dan tambahkan header Anda ("ncols 700" dll).
  • Akhirnya simpan dengan ekstensi '.asc' tetapi pastikan pembatas Anda adalah ruang untuk menyimpan.
MappaGnosis
sumber
Sylvester, Terima kasih banyak. Mengalami masalah menghapus angka dalam tanda kurung. Haruskah beberapa baris pertama muncul seperti di bawah ini? 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
tedwalsh
@tedwalsh: cukup banyak. Saya mengedit jawaban saya di atas untuk menambahkan sebagian besar baris pertama ke sampel 'kode'. Saya juga menambahkan instruksi tentang cara melepas tanda kurung dengan mudah. Jika Anda masih kesulitan, kirimkan saya PM dengan alamat email Anda (temukan bagian Kontak di situs web saya) dan saya akan menyelesaikannya untuk Anda.
MappaGnosis
1
Kumpulan data NOABL cukup rapi untuk waktunya, tetapi waktu itu hampir 20 tahun yang lalu. Saya ingat bekerja pada / dengan itu juga. Terbaik tidak digunakan untuk pekerjaan nyata di ketinggian turbin angin khas sekarang.
scruss
11

Nilai NoData tidak ada dalam file ascii Anda dan Anda memiliki x || dan y || bukannya xll dan yll. Saya berasumsi bahwa NoData Anda adalah -999.

coba ini:

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

Ascii Anda yang terbuka di editor teks akan terlihat seperti ini:

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 
Gago-Silva
sumber
2
Dalam hal format ini terlihat benar, tapi saya pikir mungkin kesalahan yang signifikan untuk mengonfigurasikan nol dengan nilai NoData. Nol diperlukan untuk menunjukkan kecepatan angin nol, sedangkan nilai NoData akan menunjukkan tidak adanya informasi tentang kecepatan angin.
whuber
Saya berasumsi NoData adalah 0, karena @tedwalsh tidak memberikan info ini.
Gago-Silva