Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 11

Podobne dokumenty
Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 14

Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 08

Ćwiczenia 05. Sylwester Arabas (ćwiczenia do wykładu prof. Szymona Malinowskiego) 9. listopada 2010 r.

Prawdopodobieństwo i statystyka

Statystyka i eksploracja danych

Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 05

System operacyjny Linux

- wszystkie elementy - wszystkie elementy

ALHE Z11 Jarosław Arabas wykład 11

Zad. 3: Układ równań liniowych

Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 09 i 10

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Elementy metod numerycznych - zajęcia 9

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Ekonometria. Modele regresji wielorakiej - dobór zmiennych, szacowanie. Paweł Cibis pawel@cibis.pl. 1 kwietnia 2007

ANALIZA DANYCH W STATA 8.0

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Stosowana Analiza Regresji

Metody numeryczne Laboratorium 2

Podstawy Programowania C++

Pliki. Operacje na plikach w Pascalu

Układ równań liniowych

Przetwarzanie sygnałów

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Języki formalne i techniki translacji

Pakiety Matematyczne - R Zestaw 2.

Architektura komputerów

Interpolacja i aproksymacja, pojęcie modelu regresji

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Język PL/SQL Procedury i funkcje składowane

Komputerowa analiza danych doświadczalnych

Komputerowa Analiza Danych Doświadczalnych

Celem tych ćwiczeń jest zapoznanie się z klasyfikacją za pomocą sieci neuronowych.

Interpolacja, aproksymacja całkowanie. Interpolacja Krzywa przechodzi przez punkty kontrolne

Język programowania PASCAL

PRZEWODNIK PO PRZEDMIOCIE

Wstęp do programowania 2

Modelowanie numeryczne w fizyce atmosfery Ćwiczenia 3

Program na zaliczenie: Odejmowanie widm

Język C, tablice i funkcje (laboratorium)

po ostatnim dopisaniu na standardowe wyjście (cout) powinien zostać wyprowadzony komunikat "Skonczylem";

Procedury i funkcje składowane

10. Redukcja wymiaru - metoda PCA

Wstęp do Programowania Lista 1

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

Narzędzia informatyczne w językoznawstwie

Dzisiejszy wykład. Programowanie w Perlu. Usuwanie elementów z początku tablicy. Dodawanie elementów do początku tablic

Korelacja, autokorelacja, kowariancja, trendy. Korelacja określa stopień asocjacji między zmiennymi

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

12DRAP - parametry rozkładów wielowymiarowych

Laboratorium nr 5: Mnożenie wektorów i macierzy

Ćw. 2: Analiza błędów i niepewności pomiarowych

Ważne rozkłady i twierdzenia c.d.

Elementy statystyki wielowymiarowej

Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 01

Projekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną.

1 Wprowadzenie do algorytmiki

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Proste metody przetwarzania obrazu

Metody i analiza danych

Środowisko programisty Zestaw 7

Obliczenie pola wieloboku na podstawie współrzędnych wierzchołków

author: Andrzej Dudek

7. Szybka transformata Fouriera fft

VBA praca z makrami w Excelu: piszemy kod! Ulepszamy program! 0. Parę uwag o samym edytorze

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Dokumentacja. Kalibracja parametrów modelu Hestona za rozszerzonego filtra Kalmana. Mikołaj Bińkowski Wiktor Gromniak

Wykład 6 Centralne Twierdzenie Graniczne. Rozkłady wielowymiarowe

Rozwiązywanie równań różniczkowych cząstkowych metodą elementów skończonych - wprowadzenie

Pytania sprawdzające wiedzę z programowania C++

Strategie ewolucyjne (ang. evolu4on strategies)

Bash - wprowadzenie. Bash - wprowadzenie 1/39

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Wykład Ćwiczenia Laboratorium Projekt Seminarium Liczba godzin zajęć zorganizowanych w Uczelni 30 30

Laboratorium Przetwarzania Sygnałów

Laboratorium Cyfrowego Przetwarzania Obrazów

W nowej wersji Aplikacji wprowadzono udoskonalenia w funkcjonowaniu legendy.

Jerzy Nawrocki, Wprowadzenie do informatyki

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Procesy stochastyczne

Ćwiczenie 1. Wprowadzenie do programu Octave

Metoda najmniejszych kwadratów

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

