Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 13

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

Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 14

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Transformata Fouriera i analiza spektralna

Transformata Fouriera

9. Dyskretna transformata Fouriera algorytm FFT

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Fizyka Procesów Klimatycznych Wykład 11 Aktualne zmiany klimatu: atmosfera, hydrosfera, kriosfera

uzyskany w wyniku próbkowania okresowego przebiegu czasowego x(t) ze stałym czasem próbkowania t takim, że T = t N 1 t

DYSKRETNA TRANSFORMACJA FOURIERA

OpenPoland.net API Documentation

Laboratorium Przetwarzania Sygnałów Biomedycznych

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

FFT i dyskretny splot. Aplikacje w DSP

CYFROWE PRZETWARZANIE SYGNAŁÓW

Transformacje i funkcje statystyczne

Stabilność. Krzysztof Patan

7. Szybka transformata Fouriera fft

Weronika Mysliwiec, klasa 8W, rok szkolny 2018/2019

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Elementy termodynamiki atmosfery i fizyki chmur Ćwiczenia 01

Extraclass. Football Men. Season 2009/10 - Autumn round

Podstawy Przetwarzania Sygnałów

Przekształcenie Fouriera i splot

SPITSBERGEN HORNSUND

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

Sargent Opens Sonairte Farmers' Market

NIEPEWNOŚĆ POMIARÓW POZIOMU MOCY AKUSTYCZNEJ WEDŁUG ZNOWELIZOWANEJ SERII NORM PN-EN ISO 3740

1 Przygotował: mgr inż. Maciej Lasota

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

Network Services for Spatial Data in European Geo-Portals and their Compliance with ISO and OGC Standards

Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 08

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 6. Transformata cosinusowa. Krótkookresowa transformata Fouriera.

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

KORELACJA 1. Wykres rozrzutu ocena związku między zmiennymi X i Y. 2. Współczynnik korelacji Pearsona

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Machine Learning for Data Science (CS4786) Lecture11. Random Projections & Canonical Correlation Analysis

Ćwiczenie 3. Właściwości przekształcenia Fouriera

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

Język Python (2) Język Python (2) 1/36

Towards Stability Analysis of Data Transport Mechanisms: a Fluid Model and an Application

Nazwa projektu: Kreatywni i innowacyjni uczniowie konkurencyjni na rynku pracy

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

Wykaz linii kolejowych, które są wyposażone w urządzenia systemu ETCS

Podstawy Programowania C++

Rozpoznawanie twarzy metodą PCA Michał Bereta 1. Testowanie statystycznej istotności różnic między jakością klasyfikatorów

Wykaz linii kolejowych, które są wyposażone w urzadzenia systemu ETCS

Transformaty. Kodowanie transformujace

SQL 4 Structured Query Lenguage

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

ANALIZA SYGNAŁÓ W JEDNÓWYMIARÓWYCH

Metody systemowe i decyzyjne w informatyce

deep learning for NLP (5 lectures)

SPITSBERGEN HORNSUND

Powłoka bash. Kurs systemu Unix 1

Laboratorium Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z przetwarzaniem sygnałów w MATLAB. 2. Program ćwiczenia. Przykład 1 Wprowadź

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Przekształcenie Fouriera obrazów FFT

Metody systemowe i decyzyjne w informatyce

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like

Cyfrowe Przetwarzanie Obrazów i Sygnałów

SPITSBERGEN HORNSUND

Programowanie - wykład 4

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji

Sieci Komputerowe 2 / Ćwiczenia 1

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)

Laboratorium Przetwarzania Sygnałów. Ćwiczenie 2. Analiza widmowa

Camspot 4.4 Camspot 4.5

Widmo akustyczne radia DAB i FM, porównanie okien czasowych Leszek Gorzelnik

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Few-fermion thermometry

ITIL 4 Certification

PL B1. Sposób i układ pomiaru całkowitego współczynnika odkształcenia THD sygnałów elektrycznych w systemach zasilających

y = The Chain Rule Show all work. No calculator unless otherwise stated. If asked to Explain your answer, write in complete sentences.

Ćwiczenie 6 Projektowanie filtrów cyfrowych o skończonej i nieskończonej odpowiedzi impulsowej

Wprowadzenie. Spis treści. Analiza_sygnałów_-_ćwiczenia/Filtry

