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