Metody Przetwarzania Danych Meteorologicznych

Obliczenia w programie MATLAB

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Wstęp do informatyki Ćwiczenia. Piotr Fulmański

Wykład 4 Wybór najlepszej procedury. Estymacja parametrów re

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Dokumentacja Końcowa

Analiza składowych głównych. Wprowadzenie

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Transkrypt:

Danych Meteorologicznych Sylwester Arabas (ćwiczenia do wykładu dra Krzysztofa Markowicza) Instytut Geofizyki, Wydział Fizyki Uniwersytetu Warszawskiego 14. stycznia 2009 r.

Zadanie 10.2D odpowiedzi na pytania i przykłady symulacji dla różnej liczby punktów pomiarowych > zad13 2D, frac=.005 wymiary macierzy to: Q : n x n x R : n o n o H : n o n x K : n x n o rozmiar stały, wartości stałe rozmiar zmienny, wartości: σ 2 na diagonali rozmiar zmienny rozmiar zmienny rozmiary zmienne bo n o = n o(t) > zad13 2D, frac=.05 > zad13 2D, frac=.5

Zadanie 12.1 : polecenie Znalezienie rozkładu pola anomalii wybranego parametru meteorologicznego na empiryczne funkcje ortogonalne (na przykładzie średnich miesięcznych z reanalizy NASA MERRA 1 - zestawy danych tavgm 2d slv Nx,szkic kodu zakłada umieszczenie plików z conajmniej kilkunastu miesięcy w katalogu data ). Search DISC + Advanced Search ATMOS COMPOSITION HYDROLOGY A-TRAIN AIRS MODELING MAIRS PRECIPITATION You are here: GES DISC Home Modeling Data Holdings MERRA Products MERRA Products MERRA Products Analysis Files History Files Chemistry Forcing Files Legend 1 MERRA, or the Modern Era Retrospective-analysis for Research and Application, is a NASA reanalysis for the satellite era (30 years 1979-current) using the Goddard Earth Observing System Data Assimilation System Version 5 (GEOS-5 DAS), dane dostępne np. poprzez stronę NASA DISC i system Mirador

Zadanie 12.1 : polecenie Rozszerzenie szkicu kodu (rozszerzone rozwiązanie zadania 10.1 + wskazówki) o następujący schemat procedury rozkładu pola anomalii parametru meteorologicznego na empiryczne funkcje ortogonalne: odjęcie od wczytanych danych wartości średnich dla danej stacji (wyliczenie anomalii) wyznaczenie macierzy kowariancji anomalii wyznaczenie wektorów i wartości własnych macierzy kowariancji wykreślenie map poszczególnych empirycznych funkcji ortogonalnych (wektorów własnych macierzy kowariancji) wypisanie wkładu poszczególnych e.f.o. do całkowitej wariancji (stosunki poszczególnych wartości własnych do sumy wszystkich) wykreślenie serii czasowej wag poszczególnych e.f.o. w rozkładach map z poszczeg. lat (iloczyny skalarne e.f.o z mapą z danego roku)

Zadanie 11.1 przykładowy wynik obliczeń

Zadanie 11.1 szkic kodu zad11 1.pro 1 pro zad11_1 2 3 ; ustawienia 4 listahdf = 'data/merra*.prod.assim.tavgm_2d_slv_nx.*01.hdf' 5 maplimit = [45, 10, 60, 30]; lat_min, lon_min, lat_max, lon_max 6 loadct, 1 7 8 ; pobranie z plików HDF danych ograniczonych do obszaru okolic Polski 9 pliki = file_search(listahdf, count=cnt) 10 if cnt eq 0 then message, 'Brak plikow pasujacych do: ' + listahdf 11 for i = 0, n_elements(pliki) -1 do begin 12 id_hdf = hdf_sd_start(pliki[i], /read) 13 id_sds = hdf_sd_select(id_hdf, hdf_sd_nametoindex(id_hdf, 'SLP')) 14 if i eq 0 then begin 15 hdf_sd_dimget, hdf_sd_dimgetid(id_sds, 0), scale=data_lon 16 hdf_sd_dimget, hdf_sd_dimgetid(id_sds, 1), scale=data_lat 17 lons = where(data_lon ge maplimit[1] and data_lon le maplimit[3]) 18 lats = where(data_lat ge maplimit[0] and data_lat le maplimit[2]) 19 data = fltarr(n_elements(lats) * n_elements(lons), n_elements(pliki), /nozero) 20 endif 21 hdf_sd_getdata, id_sds, tmp, $ 22 start=[lons[0], lats[0], 0], count=[n_elements(lons), n_elements(lats), 1] 23 hdf_sd_end, id_hdf 24 data[*, i] = temporary(tmp) 25 endfor 26 data_lon = data_lon(lons) 27 data_lat = data_lat(lats) 28 29 ; wyznaczanie empirycznych funkcji ortogonalnych 30 31 ; 2. wyznaczenie macierzy kowariancji anomalii: dwie emtody 32 ; a) funkcja z flagą /covariance 33 ; b) dla każdego z punktów pomiarowych odjęcie średniej ze wszystkich lat obserwacji 34 ; i przemnozenie przez macierz transponowaną, może się przydać: 35 ; - drugi argument do f-cji total() 36 ; - funkcja z flagą /sample 37

