2014612602ArnoldAndreasson Webbtjänsten)SHARKdata)) och)öppen)källkod/utveckling) ) Datavärdsträff2014påHisingen 2014612602 2014612603)))
Verksamheten)hos)datavärden) Beskrivensome?husmedtre våningsplan. Om)SMHI:s)datavärdskap) SMHI:soceanografiskaenhetiGöteborg(somliggerpåandrasidanälven)är datavärdförmarinafysikaliska/kemiskaochbiologiskadata. Datatypervihanterarär:Bacterioplankton,Chlorophyll,Epibenthos,GreySeal, HarborSeal,PhysicalChemical,Phytoplankton,PrimaryProducOon,RingedSeal, SealPathology,SedimentaOon,ZoobenthosochZooplankton. Problem)som)måste)lösas Dataset,idochmetadataiställetför svarpåenfrågagllendatabas. SHARK)arkivformat Denfastapunktensomgöra?vi kanrubbavärlden... Agenda) SHARKdata REST6serverförskördningavdata. API)för)SHARKdata HurservåraREST6anroput? Öppen)källkod/utveckling Skamanspridadatafri?kanman likagärnaspridakodockså. Var)finns)den)fria)koden? 2014612602ArnoldAndreasson
Verksamhetens)olika)(vånings)plan) Entréplan: Pådennavåningbjuderviin personersomvillhämtaoch användavåradata. Huvudsakligmålgruppärsvenska forskare,myndigheterochen intresseradallmänhet. Källaren: Denprivataavdelningendärvitar emot,tvä?arochskyfflarruntdata innandetpresenterasutåt. Övervåningen: HärskerdetinternaGonella samarbetetiolikaprojekt. Såmycketöppetochfri?som möjligt,bådedataochkod. Övervåning Entréplan Källaren 2014612602ArnoldAndreasson
Vilka)egenutvecklade)programvaror)finns?) Nordicmicroalgae) PlanktonToolbox) SHARKdata) pshark) SHARKweb) db Fysik/kemi: Försystem Biologi: Manuellt SVN (Subversion) Python SHARKadm) 2014612602ArnoldAndreasson
Datavärdskapetwebbsidaheter SHARKweb. Tidigareharbiologiochfysik/kemi varituppdelat,menviärnui slubasenavensammanslagning.) SHARKwebnåsvia: h?p://smhi.se/sharkwebeller h?p://sharkweb.smhi.se Entréplan:)SHARKweb) ViaSHARKwebgårdeta?sökaecer datagenoma?filtreraframdet manärintresseradav.resultatvisas påkarta,idiagramellerladdasneri tabellformatsomtexbiler. Rådataiformavzip6paketgåra? laddanerförkontrolletc. 2014612602ArnoldAndreasson
Entréplan:)Svenska)konsumenter)av)data) A?lämnautdatapå entréplan ärrelagvtenkelt.desomvillhadatavet ocahurdataärinsamladochdetgåra?föraendialogomoklarheter uppstår. SHARKwebärskrivenprimärtföra?hjälpaanvändaresomvillfiltreraut Gllgängligadataförenvissfrågeställning. Exempel:VadfinnsomdeninvasivahavsborstmaskenMarenzelleria? 1991Z1995) 2001Z2005) 2014612602ArnoldAndreasson
Övervåningen:)InternaOonella)konsumenter)av)data) Användareavdatahämtadfrån övervåningen äroca storkonsumenteravdata. DefungerarsomKakmonstret: JAGVILLHAALLADATA,tugg, tugg,ochallametadata, tugg,tugg... Dataochmetadataskagåa? skörda(dvs.hämtamedauto6 magkviaprogram). Varjeprojektharsinaegnakrav påpaketeringavdataoch standarderförmetadata. Ingenvethurjustdensvenska miljöövervakningfungerar. Zarateman,CreaGveCommonsA?ribuGon6ShareAlike3.0Unported 2014612602ArnoldAndreasson
Problem)som)måste)lösas)för) övervåningen ) A?haenstordatamängddäranvändarefiltrerarutresultatsetfungerarinte omdetfinnskravpåa?resultatsetenskagåa?refereragll.a?serva katalogtjänstermedmetadatafungerardåligtommanskarefereragllenstor datamängdsomständigtförändras. Vibehöverkunnapaketeradatailagomavgränsadedataset. Varjedatasetbehöverhae?idföra?gåa?refereraGll. Tillvarjedatasetbehövervikopplametadata(enligtolikastandarder). Översä?ningarochmappningarbehövergöras.Exempelvisfungerarinte DynTaxahär,WoRMSskadetvaraförmarinaarterpåEuropanivå. A?läggapåmekanismerförde?aecerSHARKwebärsvårt.Bä?reära? hanterade?asågdigtsommöjligtidataflödet. Viharvalta?läggaalltmanuelltarbeteGdigti källaren föra?sedan automagserasåmycketsommöjligt. 2014612602ArnoldAndreasson
Kärnan)i)lösningen:)SHARK)Arkivformat) Tidigareharvipaketeratinkommandebiologiskadatai zip6paket. NuinförsSHARK)Arkivformat.BådefördistribuGonocharkivering. Zipanvändsforbarandeförpaketeringavinnehåll. InnehålletfråndeGdigarezip6paketenfinnsundermappen Raw_data. Varjearkivfilskainnehållametadataitexbormat(key/value6lista). Formatpånamn: SHARK_<datatyp>_<fritext>. SHARK_Zooplankton_2013_SMHI_version_2014606609.zip SHARKarkivformat 6shark_data.txt 6shark_data_columns.txt 6shark_metadata.txt) 6shark_metadata_auto.txt 6readme.txt 6Raw_data) 6sample_data.txt(exempel) 6analysis_data.txt(exempel) 6delivery_note.txt) 2014612602ArnoldAndreasson
SHARK)Arkivformat,)automaOsk)bearbetning) DatasetlagrasiSubversion(versionshanteringssystem)sommapparmed datasetetsnamn. NärdatatasutfrånSubversionpaketerasdetsomzip6fileroch versionsdelenavnamnetskapasfrånsubversion6informagon. Raw_data konverterasglltvådirektanvändbaraformat, shark_data.txt och shark_data_columns.txt. Vissametadataautomatberäknasfråndatasetetinnehåll. SHARK_Zooplankton_2013_SMHI_version_2014Z06Z09.zip) SHARKarkivformat Z)shark_data.txt) Z)shark_data_columns.txt) Z)shark_metadata.txt Z)shark_metadata_auto.txt) 6readme.txt Z)Raw_data 6sample_data.txt(exempel) 6analysis_data.txt(exempel) 6delivery_note.txt 2014612602ArnoldAndreasson
2014612602ArnoldAndreasson SHARKdata Enkonsumentavdatasetpaketerade enligtsharkarkivformat.
SHARKdataanvändsföra?göra datagllgängligaförandrasystem, portalerochdatakataloger. Datasetpaketeradeenligt SHARK)Arkivformat)ärindata GllSHARKdata. Allannanbearbetningoch konverteringavdataskerlokalti SHARKdata. SHARKdatanåsvia: h?p://sharkdata.se Togsiskarpdricimaj2014med begränsadfunkgonalitet. ObservaGonsdataförEpibenthos harskördatsavanalysportalenhos SLU. 2014612602ArnoldAndreasson SHARKdata)
Skördning)från)SHARKdata)Oll)Analysportalen) Exempel:Tarmalg,Ulva%intes+nalis. SHARKweb Analysportalen SHARKdata 2014612602ArnoldAndreasson
Tekniken)bakom)SHARKdata) PrimärtskaSHARKdataanvändasförkommunikaGonmaskin maskin,menen webbsidafinnsfördesomvillladdanerdatamanuellt.webbsidananvändsävenför a?lagradokumentagonsamtföradministragonavbakomliggandedata. Överföringavdataset,ochvissaresursfiler,GllSHARKdata6servernskerviaSFTP.I övrigtskeringenkommunikagonmedbakomliggandesystem. Programspråk,dricsform,licensochprojekthanteringharvaltsföra?detskagåa? skapaenklonavsharkdata,ombehovfinns,ellersamarbetaomutvecklingen. Programspråk:Pythonversion2.7. Webbramverk:Django. Databas:Postgresql/PostGIS. Licens:MIT(friochöppenlicens). Källkodetc.:h?p://dev.sharkdata.se Dric:ExternUbuntu6server. 2014612602ArnoldAndreasson
Pågående)arbete)inom)SHARKdata) Samtligadatatyper(12biologiska+fysik/kemi)skafinnasiSHARKdata. ObservaGonsdataskakunnaextraherasfrånsamtligabiologiskadatatyper, intebaraepibenthos. MetadataskakunnaformaterasGllISO19139. DatasetskakunnaladdasnersomSHARKarkivformat. Y?erligareformatförnerladdningsomdiskuterasär: 6DarwinCoreArchive. 6DarwinCoreArchiveforSampleData.(Ny?ejfastställtformat.) 6DarwinCoreArchiveforEurOBIS.(FörleveransGllEMODnet.) 6SeaDataNet:sCDI/ODV6bio.(FramGdombehovochGdfinns.) 6O&M.(FramGdombehovochGdfinns.) Testsidameddetsenastefinnshär:h?p://test.sharkdata.se 2014612602ArnoldAndreasson
DetcentralaiSHARKdataär datasetensomärlagradei SHARKArkivformat. Totaltharvijustnu1759 datasetivårtestserver. Nyligenharvifå?in fysikaliska/kemiskadata från1893ochframåt. Direktfrånwebbsidankan manladdanerdelarfrån arkivfilerna,ellerhela. Standardformatdådelar laddasnerärtextoch JSON. Y?erligareformatecer behov,typiso19139. SHARKdata,)webbsidor) 2014612602ArnoldAndreasson
SHARKdata,)genererade)format) FörutomnerladdningiSHARKsarkivformatkanmanladdaneralternaGva format. DessagenererasavSHARKdata(viae?batchjobb). Justnupågårutvecklingochtesteravtrevarianterav DarwinCore Archive 6formatet. 2014612602ArnoldAndreasson
SHARKdataleversi?eget livpåenserverochmatas endastavfilerviasftp. AllövrigadministraGon skerviawebbenav registreradeanvändare. Resultatetavkörningarna loggas.iexempetgll högerkanmansea?det krånglatvidgenereringen avdarwincore. SHARKdata,)administraOon) 2014612602ArnoldAndreasson
SHARKdata,)skördning) Föra?skördadatafrånSHARKdatabehövermanprogramkod. E?kortexempeliPythonföra?laddanerenzip6filochsparapådenegna datorn: url=u h?p://test.sharkdata.se/datasets/shark_zooplankton_1979_suse/shark_archive.zip sharkdata=urllib2.urlopen(url) output=open(u SHARK_Zooplankton_1979_SUSE.zip,'wb') output.write(sharkdata.read()) output.close() Normalskrivermane?längreprogramsomförstfrågarecervilkadataset somfinnsochladdarnerdesomärintressanta. 2014612602ArnoldAndreasson
SHARKdata,)API) SHARKdataärenREST6servervilketinnebära?allaanropkangörasvia adressradenienwebbläsare.a?kopieralänkarochklistrainimailfungerar ocksåbra. FörstadeleniadressenäradressenGllservern: http://sharkdata.se) Nästadelärnågontypavsamling,ide?afallsamlingenavdataset: http://sharkdata.se/datasets Tredjedelenäre?idisamlingen,ide?afallete?namnpåe?dataset:.../datasets/SHARK_Zooplankton_1979_SUSE Fjärdedelbeskrivervadochvilkenpåvilketformatmanvillläsahämta:.../SHARK_Zooplankton_1979_SUSE/metadata.json.../SHARK_Zooplankton_1979_SUSE/metadata.xml.../SHARK_Zooplankton_1979_SUSE/data.txt.../SHARK_Zooplankton_1979_SUSE/shark_archive.zip.../SHARK_Zooplankton_1979_SUSE/dwc_archive.zip 2014612602ArnoldAndreasson
SHARKdatas)hantering)av)metadata) ISHARKsArkivformatfinnsmetadataendastsomen key/value 6lista. Fråndennalistagårdeta?skapametadataenligtolikastandards. Exempel BoundingBox : 2014612602ArnoldAndreasson... min_longitude:11.4367) max_longitude:11.5433) min_lagtude:58.26) max_lagtude:58.32) shark_metadata_auto.txt... <gmd:extent> <gmd:ex_extent> <gmd:geographicelement> <gmd:ex_geographicboundingbox> <gmd:extenttypecode> <gco:boolean>1</gco:boolean> </gmd:extenttypecode> <gmd:westboundlongitude> <gco:decimal>11.4367</gco:decimal> </gmd:westboundlongitude> <gmd:eastboundlongitude> <gco:decimal>11.5433</gco:decimal> </gmd:eastboundlongitude> <gmd:southboundlagtude> <gco:decimal>58.26</gco:decimal> </gmd:southboundlagtude> <gmd:northboundlagtude> <gco:decimal>58.32</gco:decimal> </gmd:northboundlagtude> </gmd:ex_geographicboundingbox> </gmd:geographicelement> </gmd:ex_extent> </gmd:extent> iso19139.xml... <dataext> <geoele> <GeoBndBox> <westbl>11.4367</westbl> <eastbl>11.5433</eastbl> <southbl>58.26</southbl> <northbl>58.32</northbl> </GeoBndBox> </geoele> </dataext> CDI.xml)(SeaDataNet)... <coverage> <geographiccoverage> <boundingcoordinates> <westboundingcoordinate>11.4367</westboundingcoordinate> <eastboundingcoordinate>11.5433</eastboundingcoordinate> <northboundingcoordinate>58.32</northboundingcoordinate> <southboundingcoordinate>58.26</southboundingcoordinate> </boundingcoordinates> </geographiccoverage> </coverage> EML.xml)(DwCZA)
Data)ska)spridas!!!) EMODnet Bio ska börja skörda snart SHARKdata Analysportalen, SLU har börjat skörda från SHARKdata GBIF inte våra data ännu, men SLU:s data Plankton Toolbox är en typ av klient som ska kunna hämta data från SHARKdata 2014612602ArnoldAndreasson BiodiversityCatalogue och andra kataloger som skördar metadata
2014612602ArnoldAndreasson Öppen)och)fri)källkod/utveckling)
Exempel)på)öppen)utveckling:)Plankton)Toolbox) Plankton)Toolbox)äre?graGs nerladdningsbartprogramför personersomarbetarmed plankton. KanGllexempelhanteradata frånsharkwebochärladdad medargnformagonfrånnordic MicroalgaeochHELCOM6PEG. Somprojektplatsanvänds GoogleCode. Projektsidanfinnshär: h?p://plankton6toolbox.org GoogleCodeanvändsävenförSHARKdataochNordicmicroalgae. PlanktonToolboxanvändssomexempelecersomdärfinnsmest informagon. 2014612602ArnoldAndreasson
GooglecodeärgraGs för opensource 6 projekt. Varjeprojekthare? antalflikarmeddet nödvändigasteföra? drivae?projekt Gllsammans. Projecthome ärgll föra?geenöverblick överprojektet. Google)code:)Projektsida) 2014612602ArnoldAndreasson
Google)code:) Wiki )och) issues ) Wiki 6sidanärGllför dokumentagon. Editeringskerpåe?sä? sommotsvarareditering påwikipedia. Via Issues kanman rapporterafeloch föreslåförändringar. 2014612602ArnoldAndreasson
Source ärden vikggastedeldärall programkodlagras. Våraprojektanvänder Subversion(SVN)för versionshantering. Villmanarbetamed kodeninstallerarman ensvn6klientpåsin datorochcheckarut kodengllsinegen dator. Checkautkanallagöra medan commit kräveranvändareoch lösenord. Google)code:)Källkod) 2014612602ArnoldAndreasson
Licensval)för)programkod:)MIT) MITärenvanligtförekommandelicensför opensource. Iprincipsägerden: Duärfria?användadennakodGllvadduvill,Gllochmedikommersiella sammanhang,sålängeduintebyterlicensformellerskyllerpåossom någothänder. Kort,intesidauppochsidanermedjuridiskatexterpåengelska. FungerarallGdihopmedandralicenser. DetärliteavprogramvarornasmotsvarighetGllCC0. Merinfo:h?p://sv.wikipedia.org/wiki/MIT6licens ExempelfrånPythonkod: # Copyright (c) 2013-2014 SMHI, Swedish Meteorological and Hydrological Institute # License: MIT License (see LICENSE.txt or http://opensource.org/licenses/mit). 2014612602ArnoldAndreasson
TheMITLicense(MIT) Copyright(c)<year><copyrightholders> Licenstexten)för)MIT) Permissionisherebygranted,freeofcharge,toanypersonobtainingacopy ofthissocwareandassociateddocumentagonfiles(the"socware"),todeal inthesocwarewithoutrestricgon,includingwithoutlimitagontherights touse,copy,modify,merge,publish,distribute,sublicense,and/orsell copiesofthesocware,andtopermitpersonstowhomthesocwareis furnishedtodoso,subjecttothefollowingcondigons: TheabovecopyrightnoGceandthispermissionnoGceshallbeincludedin allcopiesorsubstangalporgonsofthesocware. THESOFTWAREISPROVIDED"ASIS",WITHOUTWARRANTYOFANYKIND,EXPRESSOR IMPLIED,INCLUDINGBUTNOTLIMITEDTOTHEWARRANTIESOFMERCHANTABILITY, FITNESSFORAPARTICULARPURPOSEANDNONINFRINGEMENT.INNOEVENTSHALLTHE AUTHORSORCOPYRIGHTHOLDERSBELIABLEFORANYCLAIM,DAMAGESOROTHER LIABILITY,WHETHERINANACTIONOFCONTRACT,TORTOROTHERWISE,ARISINGFROM, OUTOFORINCONNECTIONWITHTHESOFTWAREORTHEUSEOROTHERDEALINGSIN THESOFTWARE. 2014612602ArnoldAndreasson
Varför)öppen)och)fri)kod/utveckling?) Fråganärfelställd.Varförärinteallkodochutvecklingfriochöppen? Detfinnssäkertmångabraargumentförvarförmaninteskaläggautsinkod. Dettyngstaärnoga?detfakGsktkanvaraliteläskigta?låtaandraG?apå denegnakoden.detärbaraa?bitaihop,manvänjersig... Häräriallafallnågraargumentför: Ingenkodärfelfri.Alltypavgranskningärbra. Manstädarocalitebä?reikodsomärpublik,vilketärbra. Viskavararäddaomska?ebetalarnaspengar.Maximeraåtervinningav kodochsystem. Omdatavärdskapfly?asärdetenklarea?byggavidarepåredangjorda investeringar. Senasteversionenfinnspåenplats,intepånågonannanshårddisk. Detärkula?diskuteralösningarmedandraomalltärGllgängligtvia nätet.ännuroligareomnågonbyggervidarepådet. 2014612602ArnoldAndreasson
För)utvecklare)och)andra)intresserade) SHARKweb) HTML,JavaScript,AJAX,PHP,Postgresql/PostGIS.Dric:SMHI. Källkod:(InterntSMHI,ejfri?.) SHARKadm) Java.UI:SWT(sammasomEclipse).Dric:SMHIpåCitrix6server. Källkod:(InterntSMHI,ejfri?.) Nordic)Microalgae HTML,JavaScript,PHP.CMS6ramverk:Drupal.Data:Python,MySql. Licens:MITochGPL(pågrundavDrupal).Dric:ExternUbuntu6server. Källkod: h?p://code.google.com/p/nordic6microalgae h?ps://code.google.com/p/nordic6microalgae6web Plankton)Toolbox Python2.7.UI:Qt4/pyqt4.Licens:MIT.Dric:PåWindows,MacOSellerUbuntu. Källkodetc.:h?p://plankton6toolbox.org SHARKdata) Python2.7.Webbramverk:Django.Postgresql/PostGIS. Licens:MIT.Dric:ExternUbuntu6server. Källkodetc.:h?p://dev.sharkdata.se 2014612602ArnoldAndreasson
En)sista)fråga)innan)fikat...) Fråga: Vadhardataochgödselgemensamt? 2014612602ArnoldAndreasson
Svar: Bådagörbästny?anärdetsprids. 2014612602ArnoldAndreasson
Jagfixar gödsel......ja,ja.jagska baraspridalite dataförst. 2014612602ArnoldAndreasson