Geonadir upload CLI tool.
Project description
geonadir_upload_cli
About
This package is for uploading datasets to Geonadir. You can use it to upload multiple datasets at one time with metadata specified for any or all of them. This cli tool has other functions e.g. searching for dataset or getting dataset information.
Setup
After cloning this repo, run the commands below to install this package.
# create a virtual env before installing if you prefer
(virtualenv env)
(source env/bin/activate)
cd your/repo/directory/geonadir-upload-cli
pip install -e .
Another option is to install from PyPi. Visit https://pypi.org/project/geonadir-upload-cli/ for detail:
# create a virtual env before installing if you prefer
(virtualenv env)
(source env/bin/activate)
pip install geonadir-upload-cli
You can run this cli tool from any location. Add option --help
for command detail, e.g.
geonadir-upload local-upload --help
Call below command for showing current version of the package.
geonadir-upload --version
command details
upload dataset from local image directory
Usage: geonadir-upload local-upload [OPTIONS]
Options:
-
--dry-run
: Show all information of this run without actual running. -
-u, --base-url
: The base url of geonadir api.-
Default is https://api.geonadir.com.
-
Usually leave default.
-
-
-t, --token
: The user token for authentication.- When not specified in command, there will be a password prompt for it. (recommended for security’s sake)
-
-p, --private / --public
: Whether datasets are private.-
Default is public.
-
This option is applied to all datasets in a single run. Use metadata if some of the datasets need to be set differently.
-
-
-m, --metadata
: The path of metadata json file.- The path must exist, otherwise error raised.
-
-o, --output-folder
: Whether output csv is created. Generate output at the specified path.-
Default is false.
-
If flagged without specifying output folder, default is the current path of your terminal.
-
The path must exist, otherwise error raised.
-
-
-c, --complete
: Whether to trigger the orthomosaic processing once uploading is finished.-
Default is false.
-
This option is applied to all datasets in a single run.
-
-
-i, --item
: The name of the dataset and the directory of images to be uploaded.-
This is a multiple option. user can upload multiple datasets by e.g.
... -i dataset1 path1 -i dataset2 path2 ...
-
All path(s) must exist, otherwise error raised.
-
Running
An example of privately uploading ./testimage
as dataset test1 and C:\tmp\testimage
as test2 with metadata file in ./sample_metadata.json
, generating the output csv files in the current folder, and trigger the orthomosaic process when uploading is finished:
geonadir-upload upload-dataset -i test1 testimage -i test2 C:\tmp\testimage -p -m sample_metadata.json -o
The metadata specified in the json file will override the global settings, e.g. is_private
.
sample metadata json
{
"test1": {
"tags": ["tag1", "tag2"],
"description": "test descriptuon",
"data_captured_by": "lan",
"data_credits": "credit1",
"institution_name": "Naxa Pvt Ltd",
"is_published": true,
"is_private": true
},
"test2": {
"tags": "tag2",
"description": "test descriptu123on",
"data_captured_by": "lan",
"data_credits": "credit2",
"institution_name": "Ndsf"
}
}
sample output
Dataset Name | Project ID | Image Name | Response Code | Upload Time | Image Size | Is Image in API? | Image URL |
---|---|---|---|---|---|---|---|
test1 | 3174 | DJI_20220519122501_0041.JPG | 201 | 2.770872116088867 | 22500587 | True | (image_url) |
... | ... | ... | ... | ... | ... | ... | ... |
other usages
searching for dataset by name
Usage: geonadir-upload search-dataset <SEARCH_STR>
sample usage and output:
PS C:\Users\uqtlan> geonadir-upload search-dataset SASMD
[
{
"id": 3256,
"dataset_name": "SASMDD0006"
},
{
"id": 3198,
"dataset_name": "SASMDD0002"
},
{
"id": 3197,
"dataset_name": "SASMDD0003"
},
{
"id": 3255,
"dataset_name": "SASMDD0005"
},
{
"id": 3199,
"dataset_name": "SASMDD0004"
},
{
"id": 2837,
"dataset_name": "SASMDD0001"
}
]
searching for dataset by coordinates
Usage: geonadir-upload range-dataset <coords>
Coordinates should be like lon lat lon lat
.
It needs to be stated with --
if no extra options is specified when coordinates contain negative (see example below).
sample usage and output:
PS C:\Users\uqtlan> geonadir-upload range-dataset -- 24 -34 29 -27
[
{
"id": 2359,
"latitude": -33.47661578,
"longitude": 25.34186233
},
{
"id": 2520,
"latitude": -33.49132739,
"longitude": 26.81348708
},
{
"id": 2876,
"latitude": -29.1854623611111,
"longitude": 26.1971409444444
},
{
"id": 2877,
"latitude": -29.1813107777778,
"longitude": 26.1913818888889
},
{
"id": 2883,
"latitude": -29.1813107777778,
"longitude": 26.1913818888889
},
{
"id": 3003,
"latitude": -33.5088568333333,
"longitude": 26.8160168883333
},
{
"id": 3009,
"latitude": -33.5098297216667,
"longitude": 26.815559
}
]
getting dataset information
Usage: geonadir-upload get-dataset-info <DATASET_ID>
sample usage and output:
PS C:\Users\uqtlan> geonadir-upload get-dataset-info 3198
{
"id": 2863,
"project_id": {
"id": 3198,
"user": "TERN Australia",
"user_id": 4865,
"user_image": null,
"project_institution_name": "",
"project_name": "SASMDD0002",
"tags": "",
"category": [
"Shrubland"
],
"description": "TERN Landscapes, TERN Surveillance Monitoring, Stenson, M., Sparrow, B. & Lucieer, A. (2022): Drone RGB and Multispectral Imagery from TERN plots across Australia. Version 1. Terrestrial Ecosystem Research Network. (Dataset). https://portal.tern.org.au/metadata/TERN/39de90f5-49e3-4567-917c-cf3e3bc93086 Creative Commons Attribution 4.0 International Licence http://creativecommons.org/licenses/by/4.0",
"data_captured_by": "",
"latitude": -34.0123308611111,
"longitude": 140.591931111111,
"created_at": "2023-08-28T03:30:41.907924Z",
"captured_date": "2022-05-19T12:24:21Z",
"location": "Renmark West, Australia",
"image_count": 693,
"data_credits": "",
"is_private": false,
"has_ortho": true,
"has_dsm": true,
"has_dtm": true,
"ic_bbox": [
-34.01593698,
140.58760077,
-34.00872474,
140.59626145
],
"ortho_size": 5071.88,
"raw_images_size": 15171.659
},
"uuid": "b257c851-6ecb-428e-882e-f685b663f9a9",
"metadata":{
...
}
}
Packaging
Ensure setuptool
, pip
, wheel
and build
are up to date.
To build source and wheel package use python -m build
.
To upload package to PyPi use twine
.
Contributing
- Fork the project and clone locally.
- Create a new branch for what you're going to work on.
- Push to your origin repository.
- Create a new pull request in GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for geonadir-upload-cli-1.4.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c414c88382463d678087eebe8bccb20cb5470930d4f2f670036d2729b910a9e |
|
MD5 | 586118312b8de8ac8d5397ccf33d6e02 |
|
BLAKE2b-256 | 955007fde6f85c4c1b58fd9db20114ebac004999028b082aa44efc9a37e1b137 |
Hashes for geonadir_upload_cli-1.4.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 579a52f8dfd416b3804d33f597f05db992a73cc2b6c770f299ac82ce6fbfb383 |
|
MD5 | 59155ff5483a92e4e98a1788a700c5f1 |
|
BLAKE2b-256 | cdecc0a5cdadee1578c0d9675b14c3f38a44c04b12fcf6cc08929bcdb2868cfa |