Add HIROXNIR (WIP)
TODO: manage fragment in canvas name (e.g. cr12_pz1)
This commit is contained in:
parent
38f0249fab
commit
b40073ca1e
17
src/Image.js
17
src/Image.js
@ -4,17 +4,26 @@ import IIIFResource from './IIIFResource.js';
|
||||
* @todo Move to common.js?!
|
||||
*/
|
||||
const splitter = {
|
||||
HIROXNIR: splitHIROXNIR,
|
||||
NIR: splitNIR,
|
||||
DN: splitDNO,
|
||||
DO: splitDNO,
|
||||
HSI: splitHSI
|
||||
};
|
||||
function splitHIROXNIR(filename) {
|
||||
let splitFilename = filename.split('_');
|
||||
const papyrusNum = splitFilename[0].split('-')[1];
|
||||
const baseFolder = `PHerc_${papyrusNum}`;
|
||||
const subfolder = `PHerc_${papyrusNum}_HIROXNIR`;
|
||||
|
||||
return {baseFolder, subfolder};
|
||||
}
|
||||
|
||||
function splitNIR(filename) {
|
||||
let splitFilename = filename.split('_');
|
||||
const papyrusNumb = splitFilename[0].split('-')[2];
|
||||
const baseFolder = `PHerc_${papyrusNumb}`;
|
||||
const subfolder = `PHerc_${papyrusNumb}_${splitFilename[2].split('-')[0]}`;
|
||||
const papyrusNum = splitFilename[0].split('-')[2];
|
||||
const baseFolder = `PHerc_${papyrusNum}`;
|
||||
const subfolder = `PHerc_${papyrusNum}_${splitFilename[2].split('-')[0]}`;
|
||||
|
||||
return {baseFolder, subfolder};
|
||||
}
|
||||
@ -79,7 +88,7 @@ class Image {
|
||||
* @param {string} filename The image's complete filename
|
||||
*/
|
||||
generateID(serviceURL, filename) {
|
||||
let splitFn = splitter[/(NIR|DO|DN|HSI)/.exec(filename)[0]];
|
||||
let splitFn = splitter[/((HIROX)?NIR|DO|DN|HSI)/.exec(filename)[0]];
|
||||
|
||||
const {baseFolder, subfolder} = splitFn(filename);
|
||||
|
||||
|
@ -16,13 +16,25 @@ const TECH_NAMES = {
|
||||
hsi: "SWIR Hyperspectral Imaging",
|
||||
uvf: "Technical Photography UVF",
|
||||
mbi: "Multispectral Imaging",
|
||||
md: "Digital Microscope",
|
||||
hiroxnir: "HIROX Near Infrared",
|
||||
}
|
||||
const authors = {
|
||||
DAN: 'Danilo P. Pavone',
|
||||
AUR: 'Aurélie Tournié',
|
||||
SAB: 'Sabrina Samelo',
|
||||
SOF: 'Sofia Ceccarelli',
|
||||
};
|
||||
/**
|
||||
* @param {string} imgFilename
|
||||
* @returns {{papyrus:string,imageAuthor:string,date:string}}
|
||||
*/
|
||||
function extractHIROXNIRMetadata(imgFilename) {
|
||||
return {
|
||||
papyrus: imgFilename.split('_')[0].split('-')[1],
|
||||
imageAuthor: authors[imgFilename.split('-')[0].replace(/\d{4}/,'')],
|
||||
date: imgFilename.split('-')[0].match(/\d{4}/)[0],
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @param {string} imgFilename
|
||||
* @returns {{papyrus:string,imageAuthor:string,date:string}}
|
||||
@ -71,7 +83,12 @@ Common.getParamsFromFolders = async function() {
|
||||
for (let p of papyri) {
|
||||
let techniques = [];
|
||||
for (let tech of await fs.promises.readdir(`${process.env.IMAGES_DIR}/${p}`)) {
|
||||
techniques.push(tech.replace(/PHerc_\d+_/i, ''));
|
||||
let files = await fs.promises.readdir(
|
||||
`${process.env.IMAGES_DIR}/${p}/${tech}`
|
||||
);
|
||||
if (files.length) {
|
||||
techniques.push(tech.replace(/PHerc_\d+_/i, ''));
|
||||
}
|
||||
}
|
||||
|
||||
params.push({
|
||||
@ -149,6 +166,7 @@ Common.createCanvas = async function (manifest, filename) {
|
||||
);
|
||||
|
||||
const namePos = {
|
||||
hiroxnir: 1,
|
||||
nir: 1,
|
||||
hsi: 1,
|
||||
do: 3,
|
||||
@ -157,6 +175,7 @@ Common.createCanvas = async function (manifest, filename) {
|
||||
|
||||
const canvasName = filename.split('_')[namePos[manifest.technique]]
|
||||
.replace(/\.\w{1,3}$/, '');
|
||||
|
||||
canvas.generateID(manifest.resourceId, canvasName);
|
||||
let label = canvasName
|
||||
.replace(/c(\w{1,2})0+(\d+).*(\.\w{2,3})?$/i, function (str, c, number) {
|
||||
@ -172,6 +191,8 @@ Common.createCanvas = async function (manifest, filename) {
|
||||
let image = new Image(canvas.id);
|
||||
image.generateID(process.env.IMAGE_SERVER_URL, filename);
|
||||
|
||||
console.log("DEBUG image.id: "+ image.id);
|
||||
|
||||
const imgSize = await this.getImageSize(image.id);
|
||||
image.setSize(imgSize.height, imgSize.width);
|
||||
|
||||
@ -237,6 +258,7 @@ Common.getMetadataFromImgName = function (imgFilename, technique) {
|
||||
dn: extractDNMetadata,
|
||||
do: extractDOMetadata,
|
||||
hsi: extractNIRMetadata,
|
||||
hiroxnir: extractHIROXNIRMetadata,
|
||||
}
|
||||
|
||||
return extractor[technique](imgFilename);
|
||||
|
Loading…
Reference in New Issue
Block a user