Skip to main content

No project description provided

Project description

logo

Resonant GeoData Core Application

PyPI

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',)

(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 files
  • RGD_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).
  • MEMCACHED_USERNAME, MEMCACHED_PASSWORD, and MEMCACHED_URL: use if hosting a memcached server to set the default django cache.
  • 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 to signature).
  • 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.
  • Collection and CollectionPermission: 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 ingest ChecksumFiles from S3 or Google Cloud storage.
  • whitelist_email: pre-approve users for sign-up.

Use the --help option for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-rgd-0.2.12.tar.gz (65.8 kB view details)

Uploaded Source

Built Distribution

django_rgd-0.2.12-py3-none-any.whl (85.7 kB view details)

Uploaded Python 3

File details

Details for the file django-rgd-0.2.12.tar.gz.

File metadata

  • Download URL: django-rgd-0.2.12.tar.gz
  • Upload date:
  • Size: 65.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

File hashes

Hashes for django-rgd-0.2.12.tar.gz
Algorithm Hash digest
SHA256 027d999688e34bdbf8e5f393bfcdb63f583796284c9a7c22c791613f846678fd
MD5 c1fc43e002b4ce68b393dcb41fd69d0a
BLAKE2b-256 a1f1484fa6295f9aff120a38c88d4f7f616b04ffde7954eb6dd2eeeacea3112a

See more details on using hashes here.

File details

Details for the file django_rgd-0.2.12-py3-none-any.whl.

File metadata

  • Download URL: django_rgd-0.2.12-py3-none-any.whl
  • Upload date:
  • Size: 85.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

File hashes

Hashes for django_rgd-0.2.12-py3-none-any.whl
Algorithm Hash digest
SHA256 06e7e01118bbf3e559510fab201bea91a5b1e52a919eb03872e194b4b48e35ac
MD5 7553b65d92e0ea4e5312e4ed5e7e27ec
BLAKE2b-256 84c08dd7ec3622520d0b64f1a75b8ed03a8239f8f117c567d9499b8d68e3363b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page