Zadanie 11.1 szkic kodu zad11 1.pro 38 ; 2. wyznaczenie wektorów i wartości własnych cov 39 ; może się przydać: 40 ; - funkcja z flagą eigenvec 41 42 ; 3. wypisanie kilku pierwszych wartości własnych (stosunki wartości do sumy wszyskich) 43 44 ; 4. wyznaczenie współczynników rozkładu dla wszystkich lat obserwacji 45 ; może się przydać: 46 ; - odwołanie do eigvec[*, eof], gdzie eigvec to wartość przekazana przez 47 ; - odwołanie do data[*, plik] 48 49 ; 5. wykreślenie pól / eofów / etc 50 ; może się przydać: 51 ; - reform(eigvec[*, eof], n_elements(lons), n_elements(lats)) 52 ; - set_plot, 'svg' 53 ; - map_set,.5*(maplimit[0] + maplimit[2]),.5*(maplimit[1] + maplimit[3]), $ 54 ; /gnomic, limit=maplimit 55 ; - contour, reform(data[*, plik], n_elements(data_lon), n_elements(data_lat), /o), $ 56 ; data_lon, data_lat, /overplot, /fill 57 ; - contour, reform(eigvec[*, eof], n_elements(lons), n_elements(lats)), $ 58 ; data_lon, data_lat, /overplot, /fill 59 ; - map_continents, /countries, /coasts, color=!p.background 60 ; - map_grid, /label, glinestyle=0, latlab=maplimit[3], lonlab=maplimit[2] 61 62 end 63 ; EOF :)

Zadanie 11.1 rozwiązanie zad11 1.pro neof = 3 nlev = 20 ; wyznaczanie empirycznych funkcji ortogonalnych ; 1. dla każdego z punktów pomiarowych odjęcie średniej ze wszystkich lat obserwacji data -= rebin(total(data, 2)/n_elements(pliki), n_elements(lats) * n_elements(lons), n_elements(pliki), /sample) ; 2. wyznaczenie macierzy kowariancji anomalii cov = correlate(data, /covariance) ; 3. wyznaczenie wektorów i wartości własnych cov eigval = eigenql(cov, eigenvec=eigvec) ; wektory są już unormowane ; 4. wypisanie kilku pierwszych wartości własnych (stosunki wartości do sumy wszyskich, w procentach) print, eigval[indgen(5)]/total(eigval) ; 5. wyznaczenie współczynników rozkładu dla wszystkich lat obserwacji rzut = fltarr(n_elements(pliki), neof) for i=0, n_elements(pliki) - 1 do for j=0, 2 do rzut[i, j] = total(eigvec[*, j] * data[*, i]) eofs = ptrarr(neof, /nozero) eofs[0] = ptr_new(reform(eigvec[*, 0], n_elements(lons), n_elements(lats))) eofs[1] = ptr_new(reform(eigvec[*, 1], n_elements(lons), n_elements(lats))) eofs[2] = ptr_new(reform(eigvec[*, 2], n_elements(lons), n_elements(lats))) wklad = fltarr(neof) for i=0, neof -1 do wklad[i] = 100 * eigval[i]/total(eigval) print, 'eof1', rzut[*, 0] print, 'eof2', rzut[*, 1] print, 'eof3', rzut[*, 2] ; rysowanie mapy