SPITSBERGEN HORNSUND

Projektowanie systemów pomiarowych. 02 Dokładność pomiarów

Przetwarzanie sygnałów

Hard-Margin Support Vector Machines

Diagnostyka obrazowa

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

SzeregFouriera-Legendre a

Bash - instrukcje warunkowe, pętle i funkcje

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

SZCZEGÓLNE ROZWAśANIA NAD UŚREDNIONYMI POMIARAMI Special Considerations for Averaged Measurements

Laboratorium Przetwarzania Sygnałów Biomedycznych

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

DYSKRETNE PRZEKSZTAŁCENIE FOURIERA C.D.

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

Układy i Systemy Elektromedyczne

Życie za granicą Studia

archivist: Managing Data Analysis Results

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

Wstęp do programowania

Transkrypt:

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

Zadanie 13.1 dane: pomiary z obserwatorium SMEAR II w Hyytiälä w Finlandii http://www.atm.helsinki.fi/smear/ http://www.mm.helsinki.fi/hyytiala/ Hyytiälä Forestry Field Station The Station: Welcome! Front Page Information Teaching Research Links History : Hyytiälä Forestry Field Station is part of the Faculty of Agriculture and Forestry at the Helsinki Contact Information: University. The object of the station is to enable both teaching and research at field conditions. The station also provides facilities for arrangement of meetings and seminars as well as Office: possibilities for different leisure activities. Hyytiäläntie 124 35500 Korkeakoski Finland polecenie: znalezienie widma mocy składowych fourierowskich (periodogramu a ) serii czasowej pomiarów stosunku zmieszania CO 2 w Hyytiälä (przy okazji wyznaczenie trendu liniowego). a Dla zbiorów danych zawierających dane nieregularnie rozłożone w czasie (również ze względu na brakujące rekordytak jak w tym przypadku) lepiej stosować np. periodogram Lomba

