Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update example with more data #326

Merged
merged 23 commits into from
Jun 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
09a114d
Add homepage URL
peterdesmet Jun 5, 2023
fb1d7c5
Add cameraID, cameraModel, cameraTilt, cameraHeading
peterdesmet Jun 9, 2023
b13e429
Add detectionDistance, timestampIssues, baitUse, featureType
peterdesmet Jun 9, 2023
51aeac4
Add habitat
peterdesmet Jun 9, 2023
ab12c5a
Add deploymentGroups, deploymentTags, update deploymentComments
peterdesmet Jun 9, 2023
062ecdf
Update setupBy
peterdesmet Jun 9, 2023
f4657bb
Add behavior=foraging for 3 events in first deployment
peterdesmet Jun 9, 2023
0f6b7ce
Add observationTags: "swimDirection: across"
peterdesmet Jun 9, 2023
d3fc946
Update example pages to show ALL deployment information as list
peterdesmet Jun 9, 2023
d3457e8
Revert 62c200a9 to machine classification
peterdesmet Jun 9, 2023
e994e73
Add bounding box (and probability) as recorded in Agouti
peterdesmet Jun 9, 2023
458d2e2
Add exifData, favourite and comments for 3 images used in paper
peterdesmet Jun 9, 2023
01632ac
Change data type for exifDate to any
peterdesmet Jun 9, 2023
eaafce9
Add bbox values
peterdesmet Jun 10, 2023
4df26f7
Remove originalBoundingBox from tags, update classificationTimestamp
peterdesmet Jun 10, 2023
00a697e
Add missing bounding box
peterdesmet Jun 10, 2023
8ee79c7
Indicate bounding box on example as absolute div
peterdesmet Jun 10, 2023
81379ea
Add landing page for the example dataset + link to it
peterdesmet Jun 12, 2023
9c6c983
Always add classifiedBy
peterdesmet Jun 12, 2023
d4feace
Remove count for vehicle, blank, unknown
peterdesmet Jun 12, 2023
ca6ed1a
Update table descriptions cf. manuscript
peterdesmet Jun 12, 2023
eedc95b
Drop title "usage" and move description into first sentence.
peterdesmet Jun 12, 2023
360dd65
Add download button (using external service)
peterdesmet Jun 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions _data/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
href: /data/
- text: Example dataset
menu:
- text: Example dataset
href: /example/
- text: "---"
- text: Deployment 1
href: /example/00a2c20d/
- text: Deployment 2
Expand Down
71 changes: 47 additions & 24 deletions _layouts/example.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

{{ content }}

<p class="small">Source: <a href="{{ site.github.repository_url }}/blob/main/example"><code>example dataset</code></a></p>
<p class="small">This page is generated from the <a href="../">example dataset</a>.</p>

{% assign deployment_id = page.name | remove: '.md' %}
{% assign deployment = site.data.deployments | where: 'deploymentID', deployment_id | first %}
Expand All @@ -13,29 +13,41 @@

<h2 id="{{ deployment_id }}">Deployment information</h2>

<dl>
<dt>Location</dt>
<dd>
<code>{{ deployment.locationName }}</code>
(<a href="https://www.google.com/maps/search/?api=1&query={{ deployment.latitude }},{{ deployment.longitude }}&zoom=12"><code>{{ deployment.latitude }}, {{ deployment.longitude }}</code></a>),
uncertainty: <code>{{ deployment.coordinateUncertainty }}</code>m
<dd>
<dt>Duration</dt>
<dd>
<code>{{ deployment.deploymentStart }}</code> / <code>{{ deployment..deploymentEnd }}</code>
</dd>
<dt>Camera setup</dt>
<dd>
interval: <code>{{ deployment.cameraInterval }}</code>,
height: <code>{{ deployment.cameraHeight }}</code>,
tilt: <code>{{ deployment.cameraTilt }}</code>,
heading: <code>{{ deployment.cameraHeading }}</code>
</dd>
<dt>Bait</dt>
<dd>
<code>{{ deployment.baitUse }}</code>
</dd>
</dl>
<h3 id="location">Location</h3>
<ul>
<li>locationID: <code>{{ deployment.locationID }}</code></li>
<li>locationName: <code>{{ deployment.locationName }}</code></li>
<li>latitude, longitude: <a href="https://www.google.com/maps/search/?api=1&query={{ deployment.latitude }},{{ deployment.longitude }}&zoom=12"><code>{{ deployment.latitude }}, {{ deployment.longitude }}</a></code></li>
<li>coordinateUncertainty: <code>{{ deployment.coordinateUncertainty }}</code> m</li>
</ul>

