skytek-arcgis-integration - expose ArcGIS data for Skytek's frontends
Project description
Skytek ArcGis Integration
Prerequisites
Install package:
pip install skytek-arcgis-integration
Add to installed apps in Django configuration:
INSTALLED_APPS += [
"rest_framework",
"skytek_arcgis_integration",
]
Note: you need to add rest_framework
if you don't already have it.
Usage: ad-hoc without configuration
This is the fastest and easiest way of running the integration. Data source url is provided by the user in layer settings. It should be used in proof of concept projects only.
To use this integration simply include urls somewhere in your url config:
urlpatterns = [
...
path("ad-hoc-arcgis/", include("skytek_arcgis_integration.urls")),
]
Usage: ad-hoc with layer configured
This method allows you to set up data source url on the backed.
To use this integration you need to use provided factory to generate view, configure a router and append urls to your configurations:
from generic_map_api.routers import MapApiRouter
from skytek_arcgis_integration.views import arcgis_view_factory
fires_view = arcgis_view_factory("https://services3.arcgis.com/T4QMspbfLg3qTGWY/ArcGIS/rest/services/Current_WildlandFire_Perimeters/FeatureServer/0/")
router = MapApiRouter()
router.register("arc-gis-fires", fires_view, basename="arc-gis-fires")
# existing urlpatterns initialization goes here
urlpatterns += router.urls
Note: For raster map endpoints (url ends with /MapServer
) use arcgis_raster_view_factory
function instead:
from skytek_arcgis_integration.views import arcgis_raster_view_factory
population_view = arcgis_raster_view_factory("https://ciesin.columbia.edu/arcgis/rest/services/ciesin/popgrid_counts/MapServer/")
Usage: generated integration with storage
This method generates a separate, ready to use django application. It contains api client, celery tasks, storage models, view with serializer and django admin page.
Run generation command in your shell:
./manage.py generate_arcgis_integration
and provide configuration details. Only layer base url is required, you can use defaults for the rest.
$ ./manage.py generate_arcgis_integration
Enter base layer_url: https://services3.arcgis.com/T4QMspbfLg3qTGWY/ArcGIS/rest/services/Current_WildlandFire_Perimeters/FeatureServer/0
Enter full module path [arcgis.fh_perimeters]:
Enter model name [FhPerimeter]:
Enter celery app path [react_events.celery.app]:
Now add newly generated module to your INSTALLED_APPS
, ie.:
INSTALLED_APPS += [
"rest_framework",
"skytek_arcgis_integration",
"arcgis.fh_perimeters",
]
Run migrations, ie.:
./manage makemigrations arcgis.fh_perimeters
./manage migrate
And include urls in your configuration, ie.:
urlpatterns = [
...
path("fh_perimeters/", include("arcgis.fh_perimeters.urls")),
]
Appendix: Interesting data sources
Feature layers
- Wild land fire perimeters: https://services3.arcgis.com/T4QMspbfLg3qTGWY/ArcGIS/rest/services/Current_WildlandFire_Perimeters/FeatureServer/0/
- Water flow gauges: https://services9.arcgis.com/RHVPKKiFTONKtxq3/ArcGIS/rest/services/Live_Stream_Gauges_v1/FeatureServer/0/
- USA Flood hazard areas: https://services.arcgis.com/P3ePLMYs2RVChkJx/ArcGIS/rest/services/USA_Flood_Hazard_Reduced_Set_gdb/FeatureServer/0/
Raster maps
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
Built Distribution
File details
Details for the file skytek-arcgis-integration-0.2.0.tar.gz
.
File metadata
- Download URL: skytek-arcgis-integration-0.2.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2dcc839aa39c1c16336569e3d3700448684a7bbcb9800ed434ac2d10a6565e27 |
|
MD5 | 33840ed76b30699906b7ca377ed156ad |
|
BLAKE2b-256 | 61604dced0e560572adf2567898bba30116d7db7ff47f432f14bf02fe569f84a |
File details
Details for the file skytek_arcgis_integration-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: skytek_arcgis_integration-0.2.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d252c6298ddd01b2dcc3ba8eca7eca0c85cb94778c1ea2478ea1edbc1454b175 |
|
MD5 | 2420cd52833ecbbc3a34ffdcc6a84ca7 |
|
BLAKE2b-256 | c5042c55386d19635cd5b281d2c615c357c87b7e51b81695b8c05bef2b2d9905 |