Presentation is loading. Please wait.

Presentation is loading. Please wait.

Aplinkos duomenų masyvai

Similar presentations


Presentation on theme: "Aplinkos duomenų masyvai"— Presentation transcript:

1 Aplinkos duomenų masyvai

2 gdal gdal – erdvinių duomenų atviro kodo bibliotekos. gdal reikikalinga, kad galėtumėme nuskaityti duomenis iš hdf ir grib2 formatų. Instaliavimo video instrukcijos: Suinstaliuotos Microsoft Visual C++ versijos (jei nesuinstaliuota jokia, susiinstaliuokite 2013 metų versiją) ir operacinės sistemos archiekturos nustatymas tu.be&list=PLLWiknuNGd50NbvZhydbTqJJh5ZRkjuak gdal instaliavimo bylos pasirinkimas pagal MV C++ versiją ir OS architektūrą

3 R bibliotekos ir duomenys
Kompiuteryje turi būti suinstaliuotos šios R bibliotekos (Packages): rgdal gdalUtils raster RNetCDF ncdf4 Duomenis „Aplinkos duomenys“ atsisiųskite iš . Sukurkite naują projektą Aplinkos_duomenys ir į jo darbinę direktoriją išskleiskite atsisūsto archyvo tūrinį.

4 HDF duomenys HDF – hierarchinis duomenų formatas skirtas saugoti didelius informacijos kiekius. Failus dažniausiai sudaro keli informaciniai sluoksniai. HDF yra kelių versijų: HDF4 ir HDF5 kurios tarpusavyje nesuderinamos. HDF4 kol kas populiaresnis, o jame dažnai pateikiami distancinių stebėjimų duomenys (MODIS ir kt) . HDF5 duomenis į R galima įsikelti naudojant paketą rhdf5. HDF5-In-R/

5 HDF4 HDF4 formatas populiaresnis, tačiau juo išsaugotus duomenis į R įsikelti sudėtingiau. HDF4 duomenys prieš naudojimą paverčiami į GeoTIFF failus naudojant gdal ir R bibliotekas rgdal, gdalUtils, raster. Naudojant daugumą aptariamų formatų formatų pirmiausia nuskaitoma norimo failo informacija, o po to naudojant šią informaciją įsikeliami faile esantys duomenys.

6 HDF4 failo informacija Sukurkite naują kodą current_sst.R.
Nuskaitykime failo current_sst.hdf , kuriame patalpinta NOAA Coral Reef Watch Sattallite jūros paviršiaus temperatūros informaciją. current_sst_info<-gdalinfo("current_sst.hdf") Gavome vektorių informacijos apie failo tūrinį (metaduomenis). current_sst_info current_sst_info[6] current_sst_info[9]

7 HDF4 failo įkėlimas į R Nuskaitykime pačius temperatūros duomenis
current_sst <- get_subdatasets("current_sst.hdf") current_sst Duomenis sudaro 3 sluoksniai: "HDF4_SDS:UNKNOWN:current_sst.hdf:0" "HDF4_SDS:UNKNOWN:current_sst.hdf:1" "HDF4_GR:UNKNOWN:current_sst.hdf:0" Informacijos iš šių sluoksnių kol kas gauti negalime.

8 HDF4 transformavimas į GeoTIFF
Norėdami gauti duomenis turime juos su gdal_translate() funkcija norimus duomenų sluoksnius paversti į GeoTIFF ir juos įsikelti į R naudojant funkciją raster(). gdal_translate(current_sst[1], dst_dataset = "current_sst.tif") current_sst_rastras<-raster("current_sst.tif") Pavaizduokime duomenis su funkcija plot() ir sužinokime informaciją apie rastro objektą naudodami funkciją print(). Sukurkite kitų dvejų informacinių sluoksnių tif failus ir juos įsikelkite į R. Vizualizukite šios duomenis ir susipažinkite su informacija apie juos.

9 Duomenų iškirpimas Duomenų erdvinę aprėptį galime sužinoti naudodami funkciją extent(). extent(current_sst_rastras) Norėdami iškirpti dalį duomenų galime naudoti funkciją crop() ir nurodyti norimą duomenų erdvinę aprėptį. europe<-extent(-60,60,30, 80) current_sst_rastras_europe<-crop(current_sst_rastras, europe) Padarykite iškirptų jūros paviršiaus temperatūros duomenų pasiskirstymo paveikslus ir sužinokite iškirptų duomenų informaciją (print).

