Resonant GeoData Core Application
The core Resonant GeoData (RGD) app containing file and permissions management as well as spatial models. Each of the other RGD apps depend on the core functionality built here.
Installation
pip install --find-links https://girder.github.io/large_image_wheels django-rgd
It is necessary to use a postgis database with the RGD apps. To do so, set your
database ENGINE to django.contrib.gis.db.backends.postgis.
Add RGD to your INSTALLED_APPS:
INSTALLED_APPS += [
'django.contrib.gis',
'rgd',
]
MIDDLEWARE += ('crum.CurrentRequestUserMiddleware',)
REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] += ('rest_framework.authentication.TokenAuthentication',)
# doesn't have to use girder_utils if downstream projects don't have it installed, but this must be set to *something* valid to enable pagination in the API
REST_FRAMEWORK['DEFAULT_PAGINATION_CLASS'] = 'girder_utils.rest_framework.BoundedLimitOffsetPagination'
REST_FRAMEWORK['PAGE_SIZE'] = 100 # or whatever default pagination size you want
(note that RGD requires django-crum middleware.)
It is also necessary to configure GDAL in your project settings:
try:
import re
import osgeo
libsdir = os.path.join(os.path.dirname(os.path.dirname(osgeo._gdal.__file__)), 'GDAL.libs')
libs = {re.split(r'-|\.', name)[0]: os.path.join(libsdir, name) for name in os.listdir(libsdir)}
GDAL_LIBRARY_PATH = libs['libgdal']
GEOS_LIBRARY_PATH = libs['libgeos_c']
except Exception:
pass
Configurations
The RGD core app has a few optional settings:
RGD_GLOBAL_READ_ACCESS: option to give all users access to files that lack permissions (otherwise only admin users can access these files)RGD_FILE_FIELD_PREFIX: the path prefix when uploading files to the project's S3 storage.RGD_AUTO_APPROVE_SIGN_UP: automatically approve all user sign ups.RGD_AUTO_COMPUTE_CHECKSUMS: automatically compute checksums for all ChecksumFile records (default False)RGD_TEMP_DIR: A temporary directory for working filesRGD_TARGET_AVAILABLE_CACHE: The target free space to remain for the cache in Gigabytes (default 2).RGD_REST_CACHE_TIMEOUT: the time in seconds for the REST views cache (for endpoints that are cached).RGD_SIGNED_URL_TTL: The time in seconds for which URL signatures are valid (defaults to 24 hours).RGD_SIGNED_URL_QUERY_PARAM: The signature querystring variable name (defaults tosignature).RGD_DEBUG_LOGS: enable debug level logging for RGD (default True)
Models
ChecksumFile: the central file storage model. Supports uploaded files, S3 URLs, and http URLS.CollectionandCollectionPermission: for grouping files and controlling permission groups on those groups.SpatialEntry: the core model for indexing spatial metadata. This is intended to be inherited from but also provides a robust search filter.SpatialAsset: a simple spatial model for registering any collection of files with manually inputted spatial metadata.WhitelistedEmail: a model for pre-approving users for sign up.
The core RGD app is intended to be inherited from for developing domain-specific
geospatial models. For instance, we will demo the implementation of the simple
SpatialAsset model shipped in this app.
We can develop a new model on top of django-rgd through the inheritting the
core SpatialEntry model and using a few mixin classes from django-rgd. This
new model will represent a collection of files with some spatial reference.
from django_extensions.db.models import TimeStampedModel
from rgd.models import ChecksumFile, SpatialEntry
class SpatialAsset(SpatialEntry, TimeStampedModel):
"""Any spatially referenced file set."""
files = models.ManyToManyField(ChecksumFile, related_name='+')
Just like that, you now have a way to associate a set of files to any geospatial
location. To populate data in this model, first create ChecksumFile records,
then create a new SpatialAsset populating the fields defined from
SpatialEntry: acquisition_date, footprint, outline, and instrumentation.
Management Commands
The core app has two management commands:
rgd_s3_files: used to ingestChecksumFiles from S3 or Google Cloud storage.whitelist_email: pre-approve users for sign-up.
Use the --help option for more details.
Metadata
Release files for django-rgd 0.3.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| django-rgd-0.3.11.tar.gz | 70.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_rgd-0.3.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 163.4 kB
Release files / django-rgd-0.3.11.tar.gz
| Download URL | django-rgd-0.3.11.tar.gz |
|---|---|
| Size | 70.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6612be891f23319e16676381bcfc46374591d86784b7981ea37a2980835527c5
|
|
BLAKE2b-256 checksum How to use checksums |
946144175e6e0b6269d8ef424d12abd57d30fb65d53cae1b792199ab6727efb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.8.12
|
Release files / django_rgd-0.3.11-py3-none-any.whl
| Download URL | django_rgd-0.3.11-py3-none-any.whl |
|---|---|
| Size | 92.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e77f5f37e32141353ad23c0161c43c41873486b69b0abc23ae61177a57e6c358
|
|
BLAKE2b-256 checksum How to use checksums |
cfd2089f085a4760529477645e68eaee6c6045fa3ea8b8c659fab1b3be673734
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.8.12
|
Security for django-rgd 0.3.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.