Kuvapankin ja Hyönteistietokannan kuvien ohjelmallinen käyttö

Matti Virtala, 2013


1. Johdanto

2. Kuvapankki
2.1 Kuvapankin ohjelmallinen rajapinta

3. Hyönteistietokanta
3.1. Hyönteistietokannan ohjelmallinen rajapinta

4. Sovellusesimerkkejä
4.1 Toukkaviki
4.2 Omaviki
4.3 Kuvapankista puuttuvat lajikuvat


1. Johdanto

Hyönteiskuvia voi tallettaa sekä kuvapankkiin että hyönteistietokantaan. Kuvapankin tarkoitus on toimia lähinnä lajintuntemuksen apuvälineenä, joten sinne kannattaa lähettää kuva erityisesti silloin, jos lajista on vähän kuvia, tai uusi kuva on muuten erityisen hieno tai mielenkiintoinen. Hyönteistietokannan havaintoon voi liittää kuvan, jos se auttaa varmistumaan lajinmäärityksestä tai kuva muuten sisältää jotain havaintoon liittyvää arvokasta tietoa.

Kuvapankki löytyy osoitteesta http://insects.fi/insectimages/browser, ja sivulta voi myös avata havainnon tallennuslomakkeen:




Kuvan tallennuslomake on seuraavanlainen:



Jos pikkukuvaa ei ilmoiteta, ohjelma tekee sellaisen itse varsinaisesta kuvasta pienentämällä. Koska lopputulos voi joskus olla hieman epätyydyttävä, kannattaa pikkukuva tehdä itse, mikäli käytettävissä on tarkoitukseen sopiva kuvankäsittelyohjelma.


Hyönteistietokannan havaintoon voi liittää kuvan osoitteessa http://hyonteiset.luomus.fi/insects/main/EntDatabase.html toimivan käyttöliittymän avulla, valitsemalla toiminnon Korjaa havaintoa:








Jos havaintoon on liitetty kuvia, ne näkyvät havaintotietojen yhteydessä, esim. My Insects JS-ohjelmassa seuraavasti:




Hyönteistietokannan havaintoon voi viitata seuraavasti:

http://hyonteiset.luomus.fi/insects/comment?insectGroup=Coleoptera&obsID=0459-7763-5493-9681:




Hyönteistietokantaan talletettuja lajikuvia voi selata samaan tapaan kuin kuvapankinkin kuvia:

http://hyonteiset.luomus.fi/insects/template?content=imageBrowser&file=ImageBrowserPage.ftl&insectGroup=Coleoptera




Kuvapankki on mahdollista avata suoraan halutun suvun kohdalle seuraavasti:

http://insects.fi/insectimages/browser?order=LEP&family=Arctiidae&genus=Spilosoma




Lajisivun voi avata seuraavasti:

http://insects.fi/insectimages/browser?order=LEP&family=Lycaenidae&genus=Lycaena&species=virgaureae




Yksittäiseen kuvapankin kuvaan voi viitata seuraavasti:

http://insects.fi/insectimages/file?dir=images&file=Lepidoptera/Lymantriidae/Euproctis/similis/Euproctis similis 06.jpg




Sekä kuvapankki että hyönteistietokanta tarjoavat myös ohjelmallisen rajapinnan kuvien hakemiseen. Seuraavassa selostetaan tarkemmin, miten kuvia voi hyödyntää sopivien ohjelmien avulla.


2. Kuvapankki

2.1. Kuvapankin ohjelmallinen rajapinta

Kuvapankki tarjoaa ohjelmallisen JSON-rajapinnan tietojen hakemiseen. JSON-rajapinnan käyttöä on selostettu tarkemmin esimerkkien avulla dokumentissa Hyönteistietokannan ohjelmointi, joten siihen kannattaa perehtyä, koska kuvapankin ohjelmallinen käyttö toimii samalla tavalla. Perusideana on se, että kuvien tiedot haetaan JavaScript-ohjelman avulla ja tiedot muunnetaan html-tekstiksi joka sitten sijoitetaan varsinaiselle html-sivulle tiedolle varattuun kohtaan.

Kuvapankin rajapinta sisältää seuraavat funktiot:


getFamilies()

getFamilies() palauttaa listan kaikista niistä heimoista, joista on kuvia kuvapankissa

http://insects.fi/insectimages/json?op=getFamilies&order=col




getGenera()

getGenera() tulostaa listan niistä annetun heimon suvuista, joista on kuvia kuvapankissa

http://insects.fi/insectimages/json?op=getGenera&order=col&family=Carabidae




getSpecies()

getSpecies() listaa ne annetun suvun lajit, joista on kuvia kuvapankissa

http://insects.fi/insectimages/json?op=getSpecies&order=col&family=Carabidae&genus=Carabus




getFamilies(), getGenera() ja getSpecies()-funktiot palauttavat arvot oletusarvoisesti aakkosjärjestyksessä. Tulostuksen saa järjestysnumeron perusteella lisäämällä ehdon orderBy=speciesNbr:

