SDI Indexer scan for coordinates
This commit is contained in:
parent
8ff0cee95a
commit
9e9c696909
|
@ -42,11 +42,10 @@ public abstract class AbstractProfiledDocumentsTests extends BasicServiceTestUni
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected abstract WebTarget baseTarget();
|
protected abstract WebTarget baseTarget();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAll() {
|
public void getAll() {
|
||||||
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
package org.gcube.application.cms.sdi.engine.bboxes;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.bson.Document;
|
||||||
|
import org.gcube.application.cms.serialization.Serialization;
|
||||||
|
import org.gcube.application.geoportal.common.model.JSONPathWrapper;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.filesets.sdi.GCubeSDILayer;
|
||||||
|
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class BBOXByCoordinatePaths extends BBOXEvaluator{
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ToString
|
||||||
|
public static class CoordinatesPathBean{
|
||||||
|
private String x;
|
||||||
|
private String y;
|
||||||
|
private String z;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public BBOXByCoordinatePaths() {
|
||||||
|
super("COORDINATES_PATH");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isConfigured(Document profileConfiguration) {
|
||||||
|
return profileConfiguration.containsKey("coordinatesPath");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GCubeSDILayer.BBOX evaluate(Document profileConfiguration, UseCaseDescriptor useCaseDescriptor, JSONPathWrapper documentNavigator) {
|
||||||
|
List coordsConfig=profileConfiguration.get("coordinatesPaths",List.class);
|
||||||
|
GCubeSDILayer.BBOX toSet = null;
|
||||||
|
for(Object coordsObj:coordsConfig){
|
||||||
|
log.debug("UseCaseDescriptor {} : Evaluating coords {} ", useCaseDescriptor.getId(),coordsObj);
|
||||||
|
CoordinatesPathBean bean = Serialization.convert(coordsObj,CoordinatesPathBean.class);
|
||||||
|
|
||||||
|
// x
|
||||||
|
if(bean.getX()!=null)
|
||||||
|
// for found
|
||||||
|
for(Double x : documentNavigator.getByPath(bean.getX(),Double.class)) {
|
||||||
|
if(toSet == null) toSet = new GCubeSDILayer.BBOX();
|
||||||
|
if (toSet.getMinX()==null || x< toSet.getMinX()) toSet.setMinX(x);
|
||||||
|
if (toSet.getMaxX()==null || x> toSet.getMaxX()) toSet.setMaxX(x);
|
||||||
|
}
|
||||||
|
// y
|
||||||
|
if(bean.getY()!=null)
|
||||||
|
// for found
|
||||||
|
for(Double y : documentNavigator.getByPath(bean.getY(),Double.class)) {
|
||||||
|
if(toSet == null) toSet = new GCubeSDILayer.BBOX();
|
||||||
|
if (toSet.getMinY()==null || y< toSet.getMinY()) toSet.setMinY(y);
|
||||||
|
if (toSet.getMaxY()==null || y> toSet.getMaxY()) toSet.setMaxY(y);
|
||||||
|
}
|
||||||
|
// z
|
||||||
|
if(bean.getZ()!=null)
|
||||||
|
// for found
|
||||||
|
for(Double z : documentNavigator.getByPath(bean.getZ(),Double.class)) {
|
||||||
|
if(toSet == null) toSet = new GCubeSDILayer.BBOX();
|
||||||
|
if (toSet.getMinZ()==null || z< toSet.getMinZ()) toSet.setMinZ(z);
|
||||||
|
if (toSet.getMaxZ()==null || z> toSet.getMaxZ()) toSet.setMaxZ(z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return toSet;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package org.gcube.application.cms.sdi.engine.bboxes;
|
||||||
|
|
||||||
|
import lombok.NonNull;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.bson.Document;
|
||||||
|
import org.gcube.application.cms.serialization.Serialization;
|
||||||
|
import org.gcube.application.geoportal.common.model.JSONPathWrapper;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.filesets.sdi.GCubeSDILayer;
|
||||||
|
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@ToString
|
||||||
|
@Slf4j
|
||||||
|
public abstract class BBOXEvaluator {
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public abstract boolean isConfigured(Document profileConfiguration);
|
||||||
|
public abstract GCubeSDILayer.BBOX evaluate(Document profileConfiguration, UseCaseDescriptor useCaseDescriptor, JSONPathWrapper documentNavigator);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package org.gcube.application.cms.sdi.engine.bboxes;
|
||||||
|
|
||||||
|
import lombok.NonNull;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.bson.Document;
|
||||||
|
import org.gcube.application.cms.serialization.Serialization;
|
||||||
|
import org.gcube.application.geoportal.common.model.JSONPathWrapper;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.filesets.sdi.GCubeSDILayer;
|
||||||
|
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class BBOXPathScanner extends BBOXEvaluator{
|
||||||
|
|
||||||
|
|
||||||
|
public BBOXPathScanner() {
|
||||||
|
super("BBOX PATH SCANNER");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isConfigured(Document profileConfiguration) {
|
||||||
|
return profileConfiguration.containsKey("bboxEvaluation");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GCubeSDILayer.BBOX evaluate(Document profileConfiguration, UseCaseDescriptor useCaseDescriptor, JSONPathWrapper documentNavigator) {
|
||||||
|
List bboxEvaluationPaths = profileConfiguration.get("bboxEvaluation",List.class);
|
||||||
|
GCubeSDILayer.BBOX toSet = null;
|
||||||
|
for(Object pathObj : bboxEvaluationPaths){
|
||||||
|
log.debug("UseCaseDescriptor {} : Evaluating path {} ", useCaseDescriptor.getId(),pathObj);
|
||||||
|
List<Object> bboxObjects = documentNavigator.getByPath(pathObj.toString());
|
||||||
|
log.debug("UseCaseDescriptor {} : Evaluating path {} .. results {} ", useCaseDescriptor.getId(),pathObj,bboxObjects);
|
||||||
|
for(Object bboxObject : bboxObjects) {
|
||||||
|
log.info("Matched path {}, value is {} ",pathObj.toString(),bboxObject);
|
||||||
|
GCubeSDILayer.BBOX box = Serialization.convert(bboxObject, GCubeSDILayer.BBOX.class);
|
||||||
|
|
||||||
|
if(toSet == null) toSet = box;
|
||||||
|
if(box.getMaxX()>toSet.getMaxX()) toSet.setMaxX(box.getMaxX());
|
||||||
|
if(box.getMaxY()>toSet.getMaxY()) toSet.setMaxY(box.getMaxY());
|
||||||
|
|
||||||
|
if(box.getMinX()<toSet.getMinX()) toSet.setMinX(box.getMinX());
|
||||||
|
if(box.getMinY()<toSet.getMinY()) toSet.setMinY(box.getMinY());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return toSet;
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,7 +9,9 @@ import org.gcube.application.cms.plugins.faults.IndexingException;
|
||||||
import org.gcube.application.cms.plugins.faults.InitializationException;
|
import org.gcube.application.cms.plugins.faults.InitializationException;
|
||||||
import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException;
|
import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException;
|
||||||
import org.gcube.application.cms.plugins.faults.InvalidProfileException;
|
import org.gcube.application.cms.plugins.faults.InvalidProfileException;
|
||||||
import org.gcube.application.cms.plugins.model.ComparableVersion;
|
import org.gcube.application.cms.sdi.engine.bboxes.BBOXByCoordinatePaths;
|
||||||
|
import org.gcube.application.cms.sdi.engine.bboxes.BBOXEvaluator;
|
||||||
|
import org.gcube.application.cms.sdi.engine.bboxes.BBOXPathScanner;
|
||||||
import org.gcube.application.geoportal.common.model.document.identification.IdentificationReference;
|
import org.gcube.application.geoportal.common.model.document.identification.IdentificationReference;
|
||||||
import org.gcube.application.geoportal.common.model.document.identification.SpatialReference;
|
import org.gcube.application.geoportal.common.model.document.identification.SpatialReference;
|
||||||
import org.gcube.application.geoportal.common.model.plugins.IndexerPluginDescriptor;
|
import org.gcube.application.geoportal.common.model.plugins.IndexerPluginDescriptor;
|
||||||
|
@ -58,10 +60,18 @@ public class SDIIndexerPlugin extends SDIAbstractPlugin implements IndexerPlugin
|
||||||
static final PluginDescriptor DESCRIPTOR=new PluginDescriptor("SDI-Indexer-Plugin",
|
static final PluginDescriptor DESCRIPTOR=new PluginDescriptor("SDI-Indexer-Plugin",
|
||||||
IndexerPluginDescriptor.INDEXER);
|
IndexerPluginDescriptor.INDEXER);
|
||||||
|
|
||||||
|
static final ArrayList<BBOXEvaluator> BBOX_EVALUATORS=new ArrayList<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
DESCRIPTOR.setDescription("SDI Indexer. " +
|
DESCRIPTOR.setDescription("SDI Indexer. " +
|
||||||
"Manage Centroids layers.");
|
"Manage Centroids layers.");
|
||||||
DESCRIPTOR.setVersion(new Semver("1.0.0"));
|
DESCRIPTOR.setVersion(new Semver("1.0.0"));
|
||||||
|
|
||||||
|
BBOX_EVALUATORS.add(new BBOXPathScanner());
|
||||||
|
BBOX_EVALUATORS.add(new BBOXByCoordinatePaths());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -151,30 +161,27 @@ public class SDIIndexerPlugin extends SDIAbstractPlugin implements IndexerPlugin
|
||||||
} else{
|
} else{
|
||||||
// unable to use current Spatial reference, try evaluating it
|
// unable to use current Spatial reference, try evaluating it
|
||||||
log.debug("UseCaseDescriptor {} : Getting evaluation paths from useCaseDescriptor.. ", useCaseDescriptor.getId());
|
log.debug("UseCaseDescriptor {} : Getting evaluation paths from useCaseDescriptor.. ", useCaseDescriptor.getId());
|
||||||
List bboxEvaluationPaths = profileConfiguration.get("bboxEvaluation",List.class);
|
|
||||||
if(bboxEvaluationPaths==null || bboxEvaluationPaths.isEmpty())
|
|
||||||
throw new Exception("Missing configuration bboxEvaluation");
|
|
||||||
|
|
||||||
|
// for each configuration option try until found
|
||||||
GCubeSDILayer.BBOX toSet = null;
|
GCubeSDILayer.BBOX toSet = null;
|
||||||
for(Object pathObj : bboxEvaluationPaths){
|
for(BBOXEvaluator evaluator : BBOX_EVALUATORS){
|
||||||
log.debug("UseCaseDescriptor {} : Evaluating path {} ", useCaseDescriptor.getId(),pathObj);
|
log.trace("UCD {}, Project {}. Evaluating BBOX with {}",useCaseDescriptor.getId(),project.getId(),evaluator);
|
||||||
List<Object> bboxObjects = documentNavigator.getByPath(pathObj.toString());
|
try{
|
||||||
log.debug("UseCaseDescriptor {} : Evaluating path {} .. results {} ", useCaseDescriptor.getId(),pathObj,bboxObjects);
|
if(evaluator.isConfigured(profileConfiguration)){
|
||||||
for(Object bboxObject : bboxObjects) {
|
toSet=evaluator.evaluate(profileConfiguration,useCaseDescriptor,documentNavigator);
|
||||||
log.info("Matched path {}, value is {} ",pathObj.toString(),bboxObject);
|
if(toSet!=null) {
|
||||||
GCubeSDILayer.BBOX box = Serialization.convert(bboxObject, GCubeSDILayer.BBOX.class);
|
log.info("UCD {}, Project {}. Evaluated BBOX {} with method {}",
|
||||||
|
useCaseDescriptor.getId(),project.getId(),toSet,evaluator);
|
||||||
if(toSet == null) toSet = box;
|
break;
|
||||||
if(box.getMaxX()>toSet.getMaxX()) toSet.setMaxX(box.getMaxX());
|
}
|
||||||
if(box.getMaxY()>toSet.getMaxY()) toSet.setMaxY(box.getMaxY());
|
}
|
||||||
|
}catch (Throwable t){
|
||||||
if(box.getMinX()<toSet.getMinX()) toSet.setMinX(box.getMinX());
|
log.warn("UCD {}, Project {}. Exception with {}",
|
||||||
if(box.getMinY()<toSet.getMinY()) toSet.setMinY(box.getMinY());
|
useCaseDescriptor.getId(),project.getId(),evaluator,t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(toSet== null)
|
||||||
if(toSet == null)
|
throw new IndexingException("No BBOX has been evaluated from project");
|
||||||
throw new IndexingException("No BBOX has been found on paths : "+bboxEvaluationPaths);
|
|
||||||
|
|
||||||
Double pointX=(toSet.getMaxX()-toSet.getMinX());
|
Double pointX=(toSet.getMaxX()-toSet.getMinX());
|
||||||
Double pointY = toSet.getMaxY()-toSet.getMinY();
|
Double pointY = toSet.getMaxY()-toSet.getMinY();
|
||||||
|
|
|
@ -1,34 +1,215 @@
|
||||||
{
|
{
|
||||||
"_id" : "MOSI",
|
"_id": "GNA-MOSI",
|
||||||
"_version" : "1.0.0",
|
"_mongoId": null,
|
||||||
"_name" : "GNA : MOSI",
|
"_version": "1.0.0",
|
||||||
|
"_name": "GNA : MOSI",
|
||||||
"_description" : "Modulistica siti",
|
"_description": "Modulistica siti",
|
||||||
"_creationInfo": {
|
"_handlers": [
|
||||||
"_user" : {
|
|
||||||
"_username": "fabio.sinibaldi"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
"_dataAccessPolicies" : [
|
|
||||||
{"_policy" : {"_read" : "own", "_write" : "own"}, "_roles":[]},
|
|
||||||
{"_policy" : {"_read" : "any", "_write" : "none"}, "_roles":["Guest"],
|
|
||||||
"_enforcer": {"_filter" : "{\"_lifecycleInformation._phase\" : {\"$eq\" : \"PUBLISHED\"}}"}},
|
|
||||||
{"_policy" : {"_read" : "any", "_write" : "none"}, "_roles":["Editor"]},
|
|
||||||
{"_policy" : {"_read" : "any", "_write" : "any"}, "_roles":["Admin"]}
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
"_handlers" : [
|
|
||||||
{
|
{
|
||||||
"_id" : "DEFAULT-SINGLE-STEP",
|
"_id": "DEFAULT-SINGLE-STEP",
|
||||||
"_type" : "LifecycleManagement",
|
"_type": "LifecycleManagement",
|
||||||
"_configuration" : {
|
"_configuration": {
|
||||||
"step_access" : [
|
"step_access": [
|
||||||
{"STEP" : "PUBLISH", "roles" :[]}
|
{
|
||||||
|
"STEP": "PUBLISH",
|
||||||
|
"roles": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "SDI-Indexer-Plugin",
|
||||||
|
"_type": "Indexer",
|
||||||
|
"_configuration": {
|
||||||
|
"explicitFieldMapping": [],
|
||||||
|
"additionalLayers": [
|
||||||
|
{
|
||||||
|
"source": {
|
||||||
|
"url": "..."
|
||||||
|
},
|
||||||
|
"toSetTitle": ""
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"_dataAccessPolicies": [
|
||||||
|
{"_policy": {"_read": "any","_write": "own"},"_roles": []}
|
||||||
|
],
|
||||||
|
"_schema" :{
|
||||||
|
"CD" : {"_min":1, "_label" : "IDENTIFICAZIONE","_children" :{
|
||||||
|
"TSK" : {"_min":1,"_type": "DIRECT-CL", "_values": ["MOSI"],"_label":"Tipo modulo"},
|
||||||
|
"CMD" : {"_min":1,"_label":"Codice modulo"},
|
||||||
|
"ESC" : {"_min":1,"_label":"Ente schedatore"},
|
||||||
|
"ECP" : {"_min":1,"_label":"Ente competente per tutela"},
|
||||||
|
"CBC" : {"_label":"Identificativo scheda bene culturale"},
|
||||||
|
"ACC" : {"_max":-1,"_label":"ALTRO CODICE", "_children": {
|
||||||
|
"ACCE" : {"_label": "Ente/soggetto responsabile","_type": "DIRECT-CL", "_values": ["MATTM","Regione","Ente Territoriale","GNA"]},
|
||||||
|
"ACCC" : {"_label": "Codice Identificativo","_type": "DIRECT-CL", "_values": ["MATTM","Regione","Ente Territoriale","GNA"]},
|
||||||
|
"ACCS" : {"_label" : "Note"}}}}},
|
||||||
|
"OG" : {"_label": "AREA/SITO","_children": {
|
||||||
|
"AMB": {"_label":"Ambito di tutela MiBAC","_min":1,"_type" : "STRING-CONSTANT", "_value":"archelogico"},
|
||||||
|
"AMA": {"_label":"Ambito di applicazione","_min":1,"_type" : "STRING-CONSTANT", "_value":"archeologia preventiva"},
|
||||||
|
"OGD": {"_min":1,"_label":"Definizione","_type": "DIRECT-CL", "_values": [
|
||||||
|
{"ogd" : "area di materiale mobile", "ogt": []},
|
||||||
|
{"ogd" : "area di uso funerario", "ogt": ["necropoli","monumento funerario"]},
|
||||||
|
{"ogd" : "deposizione di materiale", "ogt": []},
|
||||||
|
{"ogd" : "elemento per la confinazione", "ogt": []},
|
||||||
|
{"ogd" : "elemento toponomastico", "ogt": []},
|
||||||
|
{"ogd" : "giacimento in cavita' naturale", "ogt": []},
|
||||||
|
{"ogd" : "giacimento palentonlogico", "ogt": []},
|
||||||
|
{"ogd" : "giacimento subacqueo", "ogt": ["carico di materiale di bordo"]},
|
||||||
|
{"ogd" : "infrastruttura agraria", "ogt": ["canalizzazione","terrazzamento a scopo agricolo","tracce di coltivazione"]},
|
||||||
|
{"ogd" : "infrastruttura assistenziale", "ogt": []},
|
||||||
|
{"ogd" : "infrastruttura di consolidamento", "ogt": []},
|
||||||
|
{"ogd" : "infrastruttura di servizio", "ogt": []},
|
||||||
|
{"ogd" : "infrastruttura idrica", "ogt": []},
|
||||||
|
{"ogd" : "infrastruttura portuale", "ogt": []},
|
||||||
|
{"ogd" : "infrastruttura viaria", "ogt": []},
|
||||||
|
{"ogd" : "insediamento", "ogt": ["villaggio nuragico"]},
|
||||||
|
{"ogd" : "luogo ad uso pubblico", "ogt": []},
|
||||||
|
{"ogd" : "luogo di attivita' produttiva", "ogt": []},
|
||||||
|
{"ogd" : "monumento", "ogt": []},
|
||||||
|
{"ogd" : "ritrovamento sporadico", "ogt": []},
|
||||||
|
{"ogd" : "sito non identificato", "ogt": ["strutture murarie","pavimentazione"]},
|
||||||
|
{"ogd" : "sito pluristratificato", "ogt": []},
|
||||||
|
{"ogd" : "struttura abitativa", "ogt": []},
|
||||||
|
{"ogd" : "struttura di fortificazione", "ogt": ["fossato","rocca","porta","torre"]},
|
||||||
|
{"ogd" : "strutture per il culto", "ogt": []},
|
||||||
|
{"ogd" : "tracce di frequentazione", "ogt": []},
|
||||||
|
{"ogd" : "area priva di tracce archeologiche", "ogt": []}]},
|
||||||
|
"OGT": {"_label":"Tipologia","_type": "Derivate-CL-Field", "_sourcePath": "$.OG.OGD","_field": "ogt"},
|
||||||
|
"OGN" : {"_label" : "Denominazione"}}},
|
||||||
|
"LC" : {"_label": "LOCALIZZAZIONE","_min":1,"_children": {
|
||||||
|
"LCS": {"_label":"Stato","_min":1,"_type": "DIRECT-STRING-CL", "_values": ["Italia"]},
|
||||||
|
"LCR": {"_label":"Regione","_min":1,"_type": "REMOTE-CL", "_url" : "","_mediatype": "application/json","_field": "lcs"},
|
||||||
|
"LCP": {"_label":"Provincia","_min":1,"_type": "Derivate-CL-Field", "_sourcePath": "$.LC.LCR","_field": "lcr"},
|
||||||
|
"LCC": {"_label":"Comune","_min":1,"_type": "Derivate-CL-Field", "_sourcePath": "$.LC.LCP","_field": "lcp"},
|
||||||
|
"LCI": {"_label":"Indirizzo"},
|
||||||
|
"PVL": {"_label":"Toponimo"},
|
||||||
|
"PVZ": {"_label":"Tipo di contesto","_type": "DIRECT-STRING-CL", "_values": ["contesto urbano","contesto suburbano","contesto territoriale","contesto subacqueo"]},
|
||||||
|
"ACB" : {"_label":"ACCESSIBILITA'","_children": {
|
||||||
|
"ACBA": {"_label":"Accessibilita'","_type": "DIRECT-STRING-CL", "_values": ["si","no","in parte","disponibile"]},
|
||||||
|
"ACBS": {"_label":"Note"}}}}},
|
||||||
|
"DT" : {"_label":"CRONOLOGIA","_min":1,"_children": {
|
||||||
|
"DTR": {"_label":"Riferimento tecnologico","_min":1},
|
||||||
|
"DTT": {"_label":"Note"}}},
|
||||||
|
"DA" : {"_label":"DATI ANALITICI","_min":1,"_children":{
|
||||||
|
"DES": {"_label":"Descrizione","_min":1},
|
||||||
|
"OGM": {"_label":"Modalita' di individuazione","_type": "DIRECT-STRING-CL", "_values": ["analisi di testimonianze materiali provenienti dall'area in esame[specificare in nota d'ambito il significato del lemma]",
|
||||||
|
"cartografia storica","dati bibliografici","dati di archivio","documentazione di indagini archeologiche pregresse", "fonti orali","fotointerpretazione/fotorestituzione",
|
||||||
|
"indagini geomorfiche [carotaggi etc.]","prospezioni geofisiche", "riprese da drone","ricognizione archologica/survey"]}}},
|
||||||
|
"GE" : {"_min":1,"_label":"GEOREFERENZIAZIONE","_children": {
|
||||||
|
"GEL": {"_min":1,"_label":"Tipo di localizzazione","_type": "DIRECT-STRING-CL", "_values": ["localizzazione fisica"]},
|
||||||
|
"GET": {"_min":1,"_label":"Tipo di georeferenziazione","_type": "DIRECT-STRING-CL", "_values": ["georeferenziazione puntuale","georeferenziazione lineare","georeferenziazione areale"]},
|
||||||
|
"GEP": {"_min":1,"_label":"Sistema di riferimento","_type": "DIRECT-STRING-CL", "_values": ["WGS84"]},
|
||||||
|
"GEC" : {"_min":1,"_label":"COORDINATE","_children": {
|
||||||
|
"GECX": {"_min":1,"_label":"Coordinata x"},
|
||||||
|
"GECY": {"_min":1,"_label":"Coordinata y"}}},
|
||||||
|
"GPT": {"_min":1,"_label":"Tecnica di georeferenziazione","_type": "DIRECT-STRING-CL", "_values": ["rilievo da cartografia con sopralluogo","rilievo da cartografia senza sopralluogo",
|
||||||
|
"rilievo da foto aerea con sopralluogo","rilievo da foto aerea senza sopralluogo","rilievo da satellite","rilievo tradizionale","rilievo tramite GPS",
|
||||||
|
"rilievo tramite punti d'appoggio fiduciari o trigonometrici","stereofotogrammetria"]},
|
||||||
|
"GPM": {"_min":1,"_label":"Metodo di posizionamento","_type": "DIRECT-STRING-CL", "_values": ["posizionamento esatto","posizionamento approssimato",
|
||||||
|
"posizionamento con rappresentazione simbolica"]},
|
||||||
|
"GPB" : {"_min":1,"_label":"BASE CARTOGRAFICA","_children": {
|
||||||
|
"GPBB": {"_label":"Descrizione sintetica"}}}}},
|
||||||
|
"TU" : {"_min":1,"_label":"CONDIZIONE GIURIDICA E PROVVEDIMENTI DI TUTELA","_children": {
|
||||||
|
"CDG": {"_min":1,"_label":"CONDIZIONE GIURIDICA"},"_children" :{
|
||||||
|
"CDGG": {"_min":1,"_label":"Indicazione generica","_type": "DIRECT-STRING-CL", "_values": ["proprieta' Stato","proprieta' Ente pubblico territoriale",
|
||||||
|
"proprieta' Ente pubblico non territoriale","proprieta' privata","proprieta' Ente religioso cattolico","proprieta' Ente religioso non cattolico","proprieta' Ente straniero in Italia",
|
||||||
|
"proprieta' mista pubblica/privata","proprieta' mista pubblica/ecclesiastica","proprieta' mista privata/ecclesiastica","proprieta' persona giuridica senza scopo di lucro",
|
||||||
|
"detenzione Stato","detenzione Ente religioso cattolico","detenzione Ente religioso non cattolico","detenzione Ente straniero in Italia","detenzione mista pubblica/ privata",
|
||||||
|
"detenzione mista pubblica/ecclesiastica","detenzione mista privata/ ecclesiastica", "detenzione persona giuridica senza scopo di lucro","condizione giuridica mista","dato non disponibile","NR (recupero pregresso)"]}},
|
||||||
|
"BPT": {"_min":1,"_label":"Provvedimenti di tutela - sintesi","_type": "DIRECT-STRING-CL", "_values": ["si","no","dato non disponibile"]},
|
||||||
|
"NVC": {"_max":-1,"_label":"PROVVEDIMENTI DI TUTELA","_children": {
|
||||||
|
"NVCT": {"_label":"Normativa di riferimento","_type": "DIRECT-STRING-CL", "_values": ["L. 364/1909","L. 778/1922","L. 1089/1939","L. 1497/1939","D.Lgs. 490/1999","D.Lgs 42/2004"]},
|
||||||
|
"NVCM": {"_label":"Provvedimento di tutela","_type": "DIRECT-STRING-CL", "_values": ["tutela diretta","tutela indiretta","tutela ope legis [art. 142, co. 1, lett. m]"]},
|
||||||
|
"NVCE": {"_label":"Estremi provvedimento"},
|
||||||
|
"NVCP": {"_label":"Estensione del vincolo"},
|
||||||
|
"NWCN": {"_label":"Note"}}},
|
||||||
|
"STU":{"_label": "STRUMENTI URBANISTICO-TERRITORIALI","_children": {
|
||||||
|
"STUE": {"_label":"Ente/amministrazione"},
|
||||||
|
"STUT": {"_label":"Tipo strumento"},
|
||||||
|
"STUS": {"_label":"Note"}}}}},
|
||||||
|
"RE" : {"_min":1,"_label":"INDAGINI","_children": {
|
||||||
|
"RCG": {"_min":1,"_label":"RICOGNIZIONE ARCHEOLOGICA","_children": {
|
||||||
|
"RCGV": {"_min":1,"_label":"Denominazione ricognizione"},
|
||||||
|
"RCGD": {"_min":1,"_label":"Riferimento cronologico"},
|
||||||
|
"RCGT": {"_label":"Situazione ambientale"},
|
||||||
|
"RCGE": {"_label":"Motivo","_type": "DIRECT-STRING-CL", "_values": ["archeologia preventiva"]}}},
|
||||||
|
"MTP" : {"_min":1,"_label":"PRESENZA DI MATERIALI","_children": {
|
||||||
|
"MTPC": {"_label":"Categoria materiale","_type": "DIRECT-STRING-CL", "_values": ["AMBRA","CERAMICA","CORALLO","CUOIO","INDUSTRIA LITICA","INTONACO","INTONACO DIPINTO","LATERIZI",
|
||||||
|
"MATERIALE LAPIDEO","LEGNO","METALLO","OSSO-CORNO-AVORIO","PIETRE DURE-GEMME","PIETRA OLLARE","REPERTI ANTROPOLOGICI","REPERTI ARCHEOBOTANICI","REPERTI NUMISMATICI","REPERTI FITTILI",
|
||||||
|
"REPERTI ARCHEOLOGICI","REPERTI ORGANICI","REPERTI SCULTOREI","SCARTI DI PRODUZIONE","TESSUTO","VETRO"]},
|
||||||
|
"MTPZ": {"_label":"Note"}}},
|
||||||
|
"MTZ": {"_label":"Assenza di materiali","_type": "DIRECT-STRING-CL", "_values": ["MNP","NR"]},
|
||||||
|
"FOI" : {"_label" :"FOTOINTERPRETAZIONE/FOTORESTITUZIONE","_children": {
|
||||||
|
"FOIT" : {"_label": "Tipo immagine", "_type": "DIRECT-STRING-CL", "_values": ["fotografia aerea","fotografia satellitare"]},
|
||||||
|
"FOIR" : {"_label": "Riferimento cronologico"},
|
||||||
|
"FOIA" : {"_label": "Origine anomalia","_type": "DIRECT-STRING-CL", "_values": ["origine naturale","origine antropica","origine incerta"]},
|
||||||
|
"FOIQ" : {"_label": "Tipo anomalia","_type": "DIRECT-STRING-CL", "_values": ["anomalia puntuale","anomalia lineare","anomalia areale"]},
|
||||||
|
"FOIF" : {"_label": "Classificazione anomalia","_max":-1,"_type": "DIRECT-STRING-CL", "_values": ["affioramento","allineamento","macchia circolare","microrilievo","paleoalveo","tracce non identificate"]},
|
||||||
|
"FOIO" : {"_label": "Affidabilita'","_type": "DIRECT-STRING-CL", "_values": ["scarsa","discreta","buona","ottima"]},
|
||||||
|
"FOIN" : {"_label": "Note"}}}}},
|
||||||
|
"IP" : {"_label": "INDAGINI PREGRESSE","_children": {
|
||||||
|
"IAP" : {"_label": "INDAGINI ARCHEOLOGICHE PREGRESSE","_min": -1,"_children": {
|
||||||
|
"IAPN" : {"_label": "Denominazione indagine - Obbligatorieta' di contesto"},
|
||||||
|
"IAPR" : {"_label": "Riferimento cronologico - Obbligatorieta' di contesto"},
|
||||||
|
"IAPI" : {"_label": "Informazioni sull'indagine"},
|
||||||
|
"IAPS" : {"_label": "Note"}}}}},
|
||||||
|
"MT" : {"_label": "DATI TECNICI","children": {
|
||||||
|
"MIS" : {"_label": "MISURE","_children": {
|
||||||
|
"MISZ" : {"_label": "Tipo di misura","_type": "DIRECT-STRING-CL", "_values": ["area"]},
|
||||||
|
"MISU" : {"_label": "Unita' di misura","_type": "DIRECT-STRING-CL", "_values": ["mq"]},
|
||||||
|
"MISM" : {"_label": "valore"}}},
|
||||||
|
"MTA" : {"_label" : "ALTIMETRIA/QUOTE","_max": -1,"_children" : {
|
||||||
|
"MTAP" : {"_label" : "Riferimento"},
|
||||||
|
"MTAM" : {"_label" : "Quota minima s.l.m."},
|
||||||
|
"MTAX" : {"_label" : "Quota massima s.l.m."},
|
||||||
|
"MTAR" : {"_label" : "Quota relativa"},
|
||||||
|
"MTAS" : {"_label" : "Note"}}}}},
|
||||||
|
"VR" : {"_label": "VALUTAZIONE/INTERPRETAZIONE","_min": 1,"_children": {
|
||||||
|
"VRP" : {"_label": "VALUTAZIONE POTENZIALE ARCHEOLOGICO","_min": 1,"_children": {
|
||||||
|
"VRPI" : {"_label": "Interpretazione","_min": 1},
|
||||||
|
"VRPA" : {"_label": "Affidabilita'","_min": 1,"_type": "DIRECT-STRING-CL", "_values": ["scarsa","discreta","buona","ottima"]},
|
||||||
|
"VRPV" : {"_label": "Valutazione nell'ambito del contesto"},
|
||||||
|
"VRPS" : {"_label": "Potenziale - sintesi","_min": 1,"_type": "DIRECT-STRING-CL", "_values": ["potenziale alto","potenziale medio","potenziale basso","potenziale nullo","potenziale non valutabile"]},
|
||||||
|
"VRPN" : {"_label": "Note"}}},
|
||||||
|
"VRR" : {"_label" : "VALUTAZIONE RISCHIO ARCHEOLOGICO", "_min": 1,"_max": -1,"_children": {
|
||||||
|
"VRRP" : {"_label": "Codice progetto di riferimento","_min": 1},
|
||||||
|
"VRRO" : {"_label": "Distanza dall'opera in progetto","_min": 1},
|
||||||
|
"VRRR" : {"_label": "Valutazione rispetto all'opera in progetto","_min": 1},
|
||||||
|
"VRRS" : {"_label": "Rischio - sintesi","_min": 1,"_type": "DIRECT-STRING-CL","_values": ["rischio alto","rischio medio","rischio basso","rischio nullo"]},
|
||||||
|
"VRRN" : {"_label": "Note"}}}}},
|
||||||
|
"DO" : {"_label" : "DOCUMENTAZIONE", "_min": 1,"_children": {
|
||||||
|
"FTA" : {"_label" : "DOCUMENTAZIONE FOTOGRAFICA","_min": 1,"_children": {
|
||||||
|
"FTAN" : {"_label": "Codice identificativo"},
|
||||||
|
"FTAX" : {"_label": "Genere","_min": 1,"_type": "DIRECT-STRING-CL", "_values": ["documentazione allegata","documentazione esistente"]},
|
||||||
|
"FTAP" : {"_label": "Tipo", "_min": 1,"_type": "DIRECT-STRING-CL", "_values": ["immagine area","immagine satellitare","immagine b/n","immagine colore"]},
|
||||||
|
"FTAC" : {"_label": "Collocazione"}}},
|
||||||
|
"DRA" : {"_label" : "DOCUMENTAZIONE GRAFICA E CARTOGRAFICA","_children": {
|
||||||
|
"DRAN" : {"_label": "Codice identificativo"},
|
||||||
|
"DRAX" : {"_label": "Genere","_type": "DIRECT-STRING-CL", "_values": ["documentazione allegata","documentazione esistente"]},
|
||||||
|
"DRAT" : {"_label": "Tipo", "_type": "DIRECT-STRING-CL", "_values": ["cartografia storica","planimetria","posizionamento topografico","prospetto","sezione"]},
|
||||||
|
"DRAC" : {"_label": "Collocazione"},
|
||||||
|
"DRAK" : {"_label": "Nome file digitale"}}},
|
||||||
|
"FNT" : {"_label" : "FONTI E DOCUMENTI","_children" : {
|
||||||
|
"FNTI" : {"_label": "Codice identificativo"},
|
||||||
|
"FNTX" : {"_label": "Genere","_type": "DIRECT-STRING-CL", "_values": ["documentazione allegata","documentazione esistente"]},
|
||||||
|
"FNTP" : {"_label": "Tipo", "_type": "DIRECT-STRING-CL", "_values": ["relazione di verifica preventiva dell'interesse archeologico","scheda dell'area",
|
||||||
|
"documentazione di ricognizione archeologica","documentazione di scavo archeologico","referto di indagine archeometrica/diagnostica","fonte d'archivio","pubblicazione"]},
|
||||||
|
"FNTS" : {"_label": "Collocazione"},
|
||||||
|
"FNTK" : {"_label": "Nome file digitale"}}},
|
||||||
|
"BIB" : {"_label": "BIBLIOGRAFIA","_max":-1,"_children": {
|
||||||
|
"BIBR" : {"_label": "Abbreviazione"},
|
||||||
|
"BIBX" : {"_label": "Genere","_type": "DIRECT-STRING-CL","_values": ["bibliografia specifica"]},
|
||||||
|
"BIBM" : {"_label": "Riferimento bibliografico completo"},
|
||||||
|
"BIBN" : {"_label": "Note"}}}}},
|
||||||
|
"CM" : {"_label": "CERTIFICAZIONE E GESTIONE DI DATI","_min":1,"_children": {
|
||||||
|
"FUR" : {"_label" : "Funzionario responsabile","_min": 1},
|
||||||
|
"CMR" : {"_label" : "Responsabile contenuti","_min": 1},
|
||||||
|
"CMC" : {"_label" : "Responsabile redazione modulo","_min": 1},
|
||||||
|
"CMA" : {"_label" : "Anno di redazione","_min": 1},
|
||||||
|
"ADP" : {"_label" : "Profilo di accesso","_min": 1,"_type": "DIRECT-STRING-CL","_values": ["1","2","3"]}}}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue