Konwertowanie plików prędkości wiatru ASCII na rastry

11

Próbowałem przekonwertować pliki prędkości wiatru na rastry bez powodzenia. Zostało to omówione na forum Arcgis, które śledziłem. Polegało to na zastąpieniu średników spacjami i dodaniu nagłówka.

Miałem nadzieję, że dołączę jeden z oryginalnych plików .asc wraz z wersją .csv, którą „wyczyściłem”. Niestety nie widzę, jak to zrobić bez kopiowania i wklejania tekstu. Pierwszy wiersz oryginalnego pliku .asc to:

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; 

Zmieniłem to na:

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

Kiedy korzystam z wtyczki do konwersji formatu rastrowego, dostaję komunikat o błędzie:

Proces nie rozpoczął się. Brakuje wywoływanego programu lub masz niewystarczające uprawnienia do wywołania programu.

Wszelkie sugestie z wdzięcznością otrzymane.

tedwalsh
źródło
zawsze możesz spróbować umieścić przykład w DropBox i udostępnić link, jeśli potrzebujesz bardziej szczegółowej pomocy z danym zestawem danych.
RyanKDalton

Odpowiedzi:

14

Znam te dane bardzo dobrze. Są to nieco znane dane o prędkości wiatru NOABL. Jesteś również na dobrej drodze, aby przekonwertować je na raster ASCII. Nagłówek, który dla nich stworzyłem (wiele lat temu) był następujący:

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 

Wygląda na to, że użyłeś symboli potoku („|”) zamiast „l” dla xll i yll w nagłówku (co oznacza „lewy dolny”). Utrac również liczby w nawiasach na początku każdego wiersza, a także odwrócone przecinki. Po prostu ogranicz przestrzeń. Liczby w nawiasach (jak jestem pewien, że już to wypracowałeś) oznaczają 100-kilometrowe współrzędne początkowe rzędu danych (o rozdzielczości 1 km - więc po każdym zestawie nawiasów jest sto wartości). Liczby te są nie tylko zbędne w rastrze ESRI ASCII, ale również je „zepsują”.

PRZESTROGA:
Używaj tych danych ostrożnie. Są bardzo stare i zostały interpolowane z niewielkiej garstki stacji meteorologicznych rozmieszczonych w całej Wielkiej Brytanii. Interpolowano je również bez uwzględnienia chropowatości powierzchni i większości innych czynników wpływających na prędkość wiatru na poziomie lokalnym. Są OK jako przybliżony przewodnik, ale są znane z powodu przeszacowywania prędkości wiatru w wielu lokalizacjach. Na przykład regularnie uważam, że prędkość wiatru NOABL 45 m jest często porównywalna z prędkościami wiatru mierzonymi przez anemometr na wysokości 80 m, ale z drugiej strony, ponieważ NOABL nie używał żadnych danych z Wysp Północnych, zauważyłem, że NOABL żałośnie nie docenia prędkości wiatru w Szetlandy Najdalej na północ od jednej z niewielu spotkanych stacji (wydaje mi się, że tylko 10!) W danych NOABL był Wick.

Pomijając wszystkie ostrzeżenia, odkryłem, że przy rozsądnym stosowaniu, zrozumieniu przeszacowania (i odrobiny doświadczenia) znalazłem wyniki obliczeń wydajności farm wiatrowych przy użyciu tych danych, które są porównywalne z obliczeniami przy użyciu bardziej aktualnych i rygorystycznie gromadzone dane. Jednak nie bierz tego za ewangelię, ponieważ każde miejsce jest inne, a faktyczna prędkość wiatru jest w dużym stopniu zależna od szorstkości, otwartego zasięgu, topografii, aby wymienić tylko kilka czynników.

Jeśli prędkość wiatru ma kluczowe znaczenie dla twojego projektu, wykorzystaj to jako punkt wyjścia, ale nie stawiaj na nią farmy!

EDYCJA
Aby usunąć liczby w nawiasach, możesz napisać skrypt w Pythonie, aby przeanalizować dane lub łatwą alternatywą jest:

  • otwórz plik w edytorze tekstu, usuń pierwszy wiersz („ Konwersja prędkości ... ”), globalnie zastąp wszystkie spacje niczym i ponownie zapisz z rozszerzeniem „.csv”
  • Następnie otwórz w pakiecie arkusza kalkulacyjnego, ustawiając separator jako średnik (w Excelu i OpenOffice Calc pojawi się monit o otwarcie pliku). Teraz wybierz pierwszą kolumnę zawierającą wszystkie liczby w nawiasach kwadratowych i usuń ją.
  • Wstaw sześć wierszy na samym początku i dodaj nagłówek („ncols 700” itp.).
  • Na koniec zapisz z rozszerzeniem „.asc”, ale upewnij się, że Twój ogranicznik zajmuje mało miejsca.
MappaGnosis
źródło
Sylvester, wielkie dzięki. Problem z usuwaniem liczb w nawiasach. Czy kilka pierwszych wierszy powinno wyglądać jak poniżej? 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
tedwalsh
@tedwalsh: to właściwie wszystko. Zredagowałem moją odpowiedź powyżej, aby dodać większość pierwszego wiersza do próbki „kodu”. Dodałem także instrukcje dotyczące łatwego usuwania wsporników. Jeśli nadal masz problemy, wyślij mi wiadomość e-mail z adresem e-mail (znajdź sekcję Kontakty na mojej stronie), a ja coś dla ciebie rozwiążę.
MappaGnosis,
1
Zestaw danych NOABL był jak na razie dość schludny, ale ten czas upłynął prawie 20 lat temu. Pamiętam też, jak wtedy nad tym pracowałem. Najlepiej nie używać go teraz do prawdziwej pracy na typowych wysokościach turbin wiatrowych.
scruss
11

W pliku ascii brakuje wartości NoData i masz x || i y || zamiast xll i yll. Zakładam, że twoje NoData to -999.

Spróbuj tego:

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

Twoja ascii otwarta w edytorze tekstu powinna wyglądać następująco:

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
źródło
2
Pod względem formatu wygląda to poprawnie, ale myślę, że pomylenie zera z wartością NoData może być poważnym błędem. Zero jest potrzebne do wskazania zerowej prędkości wiatru, podczas gdy wartość NoData wskazywałaby na brak informacji o prędkości wiatru.
whuber
Zakładałem, że NoData wynosi 0, ponieważ @tedwalsh nie podał tej informacji.
Gago-Silva