http://insects.fi/insectimages/json?op=getFamilies&order=col&orderBy=speciesNbr
http://insects.fi/insectimages/json?op=getGenera&order=col&family=Carabidae&orderBy=speciesNbr
http://insects.fi/insectimages/json?op=getSpecies&order=col&family=Carabidae&genus=Carabus&orderBy=speciesNbr


getFamilies(), getGenera() ja getSpecies()-funktioihin voi myös antaa lisäparametrina yleisen hakuehdon. Ehdossa voi käyttää seuraavia kenttiä:

storingYear
imgCategory
imgRank
photographer
personalID



Esimerkiksi personalID kenttää voi käyttää seuraavasti:

    http://insects.fi/insectimages/json?op=getFamilies&order=col&condition=personalID='oma-tunnus'

Kentän imgCategory mahdolliset arvot ovat

collectionSpecimen
liveSpecimen
detail
egg
larva
pupa
habitat
other


Jos haluaa listata esimerkiksi vain toukkakuvat, voi käyttää ehtoa

    http://insects.fi/insectimages/json?op=getSpecies
                            &order=lep&family=Arctiidae&genus=Cybosia&
condition=imgCategory='larva'


Esimerkiksi Toukkaviki-sovellus käyttää seuraavanlaista getSpecies()-kutsua:




getAllSpecies()

getAllSpecies()listaa kaikki lahkon tai heimon lajit, joista kuvapankissa on kuvia.

http://insects.fi/insectimages/json?op=getAllSpecies&order=lep
http://insects.fi/insectimages/json?op=getAllSpecies&order=lep&family=Lasiocampidae

http://insects.fi/insectimages/json?op=getAllSpecies&order=lep&orderBy=speciesNbr
http://insects.fi/insectimages/json?op=getAllSpecies&order=lep&family=Lasiocampidae&orderBy=speciesNbr


getMissingSpecies()

getMissingSpecies()listaa kaikki lahkon tai heimon lajit, joista kuvapankissa ei ole kuvaa.

http://insects.fi/insectimages/json?op=getMissingSpecies&order=lep
http://insects.fi/insectimages/json?op=getMissingSpecies&order=lep&family=Coleophoridae

http://insects.fi/insectimages/json?op=getMissingSpecies&order=lep&orderBy=speciesNbr
http://insects.fi/insectimages/json?op=getMissingSpecies&order=lep&family=Coleophoridae&orderBy=speciesNbr


getSpeciesImages()

getSpeciesImages() listaa annetun lajin kuvat

http://insects.fi/insectimages/json?op=getSpeciesImages&order=col&family=Carabidae&genus=Carabus&species=hortensis




getImageData()

getImageData() listaa annetun lajin kuvista kaikki talletetut tiedot

http://insects.fi/insectimages/json?op=getImageData&order=col&&genus=Carabus&species=hortensis




getPhotographers()

getPhotographers() tuottaa listan kuvapankkiin kuvia lähettäneistä henkilöistä

http://insects.fi/insectimages/json?op=getPhotographers&order=col




getLatestImages()

getLatestImages() listaa 40 kuvapankkiin viimeksi lähetettyä kuvaa:

http://insects.fi/insectimages/json?op=getLatestImages

Ilmoittamalla hyönteislahkon rajoittuu listaus ko. lahkon uusimpiin kuviin:

http://insects.fi/insectimages/json?op=getLatestImages&order=col




search()

search() on yleinen metodi tietojen hakemiseen. Hakuehtoina voi käyttää seuraavien kenttien arvoja:

storingYear
order
family
genus
species
imgCategory
imgRank
photographer
personalID


Metodi palauttaa seuraavat kuvan tiedot:

imageNbr
storingDate
edited
order
family
genus
species
det
detYear
fileName
imgCategory
imgRank
imgDescription
collection
collectionImageDate
region
county
locality
coordinates
day
month
year
photographer
permission
note


Esimerkiksi omat vuonna 2012 lähetetyt perhoskuvat voi listata seuraavasti:

    http://insects.fi/insectimages/json?op=search&order=lep&storingYear=2012&personalID=oma-tunnus



3. Hyönteistietokanta

3.1. Hyönteistietokannan ohjelmallinen rajapinta

Hyönteistietokanta tarjoaa seuraavat lajikuvien hakemiseen tarkoitetut funktiot:


getFamiliesWithImages()

getFamiliesWithImages()tuottaa listan niistä heimoista, joista löytyy lajikuvia

http://hyonteiset.luomus.fi/insects/json?op=getFamiliesWithImages&order=lep




getGeneraWithImages()


getGeneraWithImages()listaa ne annetun heimon suvut, joista on lajikuvia

http://hyonteiset.luomus.fi/insects/json?op=getgetGeneraWithImages&order=lep&family=Lasiocampidae