<h3 id="duration">Duration</h3>
<ul>
<li>deploymentStart: <code>{{ deployment.deploymentStart }}</code></li>
<li>deploymentEnd: <code>{{ deployment.deploymentEnd }}</code></li>
</ul>

<h3 id="camera-setup">Camera setup</h3>
<ul>
<li>setupBy: <code>{{ deployment.setupBy }}</code></li>
<li>cameraID: <code>{{ deployment.cameraID }}</code></li>
<li>cameraModel: <code>{{ deployment.cameraModel }}</code></li>
<li>cameraDelay: <code>{{ deployment.cameraDelay }}</code> s</li>
<li>cameraHeight: <code>{{ deployment.cameraHeight }}</code> m</li>
<li>cameraTilt: <code>{{ deployment.cameraTilt }}</code> °</li>
<li>cameraHeading: <code>{{ deployment.cameraHeading }}</code> °</li>
<li>detectionDistance: <code>{{ deployment.detectionDistance }}</code> m</li>
<li>timestampIssues: <code>{{ deployment.timestampIssues }}</code></li>
<li>baitUse: <code>{{ deployment.baitUse }}</code></li>
<li>habitat: <code>{{ deployment.habitat }}</code></li>
</ul>

<h3 id="organizational">Organizational</h3>
<ul>
<li>deploymentGroups: <code>{{ deployment.deploymentGroups }}</code></li>
<li>deploymentTags: <code>{{ deployment.deploymentTags }}</code></li>
<li>deploymentComments: <code>{{ deployment.deploymentComments }}</code></li>
</ul>