Palaeoclimate Chapter 6 Figure 6.1. (Top) Atmospheric CO and continental glaciation 400 Ma to present. Vertical blue bars mark the timing and palaeolatitudinal extent of ice sheets (after Crowley, 441 Figure 6.1. (Top) Atmospheric CO2 and continental glaciation 400 Ma to present. Vertical blue bars mark the timing and palaeolatitudinal extent of ice sheets (after Crowley, 1998). Plotted CO2 records represent five-point running averages from each of the four major proxies (see Royer, 2006 for details of compilation). Also plotted are the plausible ranges of CO2 from the geochemical carbon cycle model GEOCARB III (Berner and Kothavala, 2001). All data have been adjusted to the Gradstein et al. (2004) time scale. (Middle) Global compilation of deep-sea benthic foraminifera 18O isotope records from 40 Deep Sea Drilling Program and Ocean Drilling Program sites (Zachos et al., 2001) updated with high-resolution records for the Eocene through Miocene interval (Billups et al., 2002; Bohaty and Zachos, 2003; Lear et al., 2004). Most data were derived from analyses of two common and long-lived benthic taxa, Cibicidoides and Nuttallides. To correct for genus-specific isotope vital effects, the 18O values were adjusted by +0.64 and +0.4 (Shackleton et al., 1984), respectively. The ages are relative to the geomagnetic polarity time scale of Berggren et al. (1995). The raw data were smoothed using a fivepoint running mean, and curve-fitted with a locally weighted mean. The 18O temperature values assume an ice-free ocean ( 1.0 Standard Mean Ocean Water), and thus only apply to the time preceding large-scale antarctic glaciation (~35 Ma). After the early Oligocene much of the variability (~70%) in the 18O record reflects changes in antarctic and Northern Hemisphere ice volume, which is represented by light blue horizontal bars (e.g., Hambrey et al., 1991; Wise et al., 1991; Ehrmann and Mackensen, 1992). Where the bars are dashed, they represent periods of ephemeral ice or ice sheets smaller than present, while the solid bars represent ice sheets of modern or greater size. The evolution and stability of the West Antarctic Ice Sheet (e.g., Lemasurier and Rocchi, 2005) remains an important area of uncertainty that could affect estimates of future sea level rise. (Bottom) Detailed record of CO2 for the last 65 Myr. Individual records of CO2 and associated errors are colour-coded by proxy method; when possible, records are based on replicate samples (see Royer, 2006 for details and data references). Dating errors are typically less than ±1 Myr. The range of error for each CO2 proxy varies considerably, with estimates based on soil nodules yielding the greatest uncertainty. Also plotted are the plausible ranges of CO2 from three geochemical carbon cycle models. Chapter 6 Zadanie 13.1 kontekst historyczno-polityczny IPCC 4AR-WG1: ilustracja 6.1 ze strony 441 (rozdział 6) Palaeoclimate

Zadanie 13.1 przykładowe rozwiązanie (1/2) pod powłoką (razem ze wstępnym przygotowaniem danych) $ awk {for (f=1;f<=nf;f++) print f : $f} hdr lista kolumn i ich numeracja $ cat *.dat awk $20== NaN {i++} END {print i / NR} sprawdzenie jaka część rekordów to NaN $ cat *.dat awk $20!= NaN {i++} i>0 {print $20} > data pomiary CO2 od pierwszego nie- NaN $ tail -r data awk $1!= NaN {i++} i>0 {print $1} > atad j.w. od końca $ tail -r atad > data powrócenie do normalnego porządku rekordów $ gdl > zad13 1 trend: 2.02946 ppm/rok

Zadanie 13.1 przykładowe rozwiązanie (2/2) zad13 1.pro 1 pro periodogram, czas, sgnl, _extra = ex 2 n = n_elements(czas) 3 dt = czas[1]-czas[0] 4 f = findgen(n/2+1) / n / dt 5 amp2 = abs((fft(sgnl))[0:n/2])^2 6 amp2[1:n/2-1] *= 2 ; uwzgl. częstości ujemnych 7 moc_db = 10*alog10(amp2/max(amp2)) 8 oplot, f, moc_db, _extra = ex 9 end 10 11 pro zad13_1 12!P.MULTI = [0,1,2] &!X.STYLE = 1 13 14 ; wczytanie i wykreślenie danych z pliku 15 sgnl = (read_ascii('dane/data')).field1 16 dt = 30*60d 17 n = n_elements(sgnl) 18 czas = findgen(n) * dt 19 plot, czas, sgnl, xtitle="czas [s]", ytitle="stosunek zmieszania CO2 [ppm]", $ 20 /ynozero 21 22 ; NaN -> wartości interp. (lepiej interp. sinusoidami/periodogram Lomba) 23 corr = where(finite(sgnl), n_corr, complement=nans, ncomplement=n_nans) 24 if n_nans gt 0 then sgnl[nans] = interpol(sgnl[corr], corr, nans) 25 26 ; odjęcie i wypisanie trendu liniowego 27 lfit = linfit(czas, sgnl, yfit=trend) 28 sgnl -= trend 29 print, "trend: ", float(lfit[1]*60*60*24*365), " ppm/rok" 30 31 ; przemnożenie przez okno Hanna 32 sgnl *= hanning(n) 33 34 ; obliczenie i wykreślenie widma mocy 35 plot, [1./n/dt, 1d/60/60], [0d, -40], /nodata, xtitle="f [Hz]", $ 36 /xlog, ytitle="widmo mocy (periodogram) [db]" 37 periodogram, czas, sgnl, psym=10 38 oplot, psym=4, [1d/60/60/24, 1d/60/60/24/7, 1d/60/60/24/365], [-2,-2,-2] 39 xyouts, 1.1*[1d/60/60/24, 1d/60/60/24/7, 1d/60/60/24/365], $ 40 [-3,-3,-3], ['doba','tydzien','rok'] 41 end

Zadanie Odfiltrowanie w sygnale analizowanym w zadaniu 13.1 zmienności rocznej.

Szybka Transformacja Fouriera (FFT) w u fft() zwraca dyskretną transformatę Fouriera argumentu (zespolone współczynniki rozkładu w bazie fourierowskiej) lub transformatę odwrotną; tablica przekazana w argumencie rzutowana jest na typ zespolony; funkcja może też obliczać transformaty tablic wielowymiarowych (np. analiza obrazów); obliczenia, w zależności od konfiguracji a wykonywane są przez biblioteki GSL lub FFTW sposób użycia trnsfrmt = fft(sgnł) dla tablicy jednowymiarowej (sgnł, trnsfrmt C): trnsfmt[m] = N 1 2πi sgnł[k] e N k mk sgnł = fft(trnsfrmt, /inverse) sgnł[k] = k wybrane argumenty nazwane i flagi 2πi trnsfrmt[m] e N mk dimension=n określenie dla którego wymiaru liczona jest transformata w przypadku argumentu wielowymiarowego (domyślnie liczona jest w każdym z wymiarów) /overwrite zapis wyniku do tablicy przekazanej w argumencie (algorytm in-situ) /inverse transformacja odwrotna interpretacja m i k dla parzystego N próbek próbkowanych co t (jednostki przykładowe ) t(k) = k t czas [s] f (m N 2 ) = N t m częstotliwości [Hz] od 0 (DC) do N/2 N t = 2 t 1 (Nyquista) f (m > N 2 ) = m N częstotliwości [Hz] od N/2 1 do 1 N t N t N t interpretacja sgnł[k] i trnsfmt[m] logmod=alog10(abs(trnsfrmt)) ( trnsfrmt ) A(m) = 10 log 10 amplitudy [db] amp=10*(logmod-max(logmod)) max( trnsfrmt ) φ(m) = arg(trnsfmt) ( fazy składowych ) [1 ] phi=atan(trnsfmt, /phase)/!dtor trnsfrmt P(m) = 10 log 2 10 max( trnsfrmt 2 periodogram (estymator widma mocy) [db] moc=2*amp ) dla sygnału R: trnsfrmt = trnsfrmt, A(f ) = A( f ), φ(f ) = φ( f ) przykład użycia w zadaniu 13.1

odjęcie trendu liniowego od sygnału przed FFT : dopasowanie prostej metodą najmn. kwadr. trend demo.pro 1 pro periodogram, czas, sgnl, _extra = ex 2 n = n_elements(czas) 3 dt = czas[1]-czas[0] 4 f = findgen(n/2+1) / n / dt 5 amp2 = abs((fft(sgnl))[0:n/2])^2 6 amp2[1:n/2-1] *= 2 ; uwzgl. cz!sto"ci ujemnych 7 moc_db = 10*alog10(amp2/max(amp2)) 8 oplot, f, moc_db, psym=10, _extra = ex 9 end 10 11 pro trend_demo 12 n = 512 & dt = 1./(n-1) * 2 *!PI 13 nyquist =.5 / dt 14 15 czas = findgen(n) * dt 16 sgnl = sin(nyquist/16 * 2*!PI * czas) + $ 17 cos(nyquist/4 * 2*!PI * czas) / 4 + $ 18 czas 19 lfit = linfit(czas, sgnl, yfit=trnd) 20 21!P.MULTI = [0,1,2] &!X.STYLE = 1 22 23 plot, linestyle=0, czas, sgnl, $ 24 xtitle="czas [s]", ytitle="amplituda", $ 25 title="y=sin(fnyq/16 * 2pi * x) +" + $ 26 " cos(fnyq/4 * 2pi * x)/4 + x" 27 oplot, linestyle=4, czas, sgnl - trnd 28 oplot, czas, trnd 29 30 plot, [0, nyquist], [0, -75], /nodata, $ 31 xtitle="f [Hz]", /xlog, $ 32 ytitle="widmo mocy (periodogram) [db]" 33 periodogram, linestyle=0, czas, sgnl 34 periodogram, linestyle=4, czas, sgnl - trnd 35 end linfit() wyznacza współczynniki ([a,b]) prostej (y=a+bx) dopasowanej do danych przekazanych w argumencie metodą najmniejszych kwadratów (minimalizacja χ 2 przy założeniu błędów/szumów o rozkładzie Gaussa); współczynniki = linfit(wartości x, wartości y) współczynniki = linfit(wartości x, wartości y, measure errors=niepewności y) współczynniki = linfit(wartości x, wartości y, chisq=niezredukowane chi kwadrat) współczynniki = linfit(wartości x, wartości y, yfit=dopasowane y)

Przeciekanie widma a kształt okna czasowego : okna Hanna i Hamminga hann demo.pro 1 pro periodogram, czas, sgnl, _extra = ex 2 n = n_elements(czas) 3 dt = czas[1]-czas[0] 4 f = findgen(n/2+1) / n / dt 5 amp2 = abs((fft(sgnl))[0:n/2])^2 6 amp2[1:n/2-1] *= 2 ; uwzgl. cz!sto"ci ujemnych 7 moc_db = 10*alog10(amp2/max(amp2)) 8 ; norm. do max wi!c bez norm. do sumy wag w oknie 9 oplot, f, moc_db, psym=10, _extra = ex 10 end 11 12 pro hann_demo 13 n = 512 & dt = 1./(n-1) * 2 *!PI 14 nyquist =.5 / dt 15 16 czas = findgen(n) * dt 17 sgnl = sin(nyquist/11 * 2*!PI * czas) + $ 18 cos(nyquist/3 * 2*!PI * czas) / 4 19 hann = hanning(n) 20 21!P.MULTI = [0,1,2] &!X.STYLE = 1 22 23 plot, linestyle=4, czas, sgnl, $ 24 xtitle="czas [s]", ytitle="amplituda", $ 25 title="y=sin(fnyq/11 * 2pi * x) +" + $ 26 " cos(fnyq/3 * 2pi * x)/4" 27 oplot, linestyle=0, czas, sgnl*hann 28 oplot, czas, hann 29 30 plot, [0, nyquist], [0, -150], /nodata, $ 31 xtitle="f [Hz]", /xlog, $ 32 ytitle="widmo mocy (periodogram) [db]" 33 periodogram, linestyle=4, czas, sgnl 34 periodogram, linestyle=0, czas, sgnl * hann 35 end hanning() zwraca tablicę o długości zadanej w argumencie, z wartościami funkcji ( ) 2πk cosinusowego okna czasowego wyliczonymi wg wzoru w[k]=α (1 α) cos N okno Hanna = hanning(n) okno Hamminga = hanning(n, alpha=.54)

: zmienne systemowe w strukturze!values finite() zwraca prawdę gdy wartość argumentu nie jest ani nieskończona, ani nieokreślona (NaN) prawda gdy wyrażenie skończone i określone = finite(wyrażenie) zmienne systemowe (tylko do odczytu) w strukturze!values!values.f INFINITY nieskończoność dla typu rzeczywistego 32-bitowego (float)!values.f NAN wartość nieokreślona dla typu rzeczywistego 32-bitowego (double)!values.d INFINITY nieskończoność dla typu rzeczywistego 64-bitowego (double)!values.d NAN wartość nieokreślona dla typu rzeczywistego 64-bitowego (double) przykład użycia > print, finite(double( nan ))? okreslone : nieokreslone nieokreslone > print, finite(1)? okreslone : nieokreslone okreslone > print, finite(!values.d NAN)? okreslone : nieokreslone nieokreslone

: prosta pętla w bashu, zarządzanie procesami przykład prostej pętli w bashu $ for i in *.ps; do ps2pdf $i; done; wykona ps2pdf dla wszystkich plików ps w aktualnym katalogu podstawowe polecenia związane z zarządzaniem procesami ps wypisuje listę procesów użytkownika ( pidy w pierwszej kol.) ps ux j.w. dla wszystkich użytkowników ( pidy w drugiej kolumnie) kill pid wysyła sygnał do procesu (domyślnie TERM) killall nazwa wysyła sygnał (domyślnie TERM) do procesów o podanej nazwie top wyświetla, aktualizowaną na bieżąco, tabelę procesów

Narzędzia owe: przykład użycia (składnia analogiczna do cp) man ścieżka lokalna użytkownik@host:ścieżka zdalna kopiuje plik na serwer użytkownik@host:ścieżka zdalna. kopiuje plik z serwera do aktualnego katalogu (.) -r katalog użytkownik@host:ścieżka zdalna przesyła cały katalog -C... włącza kompresję przesyłanych danych

narzędzia owe: cat, tac, head i tail cat przekazuje na standardowe wyjście zawartość pliku tac działa jak cat, ale odwraca kolejność linii head przekazuje na standardowe wyjście zadaną (domyślnie 10) ilość początkowych linii/bajtów standardowego wejścia/pliku man head head PLIK head -N LINII PLIK head -c N BAJTÓW PLIK... head tail przekazuje na standardowe wyjście zadaną (domyślnie 10) ilość końcowych linii/bajtów standardowego wejścia/pliku man tail tail PLIK tail -N LINII PLIK tail -c N BAJTÓW PLIK... tail tail -f nie kończy działania po napotkaniu na koniec pliku czeka na nowe dane tail -r równoznaczne tac (patrz powyżej)