跳转到主要内容

未提供项目描述

项目描述

logo

谐振地理数据核心应用程序

Kitware PyPI

包含文件和权限管理以及空间模型的谐振地理数据(RGD)核心应用程序。其他所有RGD应用程序都依赖于在此构建的核心功能。

安装

pip install --find-links https://girder.github.io/large_image_wheels django-rgd

使用带有RGD应用程序的postgis数据库是必要的。要做到这一点,将您的数据库ENGINE设置为django.contrib.gis.db.backends.postgis

将RGD添加到您的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

(注意:RGD需要django-crum中间件。)

还需要在项目设置中配置GDAL

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

配置

RGD核心应用程序有几个可选设置

  • RGD_GLOBAL_READ_ACCESS:允许所有用户访问无权限的文件(否则只有管理员用户可以访问这些文件)的选项
  • RGD_FILE_FIELD_PREFIX:上传文件到项目S3存储时的路径前缀。
  • RGD_AUTO_APPROVE_SIGN_UP:自动批准所有用户注册。
  • RGD_AUTO_COMPUTE_CHECKSUMS:自动计算所有ChecksumFile记录的校验和(默认为False)。
  • RGD_TEMP_DIR:工作文件的临时目录。
  • RGD_TARGET_AVAILABLE_CACHE:缓存的目标可用空间(以千兆字节为单位,默认为2)。
  • RGD_REST_CACHE_TIMEOUT:REST视图缓存的秒数(对于缓存的端点)。
  • RGD_SIGNED_URL_TTL:URL签名有效的秒数(默认为24小时)。
  • RGD_SIGNED_URL_QUERY_PARAM:签名查询字符串变量名(默认为signature)。
  • RGD_DEBUG_LOGS:启用RGD的调试级别日志(默认为True)。

模型

  • ChecksumFile:中心文件存储模型。支持上传的文件、S3 URL和http URL。
  • CollectionCollectionPermission:用于对文件进行分组以及控制这些组上的权限组。
  • SpatialEntry:索引空间元数据的核心模型。此模型旨在被继承,同时也提供了一个强大的搜索过滤器。
  • SpatialAsset:一个简单的空间模型,用于注册任何具有手动输入的空间元数据的文件集合。
  • WhitelistedEmail:一个用于预先批准用户注册的模型。

核心RGD应用旨在被继承以开发特定领域的地理空间模型。例如,我们将演示此应用中简单SpatialAsset模型的实现。

我们可以在django-rgd的基础上通过继承核心SpatialEntry模型和使用来自django-rgd的一些混入类来开发一个新模型。这个新模型将代表具有一些空间参考的文件集合。

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='+')

就这样,您现在有了将一组文件关联到任何地理空间位置的方法。要填充此模型中的数据,首先创建ChecksumFile记录,然后创建一个新的SpatialAsset,填充从SpatialEntry定义的字段:acquisition_datefootprintoutlineinstrumentation

管理命令

核心应用有两个管理命令

  • rgd_s3_files:用于从S3或Google Cloud存储中导入ChecksumFile
  • whitelist_email:预先批准用户注册。

使用--help选项获取更多详细信息。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码发行版

django-rgd-0.3.11.tar.gz (70.6 kB 查看哈希值)

上传时间 源代码

构建发行版

django_rgd-0.3.11-py3-none-any.whl (92.8 kB 查看哈希值)

上传时间 Python 3

支持