10 Duomenų vertės Su funkcija extract() galima parinkti duomenis pagal koordinates taškus, linijas, poligonus arba extent. xy <- data.frame(x=-60:-11,y=rep(20,50)) curent_sst_atlantic<-extract(curent_sst_rastras, xy) plot(curent_sst_atlantic) Iš raster objekto duomenis galima paversti į matrix, data frame arba array, jei rastras kelių sluoksnių. current_sst_europe<- as.matrix(current_sst_rastras_europe) current_sst_europe_df<- as.data.frame(current_sst_rastras_europe, xy=TRUE)

11 Duomenų vertės Matrica current_sst_europe neturi koordinačių duomenų, todėl sunku duomenis interpretuoti. Sukurkime koordinačių vektorius lon ir lat remdamiesi print(current_sst_rastras_europe). lon<-seq(-59.75, 60, 0.5) lat<-seq(79.75, 30, -0.5) Suteikime matricos dimensijoms vardus colnames(current_sst_europe)<-lon rownames(current_sst_europe)<-lat Duomenis iš matricos galime parinkti naudodami lon ir lat vektorius curent_sst_baltic<-curent_sst_europe[lat>50 & lat<70, lon>10 & lon<30]

12 GRIB2 GRIB2 –(General Regularly-distributed Information in Binary form) failai WMO standartizuotas failas dažniausi naudojamas reanalizės ir prognozių duomenys. GRIB2 gali būti sudaryti iš kelių sluoksnių. GRIB2 duomenys pateikiami sveikais skaičiais, todėl tikras reikšmes galima sužinoti pagal lygtį x=a+b*grib. Koficientai a ir b pateikiami duomenų rengėjų. GRIB2 metaduomenys patalpinti ne pačiame GRIB faile.

13 GRIB2 failo įkėlimas į R GRIB2 duomenis galima į R įsikelti kaip SpatialGridDataFrame objektą naudojant funkciją readGDAL() Sukurkite naują kodo failą GRIB2.R. Įsikelkime GFS dienos val. reanalizės duomenis grib <- readGDAL("gfsanl_3_ _1200_003.grb2") SpatialGridDataFrame objektą jei norime galime paversti į rastrų su GRIB2 sluoksnių duomenimis rinkinį naudodami stack() funkcija. grib_stack<-stack(grib)

14 GRIB2 metaduomenų įkėlimas į R
GRIB2 metaduomenys patalpinti kituose failuose Nuskaitykime GRIB2 failo turinio sąrašą iš failo gfsanl_3_ _1200_003.inv grib.info<-read.table( "gfsanl_3_ _1200_003.inv", header = FALSE, sep = ":", stringsAsFactors=FALSE) Pasilikite grib.info tik 1, 4, 5, 6 stulpelius ir suteikite jiems pavadinimus "Band","Variable","Layer","Window"

15 GRIB2 kanalų pasirinkimas
Suraskime kuris kanalas (band) yra priežemio (Layer – surface) temperatūra (Variable – TMP). temp_band<-grib.info[grib.info$Variable== "TMP"& grib.info$Layer == "surface","Band"] Sukurkime objektą, kuriame būtų tik paviršiaus temperatūros duomenys temp_grib<-grib[temp_band] Vizualizuokime paviršiaus temperatūros duomenis plot(temp_grib, axes=TRUE)

16 GRIB2 duomenys į data frame
Spatial* duomenis (atributiniai duomenys) galima pamatyti naudojant data.frame() funkciją. Paverskime temperatūros paviršiaus duomenis į data frame objektą. temp_surf<-data.frame(temp_grib) Pasirinkime reikiamos teritorijos duomenis temp_surf_baltic<- temp_surf[ temp_surf$x>15 & temp_surf$x<25 & temp_surf$y>50 & temp_surf$y<65 ,]

17 GRIB2 uzduotis Suraskite kurie kanalai (band) yra temperatūros (Variable – TMP) duomenys. Sukurkite objektą, kuriame būtų tik temperatūros duomenys. Vizualizuokite 10 mb temperatūros duomenis. Padarykite temperatūros duomenų data frame ir iš jo iškirpkite Baltijos regiono duomenis.

18 NetCDF4 NetCDF4 yra vienas iš populiariausių duomenų formatų skatinamų naudoti The Climate and Forecast (CF) conventions. Svarbiausias NetCDF4 privalumas yra griežti reikalavimai jo struktūrai ir tai, kad metaduomenys saugomi pačiame faile.