Zadanie 11.1 rozwiązanie zad11 1.pro set_plot, 'svg' device, filename='zad12_2d.svg'!p.multi=[0,3,2] for p=0, 5 do begin map_set,.5*(maplimit[0] + maplimit[2]),.5*(maplimit[1] + maplimit[3]), $ limit=maplimit, /gnomic, /noborder, advance=p, charsize=2, $ title=p lt 3? 'NASA MERRA SLP anom. [Pa] ' + strtrim(string(1979) + p, 2) + $ '.01' : 'EOF ' + strtrim(string(p - 2), 2) + ' (' + string(wklad[p-3], format='(i3)') + ' %)' if p lt 3 then begin contour, reform(data[*, p], n_elements(data_lon), n_elements(data_lat), /o), $ data_lon, data_lat, /overplot, nlev=nlev, /fill contour, reform(data[*, p], n_elements(data_lon), n_elements(data_lat), /o), $ data_lon, data_lat, /overplot, nlev=nlev, /follow endif else begin contour, *(eofs[p-3]), data_lon, data_lat, /overplot, nlev=nlev, /fill contour, *(eofs[p-3]), data_lon, data_lat, /overplot, nlev=nlev, /follow endelse map_continents, /countries, /coasts, color=!p.background map_grid, /label, glinestyle=0, latlab=maplimit[3], lonlab=maplimit[2], charsize=.5 endfor device, /close end ; EOF :)

: rozwiązywanie zagadnienia własnego dla macierzy symetrycznych (np. macierz kowariancji) zwraca N wartości własnych przekazanej w argumencie tablicy N N (oraz ew. jej wektory własne) warotści własne = eigenql(tablica symetryczna) warotści własne = eigenql(tablica symetryczna, $ eigenvectors=wektory własne) przykład użycia > a = correlate(randomu(seed, 3, 3), /covariance) > eigval = eigenql(a, eigenvectors=eigvec) > help, a, eigval, eigvec A FLOAT = Array[3, 3] EIGVAL FLOAT = Array[3] EIGVEC FLOAT = Array[3, 3]

: funkcja skaluje rozmiary tablicy o czynnik całkowity (interpolując wartości) tablica wynikowa A = rebin(tablica wejściowa N, A) tablica wynikowa AxB = rebin(tablica wejściowa NxM, A, B) Przy zwiększaniu, wymiar tablicy wynikowej musi być całkowitą wielokrotnością wymiaru tablicy wejściowej. przykład użycia Przy zmniejszaniu, wymiar tablicy wejściowej musi być wielokrotnością wymiaru tablicy wynikowej. Domyślnie aproksymacja poprzez interpolację dwuliniową (przy zwiększaniu rozmiaru) lub poprzez uśrednianie sąsiednich wartości (przy zmniejszaniu rozmiaru). Wywołanie funkcji z flagą /sample powoduje aproksymowanie wartością najbliższego sąsiada (niższa jakość wyniku, krótszy czas obliczeń). Uwaga na ostatni element tablicy wynikowej rebin nigdy nie ekstrapoluje! (patrz przykład poniżej) > a = findgen(2) & print, a 0.00000 1.00000 > print, rebin(a, 4) 0.00000 0.50000 1.00000 1.00000 > print, rebin(a, 4, /sample) 0.00000 0.00000 1.00000 1.00000 > print, rebin(a, 1) 0.50000 > print, rebin(a, 1, /sample) 0.00000 zasada działania

: funkcja rearanżuje tablice bez zmiany zawartości (również in-situ) tablica wynikowa = reform(tablica wejściowa, wymiar 1, wymiar 2,... ) tablica = reform(tablica, wymiar 1, wymiar 2,..., /overwrite) przykład użycia > a = indgen(4) > print, a 0 1 2 3 > a = reform(a, 2, 2, /overwrite) > print, a 0 1 2 3

: funkcja zwraca współczynnik korelacji (kowariancję) dwóch wektorów lub macierz korelacji (kowariancji) macierzy współczynnik korelacji = correlate(wektor1, wektor2) kowariancja = correlate(wektor1, wektor2, /covariance) macierz korelacji = correlate(macierz) macierz kowariancji = correlate(macierz, /covariance) przykład użycia > x = [1,2,3] > y = [1,2,3] > print, correlate(x, y), correlate(x, -y) 1.00000-1.00000

Wesołych Świąt!