getSpeciesWithImages()

getSpeciesWithImages()listaa ne annetun heimon ja suvun lajit, joista hyönteistietokannassa on kuvia

http://hyonteiset.luomus.fi/insects/json?op=getSpeciesWithImages&order=lep&family=Lasiocampidae&genus=Cosmotriche


getFamiliesWithImages(), getGeneraWithImages() ja getSpeciesWithImages()-metodit listaavat heimot, suvut tai lajit oletusarvoisesti aakkosjärjestyksessä. Listauksen saa systemaattisessa järjestyksessä lisäämällä hakuun ehdon orderBy=speciesNbr.


getAllSpeciesWithImages()

getAllSpeciesWithImages()listaa kaikki lahkon tai heimon lajit, joista hyönteistietokannassa on kuvia.

http://hyonteiset.luomus.fi/insects/json?op=getAllSpeciesWithImages&order=lep
http://hyonteiset.luomus.fi/insects/json?op=getAllSpeciesWithImages&order=lep&family=Lasiocampidae

http://hyonteiset.luomus.fi/insects/json?op=getAllSpeciesWithImages&order=lep&orderBy=speciesNbr
http://hyonteiset.luomus.fi/insects/json?op=getAllSpeciesWithImages&order=lep&family=Lasiocampidae&orderBy=speciesNbr


getSpeciesImages()

getSpeciesImages() listaa tiedot annetun lajin havaintokuvista:

http://hyonteiset.luomus.fi/insects/json?op=getSpeciesImages&order=lep&family=Lasiocampidae&genus=Cosmotriche&species=lobulina




getImageData()

getImageData()listaa anettuun havaintoon liitettyjen kuvien tiedot:

http://hyonteiset.luomus.fi/insects/json?op=getImageData&order=lep&obsID=6297-5341-9349-0818




getLatestImages()

getLatestImages()listaa 40 uusinta hyönteistietokantaan talletettua lajikuvaa:

http://hyonteiset.luomus.fi/insects/json?op=getLatestImages&order=lep




Yksittäiseen hyönteistietokannan havaintokuvaan voi viitata seuraavasti:

http://hyonteiset.luomus.fi/insects/file?dir=images&file=Lepidoptera\LEP_8086-5343-0484-4378(1).jpg


Tietyn havainnon havaintosivuun voi viitata seuraavasti:

http://hyonteiset.luomus.fi/insects/comment?insectGroup=Lepidoptera&obsID=8086-5343-0484-4378


Tietyn havainnon havaintokuvien tiedot saa seuraavasti:

http://hyonteiset.luomus.fi/insects/json?op=getObservationData&order=lep&obsID=8086-5343-0484-4378




4. Sovellusesimerkkejä

4.1. Toukkaviki

Toukkavikin aloitussivu on seuraavanlainen:

Sivulla on kaksi komponenttia: otsikko ja heimoluettelo. Sivun html-koodi on seuraavanlainen:




JavaScript-tiedosto OrderPage.js tulostaa etusivulle hyönteislahkon nimen ja hakee heimoluettelon kuvapankista, käyttäen ehtoa imgCategory='larva':




Toukkavikin lajisivu on seuraavanlainen:



Toukkaviki-sovelluksen toimintaa ei tässä selosteta tarkemmin. Sovelluksen ohjelmakoodin voi ladata tästä. Koodia tutkimalla saanee aika hyvän käsityksen siitä, miten kuvapankin ohjelmallista rajapintaa on siinä hyödynnetty.

Toukkavikiä voi myös kokeilla osoitteessa http://insects.fi/entdatabase4/plugins-html/Toukkaviki/Viki.html?order=Lepidoptera.


4.2. Omaviki
Omavikin avulla voi selata omia kuvapankkiin lähettämiään kuvia. Sovelluksen sukusivu on esimerkiksi seuraavanlainen:




Omaviki on tehty samalla tavalla kuin toukkaviki ja melkeinpä ainoa muutos on se, että omaviki käyttää ehdon imgCategory='larva' sijasta ehtoa personalID='oma-tunnus'. Sovelluksen koodin voi ladata tästä ja sitä voi myös kokeilla osoitteessa http://insects.fi/entdatabase4/plugins-html/Omaviki/Viki.html?order=&personalID= (huom: lisää osoiteriville hyönteislahko ja oma kuvapankin henkilöID-tunnuksesi).


4.3. Kuvapankista puuttuvat lajikuvat

Puuttuvat lajit-sovellus tulostaa niiden lajien nimet, joista kuvapankissa ei ole kuvaa:




Sovellus tarkistaa myös hyönteistietokannan havaintokuvat ja ilmoittaa, jos kuvapankista puuttuvista lajeista on kuva hyönteistietokannassa:





havainnontunnusta klikkaamalla saa näkyviin havainnon tarkemmat tiedot:





Puuttuvat lajit sovelluksen voi ladata tästä.