Skip to content

Commit

Permalink
Gjenbruk av bilder for landskapstyper (#511)
Browse files Browse the repository at this point in the history
* Bilder på typeinndeling

* Reservebilder også for kataloger uten data

* Bilder på typeinndeling

* Reservebilder også for kataloger uten data

* Gjenbruk av bilder for landskapstyper
  • Loading branch information
bjornreppen authored Mar 29, 2019
1 parent 4e36fe6 commit dcb9b6f
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 5 deletions.
4 changes: 4 additions & 0 deletions steg/02/landskap.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@ importer(
"Natur_i_Norge/Landskap/Landskapsgradient/relasjon_til_natursystem.csv",
"relasjon_til_natursystem"
)
importer(
"Natur_i_Norge/Landskap/bilder_som_gjenbrukes.csv",
"landskap_bilder_som_gjenbrukes"
)

function importer(csvFil, utFil) {
const kildefil = config.kildedataPath + "/" + csvFil
Expand Down
36 changes: 31 additions & 5 deletions steg/13/reservebilder.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,61 @@ const typesystem = require("@artsdatabanken/typesystem")
const path = require("path")
let tre = io.lesDatafil("metabase_med_url")
let hierarki = io.lesDatafil("kodehierarki")
const mapfiles = io.lesDatafil("filindeks")
const filindeks = io.lesDatafil("filindeks")
const barnAv = hierarki.barn

let script = []
// Forventer følgende katalogstruktur på tile serveren:
// /type/subtype/.../format.projeksjon.filtype
// Dvs. at rotkatalog betraktes som klasse av data, eks. gradient eller trinn
finnReserverbilder()
finnBilderSomKanGjenbrukesForLandskap()
io.skrivDatafil(__filename, script)

function finnBilderSomKanGjenbrukesForLandskap() {
const map = io.lesDatafil("landskap_bilder_som_gjenbrukes.csv.json")
map.forEach(e => {
const mål = tre["NN-LA-" + e.]
const kilde = tre[e["bruk bilde fra"].replace("LA-", "NN-LA-TI-")]
const målbilde = bildefil(mål.url)
if (målbilde) return
const kildebilde = bildefil(kilde.url)
if (!kildebilde) return
dupliser(kilde.url, kildebilde, mål.url)
})
}

function bildefil(url) {
const maps = filindeks[url]
if (!maps) return null
if (maps["forside_408.jpg"]) return "forside_408.jpg"
if (maps["forside_408.png"]) return "forside_408.png"
return null
}

function finnReserverbilder() {
Object.keys(tre).forEach(xkode => {
if (xkode === "~") debugger
const node = tre[xkode]
const maps = mapfiles[node.url]
const maps = filindeks[node.url]
if (maps && maps["forside_408.jpg"]) return // Already have an image
const barn = barnAv[xkode]
if (!barn) return
barn.sort((a, b) => a > b)
for (let i = 0; i < barn.length; i++) {
const bn = tre[barn[i]]
const burl = bn.url
const filer = mapfiles[burl]
const filer = filindeks[burl]
if (!filer) continue
const bilde = filer["forside_408.png"] || filer["forside_408.jpg"]
if (!bilde) return
script.push(`cp -n ${burl}/${bilde.filename} ${node.url}/`)
log.warn(`cp -n ${burl}/${bilde.filename} ${node.url}/`)
dupliser(burl, bilde.filename, node.url)
break
}
})
}

function dupliser(kildeUrl, bildefilnavn, målUrl) {
script.push(`cp -n ${kildeUrl}/${bildefilnavn} ${målUrl}/`)
log.warn(`cp -n ${kildeUrl}/${bildefilnavn} ${målUrl}/`)
}

0 comments on commit dcb9b6f

Please sign in to comment.