19 NetCDF R nc failus nuskaityti skirti ncdf4 ir RNetCDF paketai. Duomenų nuskaitymo algoritmas panašus, skiriasi tik funkcijų pavadinimai. Sukurkite naują kodo failą netcdf.R jūros paviršiaus temperatūros mėnesių klimatines vertes sst.mon.ltm nc. Pirmiausia į R nuskaitome pačio failo informaciją. library(RNetCDF) failas<-open.nc("sst.mon.ltm nc") Metaduomenis galima peržiūrėti naudojant funkciją (print.nc) print.nc(failas)

20 NetCDF metaduomenys Metaduomenis sudaro šie skyriai (gali būti ne visi arba daugiau): dimensions – informacija apie duomenų dimensijas ir aprėptį variables – kintamųjų informacija (pavadinimas, tipas, vienetai, paaiškinimas ir t.t.) global attributes – bendra informacija apie duomenų rinkinį sst.mon.ltm nc sudaro šie kintamieji(dim. sk.): lat(lat) , lon(lon) – platuma ir ilguma time(time) – laikas dienomis nuo climatology_bounds(nbnds, time) – klimato normos laikot. sst(lon, lat, time) – jūros paviršiaus temperatūra valid_yr_count(lon, lat, time) – kiek metų naudota skaičiuojant sst

21 NetCDF tūrinio nuskaitymas
Norėdami nuskaityti NetCDF failo visus duomenis (turinį) naudojame read.nc() funkciją. data<-read.nc(failas) Su read.nc() nuskaityti duomenys yra patalpinami į sąrašą (list) sudarytą iš visų kintamųjų verčių. Konkretaus kintamojo duomenis galime gauti parinkti norimą list narį viena iš šių komandų komandų: sst<-data$sst sst<-data[["sst"]] sst<-data[[5]]

22 NetCDF tūrinio nuskaitymas
Jei failo turinys didelis, o mus domina tik konkretaus kintamojo vertė tam tikrame regione galime naudoti funkciją: var.get.nc(ncfile, variable, start=NA, count=NA) var.get.nc() nuskaito ncfile kintamojo variable pasirinktą skaičių count reikmių pradedant nuo start. count ir start reikia nurodyti visoms kintamojo dimensijoms, pvz. c(1, 5, 10). Parinkime 5 laikotarpio sst reikšmes regionui sst_region<-var.get.nc(failas, "sst", start = c(10,20,1), count = c(20,20,12)) Naugodami var.get.nc() nustatykite kokiam regionui (kokios lat ir lon) duomenis nuskaitėme.

23 NetCDF tūrinio nuskaitymas
sst_region<-var.get.nc(failas, "sst", start = c(10,20,1), count = c(20,20,12)) Peržiūrėkime dali išskirto regiono duomenų: sst_region[15:20,10:15,3] Naudodami var.get.nc() nuskaitykite šio regiono lat ir lon kintamųjų duomenis. Suteikime gautam masyvui dimensijų pavadinimus: dimnames(sst_region)<-list(lat_region,lon_region, month.abb[1:12]) sst_region[15:20, 10:15, 3] sst_region[13, 10:15, 1:12]

24 NetCDF užduotis Suraskit kokia jūros paviršiaus temperatūros sezoninė kaita Ramiajame vandenyne ties 179.5° dienovidiniu šiaurės ir pietų pusrutulio 45.5° platumoje. Apskaičiuokite vidutinę akvatorijos esančios šiaurės pusrutulyje tarp 30.5 ir 40.5 platumų bei ir meridianų sausio ir liepos mėnesiais.

25 NetCDF tūrinio nuskaitymas
NetCDF kintamajį galima nuskaityti kaip rastrų rinkinį brick (reikia suinstaliuoto į R ncdf4 paketo): sst_brick <- brick("sst.mon.ltm nc", varname = "sst") Vizualizuokime sst_brick turinį plot(sst_brick) Pagal rastro rinkinius (stack ir brick) galime daryti RGB paveikslus, kur nurodome koks sluoksnis bus vaizduojamas raudona (r), žalia (g) ir mėlnyna(b) spalvomis. Kaip interpretuoti sekančia komanda gautą paveikslą? plotRGB(sst_brick, r=1,g=5,b=9,stretch="hist")

26 Žinių pasitikrinimo užduotis
Įsikelkite į R NASA Aqua palydovo d jūros paviršiaus temperatūros (Low_res_sst) duomenis iš failo AMSR_E_L3_DailyOcean_V05_ hdf Padarykite temperatūros pasiskirstymo d. ties ekvatoriumi paveikslą


Download ppt "Aplinkos duomenų masyvai"

Similar presentations


Ads by Google