You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## How to describe bounding boxes of detected objects?
10
14
@@ -36,7 +40,7 @@ There are two ways to include additional information (values not covered by the
36
40
37
41
### Using tags
38
42
39
-
Deployment and observation tables include [`deploymentTags`](/data/#deployments.deploymentTags) and [`observationTags`](/data/#observations.observationTags) fields. You can use these fields to store additional information as key:value pairs, separated by a pipe character (|). For example, this is how temperature and snow cover information could be represented in the deployment table:
43
+
Deployment and observation tables include [`deploymentTags`](/data/#deployments.deploymentTags) and [`observationTags`](/data/#observations.observationTags) fields. You can use these fields to store additional information as key:value pairs, separated by a pipe character (`|`). For example, this is how temperature and snow cover information could be represented in the deployment table:
40
44
41
45
deploymentID | deploymentTags
42
46
--- | ---
@@ -51,50 +55,50 @@ You can add a custom table to the data package to store additional information.
51
55
52
56
```json
53
57
{
54
-
"name": "deployment-measurements",
55
-
"title": "Deployment measurements",
56
-
"description": "Table with weather measurements for deployments. Associated with deployments (`deploymentID`).",
57
-
"fields": [
58
-
{
59
-
"name": "deploymentID",
60
-
"description": "Identifier of the deployment. Foreign key to `deployments.deploymentID`.",
"description": "Temperature (in Celsius) at the time of the observation.)",
75
+
"type": "number",
76
+
"constraints": {
77
+
"required": false,
78
+
"minimum": -50,
79
+
"maximum": 100
80
+
},
81
+
"example": 19.5
82
+
},
83
+
{
84
+
"name": "snowCover",
85
+
"description": "Snow cover present at the time of the observation.",
86
+
"type": "boolean",
87
+
"constraints": {
88
+
"required": false
89
+
},
90
+
"example": true
91
+
}
92
+
],
93
+
"foreignKeys": [
94
+
{
95
+
"fields": "deploymentID",
96
+
"reference": {
97
+
"resource": "deployments",
98
+
"fields": "deploymentID"
99
+
}
100
+
}
101
+
]
98
102
}
99
103
```
100
104
@@ -120,6 +124,55 @@ We provide an [R package](https://inbo.github.io/camtrapdp/) to read and manipul
120
124
121
125
Consult the merge function documentation to understand exactly how specific fields are merged to avoid information loss. Please note that when merging data packages x and y, the [`project$samplingDesign`](/metadata/#project.samplingDesign) field in the resulting package will be set to the value of `project$samplingDesign` from data package x. Therefore, we recommend merging data packages only for projects that use the same sampling design.
122
126
127
+
{:id="large-tables"}
128
+
## Do I need to use CSV files?
129
+
130
+
No. Some studies have media and observations tables with over a million records, which may be hard to produce or consume as CSV files. Here are two approaches for formatting large files:
131
+
132
+
### gzipped CSV files
133
+
134
+
By compressing a CSV file, you can often reduce its size by a factor. We recommend gzip over zip, as it allows direct file reading. Compressed CSV files are supported in all versions of Camtrap DP, by [frictionless-py][frictionless-py] and the [camtrapdp][camtrapdp] R package.
135
+
136
+
1. Compress the file:
137
+
138
+
```
139
+
gzip media.csv
140
+
```
141
+
142
+
2. Refer to the compressed CSV file in the `datapackage.json` as follows:
[Apache Parquet](https://parquet.apache.org/) is an open source data file format, designed for efficient data storage and retrieval. Parquet files are supported in Camtrap DP 1.0.2, by the [frictionless-py][frictionless-py] after installing an [extension](https://framework.frictionlessdata.io/docs/formats/parquet.html), but **not by the [camtrapdp][camtrapdp] R package** (as it is not yet supported by [its dependency](https://github.com/frictionlessdata/frictionless-r/issues/117)).
159
+
160
+
1. Create the parquet file (e.g. with the arrow R package).
161
+
162
+
2. Refer to the parquet file in the `datapackage.json` as follows:
0 commit comments