未提供项目描述
项目描述
谐振地理数据核心应用程序
包含文件和权限管理以及空间模型的谐振地理数据(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。Collection
和CollectionPermission
:用于对文件进行分组以及控制这些组上的权限组。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_date
、footprint
、outline
和instrumentation
。
管理命令
核心应用有两个管理命令
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 查看哈希值)