{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Camera Trap Data Package", "description": "Data exchange format for camera trap data. ", "type": "object", "$defs": { "version": { "pattern": "1\\.0\\.2" } }, "allOf": [ { "$ref": "https://specs.frictionlessdata.io/schemas/data-package.json" }, { "required": [ "resources", "profile", "created", "contributors", "project", "spatial", "temporal", "taxonomic" ], "properties": { "resources": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#resource-information). Camtrap DP further requires each object to be a [Tabular Data Resource](https://specs.frictionlessdata.io/tabular-data-resource/) with a specific `name` and `schema`. See [Data](https://camtrap-dp.tdwg.org/data) for the requirements for those resources.", "minItems": 3, "items": { "oneOf": [ { "required": [ "name", "path", "profile", "schema" ], "properties": { "name": { "description": "Identifier of the resource.", "enum": [ "deployments", "media", "observations" ] }, "path": { "description": "Path or URL to the data file." }, "profile": { "description": "[Profile](https://specs.frictionlessdata.io/profiles/) of the resource.", "enum": [ "tabular-data-resource" ] }, "schema": { "description": "URL of the used Camtrap DP Table Schema version (e.g. `https://raw.githubusercontent.com/tdwg/camtrap-dp/1.0/deployments-table-schema.json`).", "allOf": [ { "$ref": "#/$defs/version" }, { "type": "string", "format": "uri" } ] } } }, { "required": [ "name" ], "properties": { "name": { "not": { "enum": [ "deployments", "media", "observations" ] } } } } ] } }, "profile": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#profile). Camtrap DP further requires this to be the URL of the used Camtrap DP Profile version (e.g. `https://raw.githubusercontent.com/tdwg/camtrap-dp/1.0/camtrap-dp-profile.json`).", "format": "uri" }, "name": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#name)." }, "id": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#id)." }, "created": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#created). Camtrap DP makes this a required property." }, "title": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#title). Not to be confused with the title of the project that originated the package (`package.project.title`)." }, "contributors": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#contributors). Camtrap DP makes this a required property and restricts `role` values. Can include people and organizations.", "items": { "properties": { "role": { "description": "Role of the contributor. Defaults to `contributor`.", "enum": [ "contact", "principalInvestigator", "rightsHolder", "publisher", "contributor" ] } } } }, "description": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#description). Not to be confused with the description of the project that originated the package (`package.project.description`)." }, "version": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#version)." }, "keywords": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#keywords)." }, "image": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#image)." }, "homepage": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#homepage)." }, "sources": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#sources). Can include the data management platform from which the package was derived (e.g. Agouti, Trapper, Wildlife Insights).", "items": { "properties": { "version": { "description": "Version of the source.", "type": "string" } } } }, "licenses": { "description": "See [Data Package specification](https://specs.frictionlessdata.io/data-package/#licenses). If provided, Camtrap DP further requires at least a license for the content of the package and one for the media files.", "minItems": 2, "items": { "required": [ "scope" ], "properties": { "scope": { "description": "Scope of the license. `data` applies to the content of the package and resources, `media` to the (locally or externally hosted) media files referenced in `media.filePath`.", "type": "string", "enum": [ "data", "media" ] } } } }, "bibliographicCitation": { "description": "Bibliographic/recommended citation for the package.", "skos:exactMatch": "http://purl.org/dc/terms/bibliographicCitation", "type": "string" }, "project": { "description": "Camera trap project or study that originated the package.", "type": "object", "required": [ "title", "samplingDesign", "captureMethod", "individualAnimals", "observationLevel" ], "properties": { "id": { "description": "Unique identifier of the project.", "type": "string" }, "title": { "description": "Title of the project. Not to be confused with the title of the package (`package.title`).", "type": "string" }, "acronym": { "description": "Project acronym.", "type": "string" }, "description": { "description": "Description of the project. Preferably formatted as [Markdown](http://commonmark.org/). Not to be confused with the description of the package (`package.description`).", "type": "string" }, "path": { "description": "Project website.", "type": "string", "format": "uri" }, "samplingDesign": { "description": "Type of a sampling design/layout. The values are based on [Wearn & Glover-Kapfer (2017)](https://doi.org/10.13140/RG.2.2.23409.17767), pages 80-82: `simple random`: random distribution of sampling locations; `systematic random`: random distribution of sampling locations, but arranged in a regular pattern; `clustered random`: random distribution of sampling locations, but clustered in arrays; `experimental`: non-random distribution aimed to study an effect, including the before-after control-impact (BACI) design; `targeted`: non-random distribution optimized for capturing specific target species (often using various bait types); `opportunistic`: opportunistic camera trapping (usually with a small number of cameras).", "skos:broadMatch": "http://rs.tdwg.org/eco/terms/inventoryTypes", "type": "string", "enum": [ "simpleRandom", "systematicRandom", "clusteredRandom", "experimental", "targeted", "opportunistic" ] }, "captureMethod": { "description": "Method(s) used to capture the media files.", "type": "array", "items": { "type": "string", "enum": [ "activityDetection", "timeLapse" ] }, "uniqueItems": true, "minItems": 1 }, "individualAnimals": { "description": "`true` if the project includes marked or recognizable individuals. See also `observations.individualID`.", "type": "boolean" }, "observationLevel": { "description": "Level at which observations are provided. See also `observations.observationLevel`.", "type": "array", "items": { "type": "string", "enum": [ "media", "event" ] } } } }, "coordinatePrecision": { "description": "Least precise coordinate precision of the `deployments.latitude` and `deployments.longitude` (e.g. `0.01` for coordinates with a precision of 0.01 and 0.001 degree). Especially relevant when coordinates have been rounded to protect sensitive species.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/coordinatePrecision", "type": "number", "example": 0.001 }, "spatial": { "description": "Spatial coverage of the package, expressed as GeoJSON.", "skos:exactMatch": "http://purl.org/dc/terms/spatial", "type": "object", "$ref": "http://json.schemastore.org/geojson.json" }, "temporal": { "description": "Temporal coverage of the package.", "skos:exactMatch": "http://purl.org/dc/terms/temporal", "type": "object", "required": [ "start", "end" ], "properties": { "start": { "description": "Start date of the first deployment. Formatted as an ISO 8601 string (`YYYY-MM-DD`).", "type": "string", "format": "date" }, "end": { "description": "End date of the last (completed) deployment. Formatted as an ISO 8601 string (`YYYY-MM-DD`).", "type": "string", "format": "date" } } }, "taxonomic": { "description": "Taxonomic coverage of the package, based on the unique `observations.scientificName`.", "type": "array", "items": { "type": "object", "required": [ "scientificName" ], "properties": { "scientificName": { "description": "Scientific name of the taxon.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/scientificName", "type": "string", "example": "Canis lupus" }, "taxonID": { "description": "Unique identifier of the taxon. Preferably a global unique identifier issued by an authoritative checklist.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/taxonID", "type": "string", "example": "https://www.checklistbank.org/dataset/COL2023/taxon/QLXL" }, "taxonRank": { "description": "Taxonomic rank of the scientific name.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/taxonRank", "type": "string", "enum": [ "kingdom", "phylum", "class", "order", "family", "genus", "species", "subspecies" ], "example": "species" }, "kingdom": { "description": "Kingdom in which the taxon is classified.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/kingdom", "type": "string", "example": "Animalia" }, "phylum": { "description": "Phylum or division in which the taxon is classified", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/phylum", "type": "string", "example": "Chordata" }, "class": { "description": "Class in which the taxon is classified.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/class", "type": "string", "example": "Mammalia" }, "order": { "description": "Order in which the taxon is classified.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/order", "type": "string", "example": "Carnivora" }, "family": { "description": "Family in which the taxon is classified.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/family", "type": "string", "example": "Canidae" }, "genus": { "description": "Genus in which the taxon is classified.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/genus", "type": "string", "example": "Canis" }, "vernacularNames": { "description": "Common or vernacular names of the taxon, as `languageCode: vernacular name` pairs. Language codes should follow ISO 693-3 (e.g. `eng` for English).", "type": "object", "patternProperties": { "^[a-z]{3}$": { "description": "Common or vernacular name of the taxon in that language.", "skos:exactMatch": "http://rs.tdwg.org/dwc/terms/vernacularName", "type": "string" } }, "additionalProperties": false, "example": "{'eng': 'wolf', 'fra': 'loup gris'}" } } } }, "relatedIdentifiers": { "description": "Identifiers of resources related to the package (e.g. papers, project pages, derived datasets, APIs, etc.).", "type": "array", "items": { "description": "Related identifier.", "required": [ "relationType", "relatedIdentifier", "relatedIdentifierType" ], "properties": { "relationType": { "description": "Description of the relationship between the resource (the package) and the related resource.", "skos:exactMatch": "https://schema.datacite.org/meta/kernel-4.4/include/datacite-relationType-v4.xsd", "type": "string", "enum": [ "IsCitedBy", "Cites", "IsSupplementTo", "IsSupplementedBy", "IsContinuedBy", "Continues", "IsNewVersionOf", "IsPreviousVersionOf", "IsPartOf", "HasPart", "IsPublishedIn", "IsReferencedBy", "References", "IsDocumentedBy", "Documents", "IsCompiledBy", "Compiles", "IsVariantFormOf", "IsOriginalFormOf", "IsIdenticalTo", "HasMetadata", "IsMetadataFor", "Reviews", "IsReviewedBy", "IsDerivedFrom", "IsSourceOf", "Describes", "IsDescribedBy", "HasVersion", "IsVersionOf", "Requires", "IsRequiredBy", "Obsoletes", "IsObsoletedBy" ] }, "relatedIdentifier": { "description": "Unique identifier of the related resource (e.g. a DOI or URL).", "type": "string" }, "resourceTypeGeneral": { "description": "General type of the related resource.", "skos:exactMatch": "https://schema.datacite.org/meta/kernel-4.4/include/datacite-resourceType-v4.xsd", "type": "string", "enum": [ "Audiovisual", "Book", "BookChapter", "Collection", "ComputationalNotebook", "ConferencePaper", "ConferenceProceeding", "DataPaper", "Dataset", "Dissertation", "Event", "Image", "InteractiveResource", "Journal", "JournalArticle", "Model", "OutputManagementPlan", "PeerReview", "PhysicalObject", "Preprint", "Report", "Service", "Software", "Sound", "Standard", "Text", "Workflow", "Other" ] }, "relatedIdentifierType": { "description": "Type of the `RelatedIdentifier`.", "skos:exactMatch": "https://schema.datacite.org/meta/kernel-4.4/include/datacite-relatedIdentifierType-v4.xsd", "type": "string", "enum": [ "ARK", "arXiv", "bibcode", "DOI", "EAN13", "EISSN", "Handle", "IGSN", "ISBN", "ISSN", "ISTC", "LISSN", "LSID", "PMID", "PURL", "UPC", "URL", "URN", "w3id" ] } } } }, "references": { "description": "List of references related to the package (e.g. references cited in `package.project.description`). References preferably include a DOI.", "type": "array", "items": { "type": "string" } } } } ] }