{% assign event_ids = observations | map: 'eventID' | uniq %}
{% for event_id in event_ids %}
Expand All @@ -49,6 +61,7 @@ <h2 id="{{ event_id }}">Event: {{ event_id }}</h2>
<div class="carousel-inner">
{% for media_id in media_ids %}
{% assign med = media | where: 'mediaID', media_id | first %}
{% assign obs = media_observations | where: 'mediaID', media_id | first %}
{% assign public = med.filePublic | downcase %}
{% if public == "false" %}
{% assign public = false %}
Expand All @@ -57,6 +70,16 @@ <h2 id="{{ event_id }}">Event: {{ event_id }}</h2>
{% endif %}
<div class="carousel-item{% if forloop.first %} active{% endif %}">
<img class="d-block w-100" src="{% if public %}{{ med.filePath }}{% else %}{{ '/assets/placeholder.svg' | relative_url }}{% endif %}" alt="{{ med.timestamp }}">
{% if obs.bboxX %}
<div class="bbox" style="
position: absolute;
border: 3px solid red;
left: {{ obs.bboxX | times: 100 }}%;
top: {{ obs.bboxY | times: 100 }}%;
width: {{ obs.bboxWidth | times: 100 }}%;
height: {{ obs.bboxHeight | times: 100 }}%;
"></div>
{% endif %}
<div class="carousel-caption d-none d-md-block">
<code class="fs-5 text-light">{{ media_id }}</code>
</div>
Expand Down
2 changes: 1 addition & 1 deletion deployments-table-schema.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "deployments",
"title": "Deployments",
"description": "Table with camera trap deployments. Includes `deploymentID`, start, end, location and camera setup information.",
"description": "Table with camera trap placements (deployments). Includes `deploymentID`, start, end, location and camera setup information.",
"fields": [
{
"name": "deploymentID",
Expand Down
4 changes: 2 additions & 2 deletions example/datapackage.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
"coypu"
],
"image": "",
"homepage": "",
"homepage": "https://tdwg.github.io/camtrap-dp/example/",
"sources": [
{
"title": "Agouti",
Expand All @@ -114,7 +114,7 @@
"scope": "media"
}
],
"bibliographicCitation": "Desmet P, Neukermans A, Van der beeck D, Cartuyvels E (2022). Sample from: MICA - Muskrat and coypu camera trap observations in Belgium, the Netherlands and Germany. Version 1.0. Research Institute for Nature and Forest (INBO). Dataset. https://github.com/tdwg/camtrap-dp/tree/main/example",
"bibliographicCitation": "Desmet P, Neukermans A, Van der beeck D, Cartuyvels E (2022). Sample from: MICA - Muskrat and coypu camera trap observations in Belgium, the Netherlands and Germany. Version 1.0. Research Institute for Nature and Forest (INBO). Dataset. https://tdwg.github.io/camtrap-dp/example/",
"project": {
"id": "86cabc14-d475-4439-98a7-e7b590bed60e",
"title": "Management of Invasive Coypu and muskrAt in Europe",
Expand Down
8 changes: 4 additions & 4 deletions example/deployments.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
deploymentID,locationID,locationName,latitude,longitude,coordinateUncertainty,deploymentStart,deploymentEnd,setupBy,cameraID,cameraModel,cameraDelay,cameraHeight,cameraTilt,cameraHeading,detectionDistance,timestampIssues,baitUse,featureType,habitat,deploymentGroups,deploymentTags,deploymentComments
00a2c20d,e254a13c,B_HS_val 2_processiepark,51.496,4.774,187,2020-05-30T04:57:37+02:00,2020-07-01T11:41:41+02:00,Dennis,,,0,1.30,,,,,,,,,boven de stroom,
29b7d356,2df5259b,B_DL_val 5_beek kleine vijver,51.181,5.655,187,2020-07-29T07:29:41+02:00,2020-08-08T06:20:40+02:00,Danny Van der beeck,,,0,0.70,,,,,,,,,boven de stroom,van 29/07/2020 tot 08/08/2020 120 foto's
577b543a,ff1535c0,B_DL_val 3_dikke boom,51.184,5.659,187,2020-06-19T23:00:00+02:00,2020-06-29T01:33:22+02:00,Danny Van der beeck,,,0,0.80,,,,,,,,,linkeroever,van 19/06/2020 tot 29/06/2020 63 foto's
62c200a9,ce943ced,B_DM_val 4_'t WAD,50.699,4.013,187,2021-03-27T21:38:18+01:00,2021-04-18T22:25:00+01:00,Davy,,,0,1.00,,,,,,,,,,
00a2c20d,e254a13c,B_HS_val 2_processiepark,51.496,4.774,187,2020-05-30T04:57:37+02:00,2020-07-01T11:41:41+02:00,anonymized:3eb30aa,320,Reconyx-HF2X,0,1.30,-15,285,3.20,false,false,trailGame,Campine area with a number of river valleys with valuable grasslands,area:HS | season:spring,position:above stream,
29b7d356,2df5259b,B_DL_val 5_beek kleine vijver,51.181,5.655,187,2020-07-29T07:29:41+02:00,2020-08-08T06:20:40+02:00,Danny Van der beeck,250,Reconyx-HF2X,0,0.70,-15,350,3.00,false,false,trailGame,Protected marsh with ponds and small brooks,area:DL | season:summer,position:above stream,"from 29/07/2020 to 08/08/2020, 120 photos"
577b543a,ff1535c0,B_DL_val 3_dikke boom,51.184,5.659,187,2020-06-19T23:00:00+02:00,2020-06-29T01:33:22+02:00,Danny Van der beeck,303,Reconyx-HF2X,0,0.80,-15,20,3.00,false,false,trailGame,Protected marsh with ponds and small brooks,area:DL | season:summer,position:left bank,"from 19/06/2020 to 29/06/2020, 63 photos"
62c200a9,ce943ced,B_DM_val 4_'t WAD,50.699,4.013,187,2021-03-27T21:38:18+01:00,2021-04-18T22:25:00+01:00,,315,Reconyx-HF2X,0,1.00,-15,55,4.00,false,false,trailGame,"Stream valley with complexes of grassland, poplar plantations, alluvial forrest, marsh vegetations, forbs and ponds",area:DM | season:spring,,
6 changes: 3 additions & 3 deletions example/media.csv
Original file line number Diff line number Diff line change
Expand Up @@ -233,11 +233,11 @@ b9da91c2,29b7d356,motionDetection,2020-08-02T07:00:14+02:00,https://multimedia.a
1b2d3e73,29b7d356,motionDetection,2020-08-02T07:00:15+02:00,https://multimedia.agouti.eu/assets/1b2d3e73-b95e-4217-90a1-4c45a75b00fe/file,true,20200815213921-RCNX0162.JPG,image/jpeg,,,
da6db024,29b7d356,motionDetection,2020-08-02T07:00:15+02:00,https://multimedia.agouti.eu/assets/da6db024-ce23-4438-9470-f7417cb9da76/file,true,20200815213922-RCNX0163.JPG,image/jpeg,,,
4a4c3a2e,29b7d356,motionDetection,2020-08-02T07:00:16+02:00,https://multimedia.agouti.eu/assets/4a4c3a2e-39fc-4cb0-a650-810e5c904475/file,true,20200815213922-RCNX0164.JPG,image/jpeg,,,
59b38bc6,29b7d356,motionDetection,2020-08-02T07:00:16+02:00,https://multimedia.agouti.eu/assets/59b38bc6-c0c9-4917-b924-c135d1cd4fe1/file,true,20200815213922-RCNX0165.JPG,image/jpeg,,,
59b38bc6,29b7d356,motionDetection,2020-08-02T07:00:16+02:00,https://multimedia.agouti.eu/assets/59b38bc6-c0c9-4917-b924-c135d1cd4fe1/file,true,20200815213922-RCNX0165.JPG,image/jpeg,"{""ISO"": 640, ""Make"": ""RECONYX"", ""Flash"": ""Auto, Did not fire"", ""Model"": ""HF2 SECURITY"", ""ColorSpace"": ""sRGB"", ""CreateDate"": ""2020:08:02 07:00:16"", ""ModifyDate"": ""2020:08:02 07:00:16"", ""ExifVersion"": ""0220"", ""XResolution"": 72, ""YResolution"": 72, ""ExposureMode"": ""Auto"", ""ExposureTime"": ""1/30"", ""WhiteBalance"": ""Manual"", ""ExifImageWidth"": 2048, ""ResolutionUnit"": ""inches"", ""TimeZoneOffset"": 0, ""ExifImageHeight"": 1440, ""FlashpixVersion"": ""0100"", ""DateTimeOriginal"": ""2020:08:02 07:00:16"", ""SceneCaptureType"": ""Standard"", ""YCbCrPositioning"": ""Co-sited"", ""ComponentsConfiguration"": ""Y, Cb, Cr, -""}, ""File"": {""FileName"": ""20200815213922-RCNX0165.JPG"", ""FileSize"": ""616 kB"", ""FileType"": ""JPEG"", ""MIMEType"": ""image/jpeg"", ""Directory"": ""/opt/app/uploads/deployment-images/20191001132016-untitled/29b7d356-4bb4-4ec4-b792-2af5cc32efa8"", ""ImageWidth"": 2048, ""ImageHeight"": 1440, ""BitsPerSample"": 8, ""ExifByteOrder"": ""Little-endian (Intel, II)"", ""FileAccessDate"": ""2020:08:15 21:39:22+00:00"", ""FileModifyDate"": ""2020:08:15 21:39:22+00:00"", ""ColorComponents"": 3, ""EncodingProcess"": ""Baseline DCT, Huffman coding"", ""FilePermissions"": ""rw-r--r--"", ""YCbCrSubSampling"": ""YCbCr4:2:2 (2 1)"", ""FileTypeExtension"": ""jpg"", ""FileInodeChangeDate"": ""2020:08:15 21:39:22+00:00""}, ""ExifTool"": {""Warning"": ""[minor] Unrecognized MakerNotes"", ""ExifToolVersion"": 10.61}, ""Composite"": {""ImageSize"": ""2048x1440"", ""Megapixels"": 2.9, ""ShutterSpeed"": ""1/30""}, ""SourceFile"": ""/opt/app/uploads/deployment-images/20191001132016-untitled/29b7d356-4bb4-4ec4-b792-2af5cc32efa8/20200815213922-RCNX0165.JPG""}",true,used for figure
108f94c9,29b7d356,motionDetection,2020-08-02T07:00:17+02:00,https://multimedia.agouti.eu/assets/108f94c9-dbe6-49a5-a2f8-e76934ab0d8f/file,true,20200815213923-RCNX0166.JPG,image/jpeg,,,
cc50edaa,29b7d356,motionDetection,2020-08-02T07:00:18+02:00,https://multimedia.agouti.eu/assets/cc50edaa-ec7d-4c1e-900c-8885e279f9dd/file,true,20200815213924-RCNX0167.JPG,image/jpeg,,,
cc50edaa,29b7d356,motionDetection,2020-08-02T07:00:18+02:00,https://multimedia.agouti.eu/assets/cc50edaa-ec7d-4c1e-900c-8885e279f9dd/file,true,20200815213924-RCNX0167.JPG,image/jpeg,"{""ISO"": 640, ""Make"": ""RECONYX"", ""Flash"": ""Auto, Did not fire"", ""Model"": ""HF2 SECURITY"", ""ColorSpace"": ""sRGB"", ""CreateDate"": ""2020:08:02 07:00:18"", ""ModifyDate"": ""2020:08:02 07:00:18"", ""ExifVersion"": ""0220"", ""XResolution"": 72, ""YResolution"": 72, ""ExposureMode"": ""Auto"", ""ExposureTime"": ""1/30"", ""WhiteBalance"": ""Manual"", ""ExifImageWidth"": 2048, ""ResolutionUnit"": ""inches"", ""TimeZoneOffset"": 0, ""ExifImageHeight"": 1440, ""FlashpixVersion"": ""0100"", ""DateTimeOriginal"": ""2020:08:02 07:00:18"", ""SceneCaptureType"": ""Standard"", ""YCbCrPositioning"": ""Co-sited"", ""ComponentsConfiguration"": ""Y, Cb, Cr, -""}, ""File"": {""FileName"": ""20200815213924-RCNX0167.JPG"", ""FileSize"": ""608 kB"", ""FileType"": ""JPEG"", ""MIMEType"": ""image/jpeg"", ""Directory"": ""/opt/app/uploads/deployment-images/20191001132016-untitled/29b7d356-4bb4-4ec4-b792-2af5cc32efa8"", ""ImageWidth"": 2048, ""ImageHeight"": 1440, ""BitsPerSample"": 8, ""ExifByteOrder"": ""Little-endian (Intel, II)"", ""FileAccessDate"": ""2020:08:15 21:39:24+00:00"", ""FileModifyDate"": ""2020:08:15 21:39:24+00:00"", ""ColorComponents"": 3, ""EncodingProcess"": ""Baseline DCT, Huffman coding"", ""FilePermissions"": ""rw-r--r--"", ""YCbCrSubSampling"": ""YCbCr4:2:2 (2 1)"", ""FileTypeExtension"": ""jpg"", ""FileInodeChangeDate"": ""2020:08:15 21:39:24+00:00""}, ""ExifTool"": {""Warning"": ""[minor] Unrecognized MakerNotes"", ""ExifToolVersion"": 10.61}, ""Composite"": {""ImageSize"": ""2048x1440"", ""Megapixels"": 2.9, ""ShutterSpeed"": ""1/30""}, ""SourceFile"": ""/opt/app/uploads/deployment-images/20191001132016-untitled/29b7d356-4bb4-4ec4-b792-2af5cc32efa8/20200815213924-RCNX0167.JPG""}",true,used for figure
cb2cf96f,29b7d356,motionDetection,2020-08-02T07:00:18+02:00,https://multimedia.agouti.eu/assets/cb2cf96f-7ed0-42da-9ded-5fd99ef85cc1/file,true,20200815213925-RCNX0168.JPG,image/jpeg,,,
0966e552,29b7d356,motionDetection,2020-08-02T07:00:19+02:00,https://multimedia.agouti.eu/assets/0966e552-2b23-4a2a-a21f-8602bdfbf766/file,true,20200815213925-RCNX0169.JPG,image/jpeg,,,
0966e552,29b7d356,motionDetection,2020-08-02T07:00:19+02:00,https://multimedia.agouti.eu/assets/0966e552-2b23-4a2a-a21f-8602bdfbf766/file,true,20200815213925-RCNX0169.JPG,image/jpeg,"{""ISO"": 640, ""Make"": ""RECONYX"", ""Flash"": ""Auto, Did not fire"", ""Model"": ""HF2 SECURITY"", ""ColorSpace"": ""sRGB"", ""CreateDate"": ""2020:08:02 07:00:19"", ""ModifyDate"": ""2020:08:02 07:00:19"", ""ExifVersion"": ""0220"", ""XResolution"": 72, ""YResolution"": 72, ""ExposureMode"": ""Auto"", ""ExposureTime"": ""1/30"", ""WhiteBalance"": ""Manual"", ""ExifImageWidth"": 2048, ""ResolutionUnit"": ""inches"", ""TimeZoneOffset"": 0, ""ExifImageHeight"": 1440, ""FlashpixVersion"": ""0100"", ""DateTimeOriginal"": ""2020:08:02 07:00:19"", ""SceneCaptureType"": ""Standard"", ""YCbCrPositioning"": ""Co-sited"", ""ComponentsConfiguration"": ""Y, Cb, Cr, -""}, ""File"": {""FileName"": ""20200815213925-RCNX0169.JPG"", ""FileSize"": ""615 kB"", ""FileType"": ""JPEG"", ""MIMEType"": ""image/jpeg"", ""Directory"": ""/opt/app/uploads/deployment-images/20191001132016-untitled/29b7d356-4bb4-4ec4-b792-2af5cc32efa8"", ""ImageWidth"": 2048, ""ImageHeight"": 1440, ""BitsPerSample"": 8, ""ExifByteOrder"": ""Little-endian (Intel, II)"", ""FileAccessDate"": ""2020:08:15 21:39:25+00:00"", ""FileModifyDate"": ""2020:08:15 21:39:25+00:00"", ""ColorComponents"": 3, ""EncodingProcess"": ""Baseline DCT, Huffman coding"", ""FilePermissions"": ""rw-r--r--"", ""YCbCrSubSampling"": ""YCbCr4:2:2 (2 1)"", ""FileTypeExtension"": ""jpg"", ""FileInodeChangeDate"": ""2020:08:15 21:39:25+00:00""}, ""ExifTool"": {""Warning"": ""[minor] Unrecognized MakerNotes"", ""ExifToolVersion"": 10.61}, ""Composite"": {""ImageSize"": ""2048x1440"", ""Megapixels"": 2.9, ""ShutterSpeed"": ""1/30""}, ""SourceFile"": ""/opt/app/uploads/deployment-images/20191001132016-untitled/29b7d356-4bb4-4ec4-b792-2af5cc32efa8/20200815213925-RCNX0169.JPG""}",true,used for figure
b6ff482b,29b7d356,motionDetection,2020-08-02T07:00:19+02:00,https://multimedia.agouti.eu/assets/b6ff482b-32a5-43f0-aa03-84dfed50a290/file,true,20200815213925-RCNX0170.JPG,image/jpeg,,,
89e33664,29b7d356,motionDetection,2020-08-02T07:00:30+02:00,https://multimedia.agouti.eu/assets/89e33664-eb70-412f-97a4-8d830b820f46/file,true,20200815213926-RCNX0171.JPG,image/jpeg,,,
bba70d2c,29b7d356,motionDetection,2020-08-02T07:00:30+02:00,https://multimedia.agouti.eu/assets/bba70d2c-6c19-4be9-91ec-25399d243d51/file,true,20200815213927-RCNX0172.JPG,image/jpeg,,,
Expand Down
Loading