-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Url | .NET miljø | Branch |
---|---|---|
https://nin-kode-api.test.artsdatabanken.no | Staging | staging |
https://nin-kode-api.artsdatabanken.no | Production | master |
Repo : https://github.com/Artsdatabanken/nin3kodeapi_csvbuilder
Jupyter : https://notebooks.test.artsdatabanken.no/lab/tree/nin3kodeapi_csvbuilder
https://github.com/Artsdatabanken/nin-kode-api/projects/3
Orginalfiler for modeller og skisser ligger under T:\alle\nin3kodeapi\diagrammer_skisser
Løsningen består av 2 prosjekter, nin-kode-api og "csvbuilder".
"Csvbuilder" tar master regneark som input, tilpasser data fra regneark og deler dem opp i csv-filer.
I tillegg bygges rapportfilen som er en excel-versjon av databasen (mer om dette under kap. "Dataløype")
CSV filene importeres og brukes til å bygge databasen i .NET prosjektet, nin-kode-api. (Mer om dette under kap. "Dataløype")
- NiN3.Console - import av csv-filer og omforming til sqlite-database
- NinKode.WebApi - .net core 8 web api med ef core 8 som ORM
- Python 3.11+ ( Pandas (for datawrangling))
- Jupyter notebook extension for vscode
- Webbasert, (alternativt/test) "computing interface" for å jobbe med dataanalyse og datamanipulering i python/pandas.
Datamodellen er delt inn i 2 diagrammer en for type-klasser og en for variabel-klasser:
Konverteringer:
- Typeklasser: Hovedtypegruppe, hovedtype og grunntype har en løst knyttet relasjon til konverteringer via Kode og Klasse(Enum)
- Variabelklasser: Variabelnavn og trinn har en løst knyttet relasjon til konverteringer via Kode og Klasse(enum)
Forklaring til master regneark
Kolonnenavn nummer | Logisk navn | Kommentar |
---|---|---|
0 Dom, 1 Ver | Domene og Versjon | NiN-3.0 |
2 V/T | Type eller variabel | T eller V |
3 AbC | Økosystemnivå (EcosystNivaa) | A, B eller C |
4 kat1 | Typekategori | Neste nivå i treet (LI, LV, MV, PE eller SE) |
5 kat2 | Typekategori2 | Systembetegnelse (BM, EL, FL, IB, NA, NK, TM) |
6 kat3 | Typekategori3 | Bare relevant for NA; fordeles på MB og VM |
7 HTG | Hovedtypegruppe | 0 for ledd 3 [4 ] = SE (naturkompleks) |
8 Pk | Prosedyrekategori | 0 hvis ikke relevant |
9 HT | Hovedtype | to sifre, fortløpende nummerering |
10 GT/kE | - | grunntype (G) eller kartleggingsenhet |
11 GT | Grunntype (delkode) | to eller tre sifre, fortløpende nummerering |
(Kilde: Rune Halvorsen, NHM)
Kodeledd nummer | Kodeledd forklaring | Kolonnenavn nummer | Logisk navn | Kommentar/eksempel |
---|---|---|---|---|
0 | System | 0 Dom | - | NiN |
1 | Versjon | 1 Ver | - | 3.0 |
2 | Typesystem/Variabelsystem | 2 V/T | - | T eller V |
3 | Naturegenskap, nivå 1 | 3 AbC | - | A eller B |
4 | Naturegenskap, nivå 2 | 4 NM | - | M eller N |
5 | Naturegenskap, nivå 3 | 5 kat | - | Inndeling i 13 aggregerte egenskapskategorier |
6 | Naturegenskap, nivå 4 | 6 FG/EK | - | Statistisk variabeltype F/G, K/E |
7 | Variabelgruppe | 7 Varkode1 | - | Tobokstavkode for noen variabelgrupper, ellers W |
8 | Variabelbetegnelse | 8 Varkode 2 | - | Tobokstavkode |
9 | Artskode | (9 Art) | - | Bare i RA, ellers W |
10 | Måleskala | 10 Målesk | - | Kode, oftest 2 bokstaver/sifre |
11 | Trinn/klassebetegnelse | 11 Tr/Kl | - | Skilt fra foregående ledd av «_» |
(Kilde: Rune Halvorsen, NHM)
Regler for oppretting av kortkoder
Typesystem/ egenskapskategori | Generaliseringsnivå | Eksempel | Formel, NiN3SD1 | Formel, nytt masterark |
---|---|---|---|---|
[4] = LV Landformvariasjon | Hovedtypegruppe | FL-A | [5]-[7] | [5 kat2]-[7 HTG] |
[4] = LV Landformvariasjon | Hovedtype | FL-A01 | [5]-[7][9] | [5 kat2]-[7 HTG][9 HT] |
[4] = MV Marine vannmasser | Hovedtypegruppe | MV-A | [4]-[7] | [4 kat1]-[7 HTG] |
[4] = MV Marine vannmasser | Hovedtype | MV-A01 | [4]-[7][9] | [4 kat1]-[7 HTG][9 HT] |
[5] = LA Landskap | Hovedtypegruppe | LA-I | [5]-[7] | [5 kat2]-[7 HTG] |
[5] = LA Landskap | Hovedtype | LA-I01 | [5]-[7][9] | [5 kat2]-[7 HTG][9 HT] |
[5] = LA Landskap | Grunntype | I01-001 | [7][9]-[11] | [7 HTG][9 HT]-[11 Tr/Kl] |
[5] = NA Natursystem | Hovedtypegruppe | NA-M | [5]-[7] | [5 kat2]-[7 HTG] |
[5] = NA Natursystem | Hovedtype | NA-MA01 | [5]-[7][8][9] | "[5 kat2]-[7 HTG][8 Pk][9 HT]" |
[5] = NA Natursystem | Grunntype | MA01-01 | [7][8][9]-[11] | "[7 HTG][8 Pk][9 HT]-[11 Tr/Kl]" |
[5] = NA Natursystem | Kartleggingsenhet | MA01-M005-01 | [7][8][9]-[10]-[11] | "[7 HTG][8 Pk][9 HT]-[10 GT/kE]-[11 Tr/Kl]" |
[5] = NK Naturkompleks | Hovedtypegruppe | NK-C | [5]-[7] | [5 kat2]-[7 HTG] |
[5] = NK Naturkompleks | Hovedtype | NK-C01 | [5]-[7][9] | [5 kat2]-[7 HTG][9 HT] |
[4] = LI Livsmedium | Hovedtypegruppe | LI-MS | [4]-[7] | [4 kat1]-[7 HTG] |
[4] = LI Livsmedium | Hovedtype | LI-MS01 | [4]-[7][9] | [4 kat1]-[7 HTG][9 HT] |
[4] = LI Livsmedium | Grunntype | MS01-01 | [7][9]-]11] | [7 HTG][9 HT]-[11 Tr/Kl] |
(Kilde: Rune Halvorsen, NHM)
Typesystem/ egenskapskategori | Generaliseringsnivå | Eksempel | Formel, NiN3SD1 | Formel, nytt masterark |
---|---|---|---|---|
[5] = LO, NO*, RM, LM. KM, TF, RS, MD, MO, SA, AD, VS | - | LO-BH | [5]-[8] | [5 kat]-[8 Varkode 2] |
[5] = NO**, RA | - | NO-GA-S | [5]-[8]-[9] | [5 kat]-[8 Varkode 2]-[9 Art] |
(*) - Variabler som ikke angir en artsspesifikk egenskap
(**) - Variabler angir en artsspesifikk egenskap; S i kodeledd 10 angir artsnavn
a) :
- Nytt master regneark hentet fra fellesområde på teams.( Bilde )
- Dokumentet CSV_produksjon/inn_data/endringslogg.csv oppdateres med relevante endringer.
b) :
- Notebook nin3csv.ipynb kjøres for å produsere nytt sett med csv-filer.
- Forrige sett med csv-filer blir zippet ned og flyttes til mappen CSV_produksjon/archive
c - d) :
- csv-filene kopieres manuelt over til .net prosjektet (Bilde)
e) :
- I Visual studio, kjør testene i prosjektet NiN3.Tests og undersøk evt. tester som feiler.
-
- Det vil i tillegg bli produsert en logg-fil i katalogen _C:\temp_ som viser evt. feil og mangler.
- Etter at tester ser ok ut, start konsollapplikasjonen, NiN3.Console.
- Kjøre kommandoen "wipe" for å opprette DB på ny med nye data. (Det er foreløpig ikke implementert støtte for å legge en høyere versjon på den forrige)
- Kjør deretter kommandoen "makeDB" for å bygge ny databasefil.
f) :
- Det vil bli opprettet en midlertidig database-fil på stien C:\temp\nin3kodeapi.db
- I samme katalog (_C:\temp_) blir det opprettet en logg fra oppretting av databasen (timestamp som suffix i filnavn)
hvor evt. feil og mangler blir logget.(Bilde)
g) :
- Med NiN3.Console kjør kommandoen "copy"
- (Ny databasefil kopieres over til web-prosjektet ( Bilde) )
h, i) : Opprettelse av Excel-rapport, csvbuilder:
- Sørg for at siste utgave av database filen ligger under 3_0_excel\db
- Åpne notebook 3_0_excel\OpprettExcel.ipynb og klikk i øverste kodeblokk og kjør denne med Ctrl+Enter ( Bilde) )
- Ny rapport fil blir generert, filsti: 3_0_excel\ut\api\nin3_0.xlsx
j, k) :
- Kopier rapportfilen fra forrige til .Net webprosjektet NinKode.WebApi\report_data\3_0\nin3_0.xlsx( Bilde)
- Deploy med commit og push (branch staging går til staging, master går til prod)