├── LICENSE ├── OSM_LandCover └── OSM_LandCover_Mask ├── README.md ├── baobab ├── README.md ├── modulefiles │ └── dc_utils.own └── py_src │ ├── __init__.py │ ├── opendc_utils │ ├── __init__.py │ └── data_cube_utilities │ │ ├── __init__.py │ │ ├── data_access_api.py │ │ ├── dc_display_map.py │ │ ├── dc_fractional_coverage_classifier.py │ │ ├── dc_mosaic.py │ │ ├── dc_rgb.py │ │ ├── dc_time.py │ │ ├── dc_utilities.py │ │ ├── dc_water_classifier.py │ │ ├── dc_water_quality.py │ │ ├── import_export.py │ │ └── wasard.py │ ├── swiss_utils │ ├── __init__.py │ ├── data_cube_utilities │ │ ├── __init__.py │ │ ├── sdc_advutils.py │ │ ├── sdc_devtools.py │ │ ├── sdc_monit.py │ │ └── sdc_utilities.py │ └── define_mod_locs.py │ └── utils │ └── data_cube_utilities │ ├── aggregate.py │ ├── clean_mask.py │ ├── curve_fitting.py │ ├── dask.py │ ├── data_access_api.py │ ├── data_stats.py │ ├── dc_baseline.py │ ├── dc_ccd.py │ ├── dc_chunker.py │ ├── dc_clustering.py │ ├── dc_coastal_change.py │ ├── dc_display_map.py │ ├── dc_displayutil.py │ ├── dc_fractional_coverage_classifier.py │ ├── dc_load.py │ ├── dc_mosaic.py │ ├── dc_ndvi_anomaly.py │ ├── dc_rgb.py │ ├── dc_sar_utils.py │ ├── dc_slip.py │ ├── dc_time.py │ ├── dc_utilities.py │ ├── dc_water_classifier.py │ ├── dc_water_quality.py │ ├── endmembers_landsat.csv │ ├── import_export.py │ ├── plotter_utils.py │ ├── plotter_utils_consts.py │ ├── raster_filter.py │ ├── scale.py │ ├── shapefile_mask.py │ ├── sort.py │ ├── transect │ ├── __init__.py │ ├── interpolate.py │ ├── line_scan.py │ ├── ordered_set.py │ ├── tests │ │ ├── test_interpolate.py │ │ └── test_linescan.py │ └── xarraypath.py │ ├── trend.py │ ├── unique.py │ ├── urbanization.py │ ├── vegetation.py │ ├── wasard.py │ └── xarray_bokeh_plotting.py ├── docs ├── assets │ ├── frameworks-77c3b874f32e71b14cded5a120f42f5c7288fa52e0a37f2d5919fbd8bcfca63c.css │ ├── github-9127cf9ba467dad0fd4917a7a402ad6cfa7b939bc149519d28b564124c740f3f.css │ └── site-955690c4e09b2eeb3627ae6048471522eb98b42054150bd855ad4183db364816.css ├── bug_fix │ ├── fix_SLIP_tool.md │ └── fix_fractional_cover_tool.md ├── customization │ ├── adapt_scale_to_custom_mosaic_product.md │ ├── changing_collection_1_mask_options.md │ ├── changing_pre-collection_mask_options.md │ ├── create_and_ingest_new_product.md │ ├── datacube_ui_cores │ └── remove_dont_have_an_account.md ├── docs.md ├── installation │ ├── arcsi_installation.md │ ├── ows_addon.md │ └── sen2cor_installation.md ├── media │ ├── admin_C1_product.png │ └── ordering_ESPA.png └── notes │ ├── restart.md │ └── usage.md ├── hackathon ├── README.md └── results │ └── README.md ├── ingestors ├── Landsat │ ├── ls5_c1_ard_scene.yaml │ ├── ls5_ledaps_switzerland.yaml │ ├── ls7_c1_ard_scene.yaml │ ├── ls7_ledaps_switzerland.yaml │ ├── ls8_c1_ard_scene.yaml │ ├── ls8_lasrc_switzerland.yaml │ └── usgs_ls_c1_ard_prepare.py ├── S1 │ ├── s1_l3comp_scenes.yaml │ ├── s1_l3comp_switzerland.yaml │ └── uzh_s1_l3comp_prepare.py └── S2 │ ├── gee_s2_ard_prepare.py │ ├── s2_ard_scene.yaml │ └── s2_l2a_switzerland.yaml ├── notebooks ├── README.md ├── demo_FUN_draw_map.ipynb ├── demo_FUN_easy_export.ipynb ├── demo_FUN_easy_map.ipynb ├── demo_FUN_monit_sys.ipynb ├── demo_FUN_printandlog.ipynb ├── diagrams │ └── documentation │ │ ├── MS_netcdf_in_QGIS.png │ │ ├── aspect_comparo.png │ │ ├── landscape_water_demo.png │ │ ├── mask_bands_table.png │ │ ├── monit_sys_demo.png │ │ ├── monthy_anomaly_figures.png │ │ ├── ndvi_anomaly_products.png │ │ ├── printandlog_figure.png │ │ └── s2_monthly_anomaly_veg_only.png ├── land_degradation │ ├── landcover.ipynb │ ├── landproductivity.ipynb │ └── soc.ipynb ├── log_notebook_activity.ipynb ├── monthly_anomaly.ipynb └── swiss_utils │ ├── __pycache__ │ └── sdc_utilities.cpython-35.pyc │ └── sdc_utilities.py ├── scripts └── README.md └── viewer ├── .Rhistory ├── CHANGELOG.md ├── README.md ├── assets ├── css │ ├── app.css │ └── primer.css ├── img │ ├── clippy.svg │ ├── favicon-120.png │ ├── favicon-152.png │ ├── favicon-196.png │ ├── favicon-76.png │ ├── favicon.ico │ ├── globe.png │ └── metadata.png └── js │ └── app.js ├── config.js ├── index.html ├── leaflet ├── images │ ├── layers-2x.png │ ├── layers.png │ ├── marker-icon-2x.png │ ├── marker-icon.png │ └── marker-shadow.png ├── leaflet-src.js ├── leaflet-src.js.map ├── leaflet.css ├── leaflet.js ├── leaflet.js.map └── plugin │ ├── clipboard │ ├── .babelrc │ ├── .editorconfig │ ├── .github │ │ └── issue_template.md │ ├── .gitignore │ ├── .npmignore │ ├── .travis.yml │ ├── demo │ │ ├── constructor-node.html │ │ ├── constructor-nodelist.html │ │ ├── constructor-selector.html │ │ ├── function-target.html │ │ ├── function-text.html │ │ ├── target-div.html │ │ ├── target-input.html │ │ └── target-textarea.html │ └── dist │ │ ├── clipboard.js │ │ └── clipboard.min.js │ ├── coordinates │ ├── L.Control.MousePosition.css │ └── L.Control.MousePosition.js │ ├── extent │ ├── leaflet.defaultextent.css │ ├── leaflet.defaultextent.js │ ├── leaflet.defaultextent.png │ └── leaflet.defaultextent@2X.png │ ├── fullscreen │ ├── .eslintrc │ ├── .mversionrc │ ├── Control.FullScreen.css │ ├── Control.FullScreen.js │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── icon-fullscreen-2x.png │ ├── icon-fullscreen.png │ ├── index.html │ └── package.json │ ├── leaflet-easyPrint │ ├── .eslintrc │ ├── .gitignore │ ├── .npmignore │ └── dist │ │ ├── bundle.js │ │ └── bundle.js.map │ ├── leaflet-fullHash │ └── leaflet-fullHash.js │ ├── leaflet-groupedlayercontrol │ ├── MIT-LICENSE.txt │ ├── leaflet.groupedlayercontrol.css │ └── leaflet.groupedlayercontrol.js │ ├── leaflet-side-by-side │ ├── .gitignore │ ├── .npmignore │ ├── index.js │ ├── layout.css │ ├── leaflet-side-by-side.js │ ├── leaflet-side-by-side.min.js │ ├── range-icon.png │ └── range.css │ ├── leaflet-sidebar │ ├── .gitignore │ ├── .travis.yml │ ├── .travis │ │ ├── deploy.sh │ │ └── deploy_key.pem.enc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── examples │ │ ├── bootstrap.html │ │ ├── index.html │ │ ├── listing-markers.html │ │ └── two-sidebars.html │ ├── gulpfile.js │ ├── leaflet-sidebar.gif │ ├── package.json │ └── src │ │ ├── L.Control.Sidebar.css │ │ ├── L.Control.Sidebar.js │ │ └── L.Control.Sidebar.scss │ ├── leaflet-storymap │ ├── README.md │ ├── img │ │ ├── 1847-HPHS-Catalog1904p164.jpg │ │ ├── 1905-HPHS-postcard.jpg │ │ ├── BradleyAirport.jpg │ │ └── TrinityCollege.jpg │ ├── index.html │ ├── map.csv │ ├── map.geojson │ ├── markers │ │ ├── images │ │ │ ├── markers_default.png │ │ │ ├── markers_default@2x.png │ │ │ ├── markers_shadow.png │ │ │ └── markers_shadow@2x.png │ │ ├── leaflet.extra-markers.min.css │ │ └── leaflet.extra-markers.min.js │ ├── script.js │ └── style.css │ ├── leaflet-sync │ ├── .eslintrc │ ├── .gitignore │ ├── .mversionrc │ ├── .travis.yml │ └── L.Map.Sync.js │ └── storymap-master │ ├── index.html │ ├── license.txt │ ├── readme.md │ ├── storymap.js │ └── style.css └── versions ├── 0.9.9 ├── CHANGELOG.md ├── README.md ├── assets │ ├── css │ │ └── app.css │ ├── img │ │ ├── favicon-120.png │ │ ├── favicon-152.png │ │ ├── favicon-196.png │ │ ├── favicon-76.png │ │ ├── favicon.ico │ │ ├── globe.png │ │ └── metadata.png │ └── js │ │ └── app.js ├── config.js ├── index.html └── leaflet │ ├── images │ ├── layers-2x.png │ ├── layers.png │ ├── marker-icon-2x.png │ ├── marker-icon.png │ └── marker-shadow.png │ ├── leaflet-src.js │ ├── leaflet-src.js.map │ ├── leaflet.css │ ├── leaflet.js │ ├── leaflet.js.map │ └── plugin │ ├── coordinates │ ├── L.Control.MousePosition.css │ └── L.Control.MousePosition.js │ ├── extent │ ├── leaflet.defaultextent.css │ ├── leaflet.defaultextent.js │ ├── leaflet.defaultextent.png │ └── leaflet.defaultextent@2X.png │ ├── fullscreen │ ├── .eslintrc │ ├── .mversionrc │ ├── Control.FullScreen.css │ ├── Control.FullScreen.js │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── icon-fullscreen-2x.png │ ├── icon-fullscreen.png │ ├── index.html │ └── package.json │ ├── leaflet-easyPrint │ ├── .eslintrc │ ├── .gitignore │ ├── .npmignore │ └── dist │ │ ├── bundle.js │ │ └── bundle.js.map │ ├── leaflet-fullHash │ └── leaflet-fullHash.js │ └── leaflet-groupedlayercontrol │ ├── MIT-LICENSE.txt │ ├── leaflet.groupedlayercontrol.css │ └── leaflet.groupedlayercontrol.js ├── 1.0.0 ├── CHANGELOG.md ├── README.md ├── assets │ ├── css │ │ └── app.css │ ├── img │ │ ├── favicon-120.png │ │ ├── favicon-152.png │ │ ├── favicon-196.png │ │ ├── favicon-76.png │ │ ├── favicon.ico │ │ ├── globe.png │ │ └── metadata.png │ └── js │ │ └── app.js ├── config.js ├── index.html └── leaflet │ ├── images │ ├── layers-2x.png │ ├── layers.png │ ├── marker-icon-2x.png │ ├── marker-icon.png │ └── marker-shadow.png │ ├── leaflet-src.js │ ├── leaflet-src.js.map │ ├── leaflet.css │ ├── leaflet.js │ ├── leaflet.js.map │ └── plugin │ ├── coordinates │ ├── L.Control.MousePosition.css │ └── L.Control.MousePosition.js │ ├── extent │ ├── leaflet.defaultextent.css │ ├── leaflet.defaultextent.js │ ├── leaflet.defaultextent.png │ └── leaflet.defaultextent@2X.png │ ├── fullscreen │ ├── .eslintrc │ ├── .mversionrc │ ├── Control.FullScreen.css │ ├── Control.FullScreen.js │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── icon-fullscreen-2x.png │ ├── icon-fullscreen.png │ ├── index.html │ └── package.json │ ├── leaflet-easyPrint │ ├── .eslintrc │ ├── .gitignore │ ├── .npmignore │ └── dist │ │ ├── bundle.js │ │ └── bundle.js.map │ ├── leaflet-fullHash │ └── leaflet-fullHash.js │ └── leaflet-groupedlayercontrol │ ├── MIT-LICENSE.txt │ ├── leaflet.groupedlayercontrol.css │ └── leaflet.groupedlayercontrol.js ├── 1.1.0 ├── CHANGELOG.md ├── README.md ├── assets │ ├── css │ │ └── app.css │ ├── img │ │ ├── favicon-120.png │ │ ├── favicon-152.png │ │ ├── favicon-196.png │ │ ├── favicon-76.png │ │ ├── favicon.ico │ │ ├── globe.png │ │ └── metadata.png │ └── js │ │ └── app.js ├── config.js ├── index.html └── leaflet │ ├── images │ ├── layers-2x.png │ ├── layers.png │ ├── marker-icon-2x.png │ ├── marker-icon.png │ └── marker-shadow.png │ ├── leaflet-src.js │ ├── leaflet-src.js.map │ ├── leaflet.css │ ├── leaflet.js │ ├── leaflet.js.map │ └── plugin │ ├── coordinates │ ├── L.Control.MousePosition.css │ └── L.Control.MousePosition.js │ ├── extent │ ├── leaflet.defaultextent.css │ ├── leaflet.defaultextent.js │ ├── leaflet.defaultextent.png │ └── leaflet.defaultextent@2X.png │ ├── fullscreen │ ├── .eslintrc │ ├── .mversionrc │ ├── Control.FullScreen.css │ ├── Control.FullScreen.js │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── icon-fullscreen-2x.png │ ├── icon-fullscreen.png │ ├── index.html │ └── package.json │ ├── leaflet-easyPrint │ ├── .eslintrc │ ├── .gitignore │ ├── .npmignore │ └── dist │ │ ├── bundle.js │ │ └── bundle.js.map │ ├── leaflet-fullHash │ └── leaflet-fullHash.js │ └── leaflet-groupedlayercontrol │ ├── MIT-LICENSE.txt │ ├── leaflet.groupedlayercontrol.css │ └── leaflet.groupedlayercontrol.js ├── 1.1.1 ├── CHANGELOG.md ├── README.md ├── assets │ ├── css │ │ └── app.css │ ├── img │ │ ├── favicon-120.png │ │ ├── favicon-152.png │ │ ├── favicon-196.png │ │ ├── favicon-76.png │ │ ├── favicon.ico │ │ ├── globe.png │ │ └── metadata.png │ └── js │ │ └── app.js ├── config.js ├── index.html └── leaflet │ ├── images │ ├── layers-2x.png │ ├── layers.png │ ├── marker-icon-2x.png │ ├── marker-icon.png │ └── marker-shadow.png │ ├── leaflet-src.js │ ├── leaflet-src.js.map │ ├── leaflet.css │ ├── leaflet.js │ ├── leaflet.js.map │ └── plugin │ ├── coordinates │ ├── L.Control.MousePosition.css │ └── L.Control.MousePosition.js │ ├── extent │ ├── leaflet.defaultextent.css │ ├── leaflet.defaultextent.js │ ├── leaflet.defaultextent.png │ └── leaflet.defaultextent@2X.png │ ├── fullscreen │ ├── .eslintrc │ ├── .mversionrc │ ├── Control.FullScreen.css │ ├── Control.FullScreen.js │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── icon-fullscreen-2x.png │ ├── icon-fullscreen.png │ ├── index.html │ └── package.json │ ├── leaflet-easyPrint │ ├── .eslintrc │ ├── .gitignore │ ├── .npmignore │ └── dist │ │ ├── bundle.js │ │ └── bundle.js.map │ ├── leaflet-fullHash │ └── leaflet-fullHash.js │ └── leaflet-groupedlayercontrol │ ├── MIT-LICENSE.txt │ ├── leaflet.groupedlayercontrol.css │ └── leaflet.groupedlayercontrol.js └── 1.3.0 ├── CHANGELOG.md ├── README.md ├── assets ├── css │ ├── app.css │ └── primer.css ├── img │ ├── clippy.svg │ ├── favicon-120.png │ ├── favicon-152.png │ ├── favicon-196.png │ ├── favicon-76.png │ ├── favicon.ico │ ├── globe.png │ └── metadata.png └── js │ └── app.js ├── config.js ├── index.html └── leaflet ├── images ├── layers-2x.png ├── layers.png ├── marker-icon-2x.png ├── marker-icon.png └── marker-shadow.png ├── leaflet-src.js ├── leaflet-src.js.map ├── leaflet.css ├── leaflet.js ├── leaflet.js.map └── plugin ├── clipboard ├── .babelrc ├── .editorconfig ├── .github │ └── issue_template.md ├── .gitignore ├── .npmignore ├── .travis.yml ├── demo │ ├── constructor-node.html │ ├── constructor-nodelist.html │ ├── constructor-selector.html │ ├── function-target.html │ ├── function-text.html │ ├── target-div.html │ ├── target-input.html │ └── target-textarea.html └── dist │ ├── clipboard.js │ └── clipboard.min.js ├── coordinates ├── L.Control.MousePosition.css └── L.Control.MousePosition.js ├── extent ├── leaflet.defaultextent.css ├── leaflet.defaultextent.js ├── leaflet.defaultextent.png └── leaflet.defaultextent@2X.png ├── fullscreen ├── .eslintrc ├── .mversionrc ├── Control.FullScreen.css ├── Control.FullScreen.js ├── LICENSE ├── README.md ├── bower.json ├── icon-fullscreen-2x.png ├── icon-fullscreen.png ├── index.html └── package.json ├── leaflet-easyPrint ├── .eslintrc ├── .gitignore ├── .npmignore └── dist │ ├── bundle.js │ └── bundle.js.map ├── leaflet-fullHash └── leaflet-fullHash.js ├── leaflet-groupedlayercontrol ├── MIT-LICENSE.txt ├── leaflet.groupedlayercontrol.css └── leaflet.groupedlayercontrol.js ├── leaflet-side-by-side ├── .gitignore ├── .npmignore ├── index.js ├── layout.css ├── leaflet-side-by-side.js ├── leaflet-side-by-side.min.js ├── range-icon.png └── range.css ├── leaflet-sidebar ├── .gitignore ├── .travis.yml ├── .travis │ ├── deploy.sh │ └── deploy_key.pem.enc ├── CHANGELOG.md ├── LICENSE ├── README.md ├── bower.json ├── examples │ ├── bootstrap.html │ ├── index.html │ ├── listing-markers.html │ └── two-sidebars.html ├── gulpfile.js ├── leaflet-sidebar.gif ├── package.json └── src │ ├── L.Control.Sidebar.css │ ├── L.Control.Sidebar.js │ └── L.Control.Sidebar.scss ├── leaflet-storymap ├── README.md ├── img │ ├── 1847-HPHS-Catalog1904p164.jpg │ ├── 1905-HPHS-postcard.jpg │ ├── BradleyAirport.jpg │ └── TrinityCollege.jpg ├── index.html ├── map.csv ├── map.geojson ├── markers │ ├── images │ │ ├── markers_default.png │ │ ├── markers_default@2x.png │ │ ├── markers_shadow.png │ │ └── markers_shadow@2x.png │ ├── leaflet.extra-markers.min.css │ └── leaflet.extra-markers.min.js ├── script.js └── style.css ├── leaflet-sync ├── .eslintrc ├── .gitignore ├── .mversionrc ├── .travis.yml └── L.Map.Sync.js └── storymap-master ├── index.html ├── license.txt ├── readme.md ├── storymap.js └── style.css /README.md: -------------------------------------------------------------------------------- 1 | # Swiss Data Cube 2 | Welcome tho the Swiss Data Cube (SDC) repository. 3 | The SDC is using the CEOS Open Data Cube technology to provide access and analysis capabilities to all Landsat (5,7,8), Sentinel 1, and Sentinel 2 data covering Switzerland from 1984 to present days. 4 | 5 | * [Documentation](docs/docs.md) and [Wiki](wiki) to get useuful information for installing, managing, and using a Data Cube. 6 | * The SDC [Viewer](viewer) is a web-based application used to visualize, query, and download products generated with the Swiss Data Cube. It uses [GeoServer](http://www.geoserver.org) to serve EO data. 7 | * Jupyter [Notebooks](notebooks) to interact with the Swiss Data Cube 8 | -------------------------------------------------------------------------------- /baobab/modulefiles/dc_utils.own: -------------------------------------------------------------------------------- 1 | #%Module######################################################################## 2 | # 3 | # ODC and SDC utilities module file 4 | 5 | proc ModulesHelp { } { 6 | puts stderr "Adds Open datacube and Swiss datacube utilities to the Python environment" 7 | } 8 | 9 | module-whatis "Loads Open and Swiss datacube utilities" 10 | 11 | # put here your path to SwissDataCube/baobab/py_src/, e.g. 12 | # prepend-path PYTHONPATH /home/my_username/my_libs/SwissDataCube/baobab/py_src/ 13 | prepend-path PYTHONPATH REPLACE_THIS_BY_YOUR_PATH 14 | -------------------------------------------------------------------------------- /baobab/py_src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/baobab/py_src/__init__.py -------------------------------------------------------------------------------- /baobab/py_src/opendc_utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/baobab/py_src/opendc_utils/__init__.py -------------------------------------------------------------------------------- /baobab/py_src/opendc_utils/data_cube_utilities/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/baobab/py_src/opendc_utils/data_cube_utilities/__init__.py -------------------------------------------------------------------------------- /baobab/py_src/opendc_utils/data_cube_utilities/dc_time.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def dt_to_str(date, fmt='%Y-%m-%d'): 4 | """ 5 | Converts a datetime object to a string. 6 | """ 7 | return date.strftime(fmt) 8 | 9 | def _n64_to_datetime(n64): 10 | """ 11 | Converts Numpy 64 bit timestamps to datetime objects. Units in seconds 12 | """ 13 | return datetime.utcfromtimestamp(n64.tolist() / 1e9) 14 | 15 | def _n64_datetime_to_scalar(dt64): 16 | """ 17 | Converts a NumPy datetime64 object to the number of seconds since 18 | midnight, January 1, 1970, as a NumPy float64. 19 | 20 | Returns 21 | ------- 22 | scalar: numpy.float64 23 | The number of seconds since midnight, January 1, 1970, as a NumPy float64. 24 | """ 25 | return (dt64 - np.datetime64('1970-01-01T00:00:00Z')) / np.timedelta64(1, 's') 26 | 27 | def _scalar_to_n64_datetime(scalar): 28 | """ 29 | Converts a floating point number to a NumPy datetime64 object. 30 | 31 | Returns 32 | ------- 33 | dt64: numpy.datetime64 34 | The NumPy datetime64 object representing the datetime of the scalar argument. 35 | """ 36 | return (scalar * np.timedelta64(1, 's')) + np.datetime64('1970-01-01T00:00:00Z') -------------------------------------------------------------------------------- /baobab/py_src/opendc_utils/data_cube_utilities/import_export.py: -------------------------------------------------------------------------------- 1 | import time 2 | import numpy as np 3 | from . import dc_utilities 4 | 5 | ## Export ## 6 | 7 | def export_slice_to_geotiff(ds, path): 8 | """ 9 | Exports a single slice of an xarray.Dataset as a GeoTIFF. 10 | 11 | ds: xarray.Dataset 12 | The Dataset to export. 13 | path: str 14 | The path to store the exported GeoTIFF. 15 | """ 16 | kwargs = dict(tif_path=path, dataset=ds.astype(np.float32), bands=list(ds.data_vars.keys())) 17 | if 'crs' in ds.attrs: 18 | kwargs['crs'] = str(ds.attrs['crs']) 19 | dc_utilities.write_geotiff_from_xr(**kwargs) 20 | 21 | def export_xarray_to_geotiff(ds, path): 22 | """ 23 | Exports an xarray.Dataset as individual time slices. 24 | 25 | Parameters 26 | ---------- 27 | ds: xarray.Dataset 28 | The Dataset to export. 29 | path: str 30 | The path prefix to store the exported GeoTIFFs. For example, 'geotiffs/mydata' would result in files named like 31 | 'mydata_2016_12_05_12_31_36.tif' within the 'geotiffs' folder. 32 | """ 33 | def time_to_string(t): 34 | return time.strftime("%Y_%m_%d_%H_%M_%S", time.gmtime(t.astype(int)/1000000000)) 35 | 36 | for t in ds.time: 37 | time_slice_xarray = ds.sel(time = t) 38 | export_slice_to_geotiff(time_slice_xarray, 39 | path + "_" + time_to_string(t) + ".tif") 40 | 41 | ## End export ## -------------------------------------------------------------------------------- /baobab/py_src/swiss_utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/baobab/py_src/swiss_utils/__init__.py -------------------------------------------------------------------------------- /baobab/py_src/swiss_utils/data_cube_utilities/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/baobab/py_src/swiss_utils/data_cube_utilities/__init__.py -------------------------------------------------------------------------------- /baobab/py_src/swiss_utils/define_mod_locs.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append("..") 3 | sys.path.append("../..") 4 | # sys.path.append("/home/jovyan/notebooks/dcal") -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/data_stats.py: -------------------------------------------------------------------------------- 1 | import xarray as xr 2 | 3 | ## Data Availability ## 4 | 5 | def find_gaps(data_arr, aggregation_method): 6 | """ 7 | Finds the minimum, mean, median, or maximum time difference between True values 8 | in a boolean xarray.DataArray. This should be a faster implementation. 9 | 10 | Parameters 11 | ---------- 12 | data_arr: xarray.DataArray of bool 13 | DataArray of boolean values denoting which elements are desired. 14 | Examples of desired elements include clear views (or "non-cloud pixels"). 15 | This DataArray must have a 'time' dimension. 16 | aggregation_method: str 17 | The aggregation method to use. Can be any of ['min', 'mean', 'median', 'max']. 18 | 19 | Returns 20 | ------- 21 | gaps: xarray.DataArray of float64 22 | The time gaps between True values in `data_arr`. Due to limitations of the numpy.datetime64 data type, 23 | the time differences are in seconds, stored as np.float64. 24 | """ 25 | from .dc_time import _n64_datetime_to_scalar 26 | 27 | # 1. Convert time from numpy.datetime64 to scalars and broadcast along latitude and longitude. 28 | time = _n64_datetime_to_scalar(data_arr.time) 29 | time, _, _ = xr.broadcast(time, data_arr.latitude, data_arr.longitude) 30 | # 2. Fill each undesired point with its previous desired point's time and find the time differences. 31 | mask = data_arr == 1 32 | time = time.where(mask) 33 | time = time.ffill(dim='time') 34 | time_diff = time.diff('time') 35 | # A time difference is only 0 because of differencing after the forward fill. 36 | time_diff = time_diff.where(time_diff != 0) 37 | # 3. Calculate the desired statistic for the time differences. 38 | if aggregation_method == 'min': return time_diff.min('time') 39 | if aggregation_method == 'mean': return time_diff.mean('time') 40 | if aggregation_method == 'median': return time_diff.median('time') 41 | if aggregation_method == 'max': return time_diff.max('time') 42 | 43 | ## End Data Availability ## -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/dc_sar_utils.py: -------------------------------------------------------------------------------- 1 | import xarray as xr 2 | import numpy as np 3 | 4 | 5 | #db is given by 10*log10(DN) + CF. for ALOS this is apparently -83, 0 for s1 6 | #modifies in place. 7 | def dn_to_db(dataset_in, data_vars=['hh', 'hv'], cf=-83): 8 | for data_var in data_vars: 9 | dataset_in[data_var] = ( 10 | 10 * xr.ufuncs.log10(xr.ufuncs.square(dataset_in[data_var].astype('float64'))) + cf).astype('float32') 11 | -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/dc_time.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from datetime import datetime 3 | 4 | def dt_to_str(date, fmt='%Y-%m-%d'): 5 | """ 6 | Converts a datetime object to a string. 7 | """ 8 | return date.strftime(fmt) 9 | 10 | def _n64_to_datetime(n64): 11 | """ 12 | Converts Numpy 64 bit timestamps to datetime objects. Units in seconds 13 | """ 14 | return datetime.utcfromtimestamp(n64.tolist() / 1e9) 15 | 16 | def _n64_datetime_to_scalar(dt64): 17 | """ 18 | Converts a NumPy datetime64 object to the number of seconds since 19 | midnight, January 1, 1970, as a NumPy float64. 20 | 21 | Returns 22 | ------- 23 | scalar: numpy.float64 24 | The number of seconds since midnight, January 1, 1970, as a NumPy float64. 25 | """ 26 | return (dt64 - np.datetime64('1970-01-01T00:00:00Z')) / np.timedelta64(1, 's') 27 | 28 | def _scalar_to_n64_datetime(scalar): 29 | """ 30 | Converts a floating point number to a NumPy datetime64 object. 31 | 32 | Returns 33 | ------- 34 | dt64: numpy.datetime64 35 | The NumPy datetime64 object representing the datetime of the scalar argument. 36 | """ 37 | return (scalar * np.timedelta64(1, 's')) + np.datetime64('1970-01-01T00:00:00Z') -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/endmembers_landsat.csv: -------------------------------------------------------------------------------- 1 | 0.221278,0.194657,0.185084 2 | 0.158646,0.124426,0.133194 3 | 0.318769,0.353266,0.351759 4 | 0.27837,0.205394,0.219051 5 | 0.110084,0.207552,0.195807 6 | 0.240117,0.313152,0.372525 7 | -0.00350365,-0.0136971,-0.0252406 8 | -0.45829,-0.489322,-0.451449 9 | 0.00336074,0.0565252,0.026707 10 | -0.102095,-0.214333,-0.191102 11 | -0.431983,-0.343912,-0.3986 12 | -0.120435,-0.186504,-0.130198 13 | -0.356991,-0.349285,-0.34865 14 | -0.273501,-0.258459,-0.264982 15 | -0.369887,-0.35342,-0.332965 16 | -0.308914,-0.294818,-0.285217 17 | -0.41083,-0.276556,-0.243608 18 | -0.47814,-0.319201,-0.259104 19 | 0.0471296,0.00541363,-0.0144294 20 | 0.0672315,0.0330578,0.0134346 21 | 0.0961602,0.0463529,0.0250543 22 | 0.0553179,0.0345365,0.014565 23 | 0.0537376,0.0266596,0.0184105 24 | 0.0513707,0.0216845,0.00962467 25 | 0.0734568,0.0192625,0.00656426 26 | 0.00159656,-0.00577743,-0.0140936 27 | 0.0118977,-0.00509826,0.00269739 28 | 0.14005,0.107032,0.0912866 29 | 0.0297587,0.0760549,0.0730475 30 | 0.0366517,0.0648199,0.0852012 31 | 0.0796892,0.0702537,0.0586763 32 | 0.0983765,0.0713539,0.085325 33 | -0.0920991,0.0392889,0.0796964 34 | -0.00286206,-0.0310567,-0.0308064 35 | 0.00332116,0.0176412,0.00479461 36 | -0.0183138,-0.0417001,-0.0202645 37 | -0.0826381,-0.0597683,-0.0815997 38 | 0.0910667,0.114301,0.123672 39 | -0.0413266,-0.00853333,-0.0110451 40 | -0.266485,-0.243911,-0.208223 41 | -0.11121,-0.0795158,-0.0885339 42 | 0.0248843,-0.0103428,0.00376874 43 | 0.413122,0.41799,0.362451 44 | -0.20743,-0.193644,-0.19598 45 | 0.125396,0.0725202,0.0962061 46 | 0.153951,0.153932,0.175212 47 | -0.213856,-0.271798,-0.269369 48 | -0.0451829,-0.0389898,-0.0567644 49 | -0.204545,-0.21806,-0.196447 50 | 0.028604,0.0448428,0.0379768 51 | 0.100117,0.0171461,0.0262317 52 | -0.181644,-0.133052,-0.169625 53 | -0.100321,-0.152294,-0.0979239 54 | 0.218034,0.251028,0.218154 55 | 0.263396,0.205769,0.192002 56 | 0.0144514,0.0765301,0.00908153 57 | 0.121607,0.0628187,0.0826527 58 | 0.0858304,-0.0312874,-0.00785044 59 | -0.27968,-0.290508,-0.304775 60 | -0.119071,-0.218026,-0.159731 61 | -0.133257,-0.0817596,-0.132507 62 | 0.112391,0.0352191,0.0184495 63 | 0.217303,0.131567,0.181877 64 | -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/plotter_utils_consts.py: -------------------------------------------------------------------------------- 1 | # The number of points to use in smooth curve fits. 2 | n_pts_smooth = 2000 3 | default_fourier_n_harm = 10 -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/sort.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def xarray_sortby_coord(dataset, coord): 4 | """ 5 | Sort an xarray.Dataset by a coordinate. xarray.Dataset.sortby() sometimes fails, so this is an alternative. 6 | Credit to https://stackoverflow.com/a/42600594/5449970. 7 | """ 8 | return dataset.loc[{coord:np.sort(dataset.coords[coord].values)}] -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/transect/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/baobab/py_src/utils/data_cube_utilities/transect/__init__.py -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/transect/interpolate.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from itertools import islice 3 | 4 | nan = np.nan 5 | 6 | def window(seq, n=2): 7 | "Returns a sliding window (of width n) over data from the iterable" 8 | " s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ... " 9 | it = iter(seq) 10 | result = tuple(islice(it, n)) 11 | if len(result) == n: 12 | yield result 13 | for elem in it: 14 | result = result[1:] + (elem,) 15 | yield result 16 | 17 | def hex_to_rgb(rgbstr): 18 | rgbstr= rgbstr.replace('#','') 19 | hex_prefix = '0x' 20 | 21 | r = hex_prefix + rgbstr[:2] 22 | g = hex_prefix + rgbstr[2:4] 23 | b = hex_prefix + rgbstr[4:] 24 | 25 | return np.array([int(r, 16), 26 | int(g, 16), 27 | int(b, 16)]) 28 | 29 | def _bin_and_index(value, size): 30 | '''Takes two arguments. value and size. value is a float between 0 and 1, size is the number of bins into which 31 | we divide the range 0 and 1. An index is returned denoting which of these bins value falls into 32 | ''' 33 | for i in range(size): 34 | if value > i/size and value <= (i + 1)/size: 35 | return i 36 | return 0 37 | 38 | def get_gradient(colors, value): 39 | ''' make sure the value is between 0 and 1. If the value is between 0 and 1, you will get interpolated values in between. 40 | This displays gradients with quadruple digit precision 41 | ''' 42 | 43 | if np.isnan(value): 44 | return np.array([nan,nan,nan]) 45 | 46 | colors = [np.array(hex_to_rgb(color)) for color in colors] 47 | color_pairs = list(window(colors)) 48 | 49 | size = len(color_pairs) 50 | index = _bin_and_index(value,size) 51 | color1,color2 = color_pairs[index] 52 | 53 | direction = (color2 - color1).astype(float) 54 | 55 | v = value * size - index 56 | return (v * direction) + color1 57 | 58 | -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/transect/line_scan.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def _reformat(xs, ys): 4 | '''Zips a list of xs and a list of ys. Converts to np.array. Casts to int''' 5 | return np.array(list(zip(xs, ys))).astype(int) 6 | 7 | def line_scan(c1, c2): 8 | ''' 9 | Accepts two integer coordinate pairs, c1 and c2. 10 | Returns a list of integer coordinate pairs representing all points on the line drawn between c1 and c2. 11 | ''' 12 | 13 | c1 = np.array(c1) 14 | c2 = np.array(c2) 15 | x_direction = int( 2 * (int(c1[0] < c2[0]) - .5)) 16 | y_direction = int( 2 * (int(c1[1] < c2[1]) - .5)) 17 | 18 | if c1[0] == c2[0]: 19 | range_of_ys = list(range(c1[1], c2[1] + 1, y_direction)) 20 | range_of_xs = [c1[0] for x in range_of_ys] 21 | return _reformat(range_of_xs, range_of_ys) 22 | 23 | if c1[1] == c2[1]: 24 | range_of_xs = list(range(c1[0], c2[0] + 1, x_direction)) 25 | range_of_ys = [c1[1] for x in range_of_xs] 26 | return _reformat(range_of_xs, range_of_ys) 27 | 28 | dy = c2[1] - c1[1] 29 | dx = c2[0] - c1[0] 30 | 31 | m = dy/dx 32 | _y = c1[1] 33 | _x = c1[0] 34 | 35 | sign = 1 if m > 0 else -1 36 | 37 | if abs(m) >= 1: 38 | 39 | range_of_ys = list(range(c1[1], c2[1] + sign, sign*x_direction)) 40 | range_of_xs = [ (((y-_y)/m) + _x)//1 for y in range_of_ys] 41 | return _reformat(range_of_xs, range_of_ys) 42 | 43 | elif abs(m) < 1: 44 | 45 | range_of_xs = list(range(c1[0], c2[0] + 1, x_direction)) 46 | range_of_ys = [ (m * (x-_x))//1 + _y for x in range_of_xs] 47 | 48 | return _reformat(range_of_xs, range_of_ys) -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/transect/ordered_set.py: -------------------------------------------------------------------------------- 1 | import collections 2 | 3 | class OrderedSet(collections.MutableSet): 4 | 5 | def __init__(self, iterable=None): 6 | self.end = end = [] 7 | end += [None, end, end] # sentinel node for doubly linked list 8 | self.map = {} # key --> [key, prev, next] 9 | if iterable is not None: 10 | self |= iterable 11 | 12 | def __len__(self): 13 | return len(self.map) 14 | 15 | def __contains__(self, key): 16 | return key in self.map 17 | 18 | def add(self, key): 19 | if key not in self.map: 20 | end = self.end 21 | curr = end[1] 22 | curr[2] = end[1] = self.map[key] = [key, curr, end] 23 | 24 | def discard(self, key): 25 | if key in self.map: 26 | key, prev, next = self.map.pop(key) 27 | prev[2] = next 28 | next[1] = prev 29 | 30 | def __iter__(self): 31 | end = self.end 32 | curr = end[2] 33 | while curr is not end: 34 | yield curr[0] 35 | curr = curr[2] 36 | 37 | def __reversed__(self): 38 | end = self.end 39 | curr = end[1] 40 | while curr is not end: 41 | yield curr[0] 42 | curr = curr[1] 43 | 44 | def pop(self, last=True): 45 | if not self: 46 | raise KeyError('set is empty') 47 | key = self.end[1][0] if last else self.end[2][0] 48 | self.discard(key) 49 | return key 50 | 51 | def __repr__(self): 52 | if not self: 53 | return '%s()' % (self.__class__.__name__,) 54 | return '%s(%r)' % (self.__class__.__name__, list(self)) 55 | 56 | def __eq__(self, other): 57 | if isinstance(other, OrderedSet): 58 | return len(self) == len(other) and list(self) == list(other) 59 | return set(self) == set(other) 60 | 61 | 62 | -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/transect/xarraypath.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def get_index_at(coords, ds): 4 | lat = coords[0] 5 | lon = coords[1] 6 | 7 | nearest_lat = ds.sel(latitude = lat, method = 'nearest').latitude.values 8 | nearest_lon = ds.sel(longitude = lon, method = 'nearest').longitude.values 9 | 10 | lat_index = np.where(ds.latitude.values == nearest_lat)[0] 11 | lon_index = np.where(ds.longitude.values == nearest_lon)[0] 12 | 13 | return (int(lat_index), int(lon_index)) 14 | 15 | def create_pixel_trail(start, end, ds): 16 | a = get_index_at(start, ds) 17 | b = get_index_at(end, ds) 18 | 19 | indices = line_scan(a, b) 20 | 21 | pixels = [ ds.isel(latitude = x, longitude = y) for x, y in indices] 22 | return pixels 23 | 24 | 25 | -------------------------------------------------------------------------------- /baobab/py_src/utils/data_cube_utilities/unique.py: -------------------------------------------------------------------------------- 1 | def dask_array_uniques(arr): 2 | """ 3 | Returns the unique values for a Dask Array object. 4 | 5 | Parameters 6 | ---------- 7 | arr: dask.array.core.Array 8 | 9 | Returns 10 | ------- 11 | uniques: numpy.ndarray 12 | """ 13 | import dask 14 | 15 | return dask.dataframe.from_dask_array(arr.flatten())\ 16 | .drop_duplicates().to_dask_array(lengths=True).compute() -------------------------------------------------------------------------------- /docs/bug_fix/fix_SLIP_tool.md: -------------------------------------------------------------------------------- 1 | # Fix SLIP tool 2 | Using https://earthexplorer.usgs.gov/ > Data Sets > Digital Elevation > ASTER GLOBAL DEM. 3 | Download tiles and unzip them on the server in */original_data/* folder. 4 | ``` 5 | cd ~/Datacube/agdc-v2 6 | source ~/Datacube/datacube_env/bin/activate 7 | datacube product add ingest/dataset_types/aster_gdem/aster_gdem_product_definition.yaml # DO IT ONLY THE 1ST TIME 8 | datacube product list # just to check 9 | python ./ingest/prepare_scripts/aster_gdem/aster_gdem2_prepare_bc.py -p /datacube/original_data/ASTGTM2_N42E042/ # modified by BC: ASTGTM2_N??W???_ -> ASTGTM2_???????_ 10 | datacube dataset add /datacube/original_data/*/*.yaml --auto-match 11 | datacube -v ingest -c ./ingest/ingestion_configs/aster_gdem_wgs84_georgia.yaml --executor multiproc 3 12 | deactivate 13 | ``` 14 | -------------------------------------------------------------------------------- /docs/bug_fix/fix_fractional_cover_tool.md: -------------------------------------------------------------------------------- 1 | # Fix fractional cover tool 2 | Rename 'localuser' to 'sdcuser' in *data_cube_ui/utils/dc_fractional_coverage_classifier.py* 3 | ```python 4 | end_members = np.loadtxt( 5 | '/home/sdcuser/Datacube/data_cube_ui/utils/endmembers_landsat.csv', delimiter=',') 6 | ``` 7 | If the change is not effective, type: 8 | ``` 9 | sudo /etc/init.d/data_cube_ui restart 10 | sudo /etc/init.d/celerybeat restart 11 | ``` 12 | -------------------------------------------------------------------------------- /docs/customization/adapt_scale_to_custom_mosaic_product.md: -------------------------------------------------------------------------------- 1 | # Adapt scale to custom mosaic product 2 | In the case the datacube contains products with large values range difference (for example USGS SR values are ~10x the values of GRID made SR). 3 | * Modify lines 390 and 455 *data_cube_ui/apps/custom_mosaic_tool/tasks.py* into (the range need to be adapted) 4 | ```python 5 | scale = (0, 4096) if "C1" in task.platform else (0, 500), 6 | ``` 7 | * Then via ssh: 8 | ``` 9 | sudo /etc/init.d/data_cube_ui restart 10 | sudo /etc/init.d/celerybeat restart 11 | ``` 12 | -------------------------------------------------------------------------------- /docs/customization/changing_collection_1_mask_options.md: -------------------------------------------------------------------------------- 1 | # Changing collection 1 mask options 2 | 3 | Identify the bit values using the appropriate *yaml* in *agdc-v2/ingest/dataset_types* 4 | 5 | ```yaml 6 | - name: 'pixel_qa' 7 | aliases: [pixel_qa] 8 | dtype: uint16 9 | nodata: 1 10 | units: 'bit_index' 11 | flags_definition: 12 | pixel_qa: 13 | bits: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] 14 | description: Level 2 Pixel Quality Band 15 | values: 16 | 1: Fill 17 | 2: Clear 18 | 4: Water 19 | 8: Cloud shadow 20 | 16: Snow 21 | 32: Cloud 22 | 64: Cloud Confidence Low Bit 23 | 128: Cloud Confidence High Bit 24 | 256: Unused 25 | 512: Unused 26 | 1024: Unused 27 | 2048: Unused 28 | 4096: Unused 29 | 8192: Unused 30 | 16384: Unused 31 | 32786: Unused 32 | ``` 33 | 34 | Then adapt the *create_cfmask_clean_mask* function in the appropriate task.py (in our case *data_cube_ui/apps/custom_mosaic_tool/tasl.py*): 35 | ```python 36 | clear_mask = create_cfmask_clean_mask(data.cf_mask) if 'cf_mask' in data else create_bit_mask(data.pixel_qa, 37 | [1, 2, 4]) 38 | ``` 39 | Be careful as you can have several fucntion called several time in a single python script. 40 | 41 | Another radical option is to bypass the *valid_bits* list in the script *data_cube_ui/utils/dc_utilities*: 42 | ```python 43 | def create_bit_mask(data_array, valid_bits, no_data=-9999): 44 | valid_bits = [1, 2, 4] 45 | ``` 46 | If the change is not effective, type: 47 | ``` 48 | sudo /etc/init.d/data_cube_ui restart 49 | sudo /etc/init.d/celerybeat restart 50 | ``` 51 | -------------------------------------------------------------------------------- /docs/customization/changing_pre-collection_mask_options.md: -------------------------------------------------------------------------------- 1 | # Changing pre-collection mask options 2 | Adapt the clean_mask values in *data_cube_ui/utils/dc_utilities.py* 3 | ```python 4 | ######################### 5 | # cfmask values: # 6 | # 0 - clear # 7 | # 1 - water # 8 | # 2 - cloud shadow # 9 | # 3 - snow # 10 | # 4 - cloud # 11 | # 255 - fill # 12 | ######################### 13 | 14 | clean_mask = (cfmask == 0) | (cfmask == 1) 15 | ``` 16 | -------------------------------------------------------------------------------- /docs/customization/datacube_ui_cores: -------------------------------------------------------------------------------- 1 | # Number of Workers 2 | 3 | Depending the number of CPU and amount of RAM the number of parallel process has to be adapted. 4 | 5 | Thi operation can be done in /etc/default/data_cube_ui 6 | 7 | Default value in place from CEOS is 10 workers: 8 | #CELERYD_OPTS="-c 10 -Ofair" 9 | 10 | Around 2Go is necessary by worker. For 50Go RAM for Swiss DC 11 | CELERYD_OPTS="-c 25 -Ofair" 12 | -------------------------------------------------------------------------------- /docs/customization/remove_dont_have_an_account.md: -------------------------------------------------------------------------------- 1 | # Remove "Don't have an account? Register here." from Login screen 2 | In *data_cube_ui/apps/accounts/templates/registration/login.html*, comment the part: 3 | ```html 4 | 5 | 9 | {% endblock %} 10 | ``` 11 | Finally rename the registration.py file 12 | -------------------------------------------------------------------------------- /docs/docs.md: -------------------------------------------------------------------------------- 1 | # Documentation 2 | ## installation 3 | [ARCSI installation](installation/arcsi_installation.md) 4 | 5 | [SEN2COR installation](installation/sen2cor_installation.md) 6 | 7 | [OWS Addon installation](installation/ows_addon.md) 8 | 9 | ## bug fix 10 | [Fix fractional cover tool](bug_fix/fix_fractional_cover_tool.md) 11 | 12 | [Fix SLIP tool](bug_fix/fix_SLIP_tool.md) 13 | 14 | ## customization 15 | [Adapt scale to custom mosaic product](customization/adapt_scale_to_custom_mosaic_product.md) 16 | 17 | [Changing collection 1 mask options](customization/changing_collection_1_mask_options.md) 18 | 19 | [Changing pre-collection mask options](customization/changing_pre-collection_mask_options.md) 20 | 21 | [Create and ingest a new product (e.g. Landsat 7 Collection 1)](customization/create_and_ingest_new_product.md) 22 | 23 | [Remove "Don't have an account? Register here." from Login screen](customization/remove_dont_have_an_account.md) 24 | 25 | ## notes 26 | [Usage](notes/usage.md) 27 | 28 | [Restart datacube procedure](notes/restart.md) 29 | -------------------------------------------------------------------------------- /docs/installation/arcsi_installation.md: -------------------------------------------------------------------------------- 1 | # ARCSI installation 2 | ## Install anaconda 3 | ``` 4 | wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh 5 | bash Miniconda3-latest-Linux-x86_64.sh 6 | source ~/.bashrc 7 | rm Miniconda3-latest-Linux-x86_64.sh 8 | conda update conda --yes 9 | ``` 10 | ## Install ARCSI 11 | ``` 12 | conda create --name osgeoenv python=3.5 --yes 13 | source activate osgeoenv 14 | conda install -c conda-forge arcsi --yes 15 | conda update -c conda-forge --all 16 | arcsi.py -h # To test installation 17 | source deactivate 18 | ``` 19 | -------------------------------------------------------------------------------- /docs/installation/sen2cor_installation.md: -------------------------------------------------------------------------------- 1 | # SEN2COR installation 2 | ``` 3 | wget http://step.esa.int/thirdparties/sen2cor/2.5.5/Sen2Cor-02.05.05-Linux64.run 4 | bash Sen2Cor-02.05.05-Linux64.run --target ./aux/sen2cor205 5 | /home/localuser/aux/sen2cor205/bin/L2A_Process # To test installation 6 | rm Sen2Cor-02.05.05-Linux64.run 7 | ``` 8 | -------------------------------------------------------------------------------- /docs/media/admin_C1_product.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/docs/media/admin_C1_product.png -------------------------------------------------------------------------------- /docs/media/ordering_ESPA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/docs/media/ordering_ESPA.png -------------------------------------------------------------------------------- /docs/notes/restart.md: -------------------------------------------------------------------------------- 1 | # Restart datacube procedure 2 | 3 | ``` 4 | sudo swapon /swap-1G.img 5 | sudo /etc/init.d/data_cube_ui restart 6 | sudo /etc/init.d/celerybeat restart 7 | cd /home/sdcuser/Datacube/data_cube_notebooks/ 8 | source /home/sdcuser/Datacube/datacube_env/bin/activate 9 | export XDG_RUNTIME_DIR="" 10 | jupyter notebook --no-browser --ip='*' --port='8080' 11 | ctrl-z 12 | bg 13 | disown 14 | ``` 15 | -------------------------------------------------------------------------------- /hackathon/results/README.md: -------------------------------------------------------------------------------- 1 | # Group results 2 | Please upload your code, documentation etc... 3 | -------------------------------------------------------------------------------- /ingestors/S1/s1_l3comp_scenes.yaml: -------------------------------------------------------------------------------- 1 | name: s1_l3comp_scene 2 | description: Sentinel 1 Gamma0 L3 12 day backscatter composite 3 | metadata_type: eo 4 | 5 | metadata: 6 | format: {name: GeoTIFF} 7 | instrument: {name: SAR} 8 | platform: {code: SENTINEL_1_L3C} 9 | product_type: gamma0 10 | 11 | measurements: 12 | - name: 'vh_gamma0' 13 | aliases: [band_01, B01, Band1, vh, VH] 14 | units: '1' 15 | dtype: float32 16 | nodata: -9999 17 | 18 | - name: 'vv_gamma0' 19 | aliases: [band_02, B02, Band2, vv, VV] 20 | units: '1' 21 | dtype: float32 22 | nodata: -9999 23 | -------------------------------------------------------------------------------- /notebooks/README.md: -------------------------------------------------------------------------------- 1 | # Notebooks 2 | Jupyter notebooks 3 | -------------------------------------------------------------------------------- /notebooks/diagrams/documentation/MS_netcdf_in_QGIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/diagrams/documentation/MS_netcdf_in_QGIS.png -------------------------------------------------------------------------------- /notebooks/diagrams/documentation/aspect_comparo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/diagrams/documentation/aspect_comparo.png -------------------------------------------------------------------------------- /notebooks/diagrams/documentation/landscape_water_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/diagrams/documentation/landscape_water_demo.png -------------------------------------------------------------------------------- /notebooks/diagrams/documentation/mask_bands_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/diagrams/documentation/mask_bands_table.png -------------------------------------------------------------------------------- /notebooks/diagrams/documentation/monit_sys_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/diagrams/documentation/monit_sys_demo.png -------------------------------------------------------------------------------- /notebooks/diagrams/documentation/monthy_anomaly_figures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/diagrams/documentation/monthy_anomaly_figures.png -------------------------------------------------------------------------------- /notebooks/diagrams/documentation/ndvi_anomaly_products.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/diagrams/documentation/ndvi_anomaly_products.png -------------------------------------------------------------------------------- /notebooks/diagrams/documentation/printandlog_figure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/diagrams/documentation/printandlog_figure.png -------------------------------------------------------------------------------- /notebooks/diagrams/documentation/s2_monthly_anomaly_veg_only.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/diagrams/documentation/s2_monthly_anomaly_veg_only.png -------------------------------------------------------------------------------- /notebooks/swiss_utils/__pycache__/sdc_utilities.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/notebooks/swiss_utils/__pycache__/sdc_utilities.cpython-35.pyc -------------------------------------------------------------------------------- /scripts/README.md: -------------------------------------------------------------------------------- 1 | # Scripts 2 | Python processing scripts 3 | -------------------------------------------------------------------------------- /viewer/.Rhistory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/.Rhistory -------------------------------------------------------------------------------- /viewer/README.md: -------------------------------------------------------------------------------- 1 | # SwissDataCube - Viewer 2 | This is the repository for the SwissDataCUbe - Viewer. 3 | The aim is to develop an application to visualize, query, and download time-series data produced by the SwissDataCube. 4 | It is based on bootleaf (https://github.com/bmcbride/bootleaf) providing a simple, responsive template for building web mapping applications with [Bootstrap](http://getbootstrap.com/), [Leaflet](http://leafletjs.com/), and [typeahead.js](http://twitter.github.io/typeahead.js/). 5 | 6 | Data are published using GeoServer (http://www.geoserver.org) to provide an interoperable access to data using OGC WMS & WCS standards. 7 | 8 | The viewer allows: 9 | - Visualizing and Downloading single raster product layers 10 | - Visualizing and Downloading time-series raster product layers 11 | - Generating graph for a given pixel of a time-series raster product layer 12 | - Access products in your own client with WMS & WCS standards 13 | - Metadata support 14 | -------------------------------------------------------------------------------- /viewer/assets/img/clippy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /viewer/assets/img/favicon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/assets/img/favicon-120.png -------------------------------------------------------------------------------- /viewer/assets/img/favicon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/assets/img/favicon-152.png -------------------------------------------------------------------------------- /viewer/assets/img/favicon-196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/assets/img/favicon-196.png -------------------------------------------------------------------------------- /viewer/assets/img/favicon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/assets/img/favicon-76.png -------------------------------------------------------------------------------- /viewer/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/assets/img/favicon.ico -------------------------------------------------------------------------------- /viewer/assets/img/globe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/assets/img/globe.png -------------------------------------------------------------------------------- /viewer/assets/img/metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/assets/img/metadata.png -------------------------------------------------------------------------------- /viewer/config.js: -------------------------------------------------------------------------------- 1 | var appConfig={ 2 | 'appVersion' : '1.3.1', 3 | 'appVersionDate' : '[23.09.2019]', 4 | 'gsHost' : 'https://geoserver.swissdatacube.org/geoserver/ows?', 5 | 'mapZoom' : '8', 6 | 'mapMinZoom' : '7', 7 | 'mapMaxZoom' : '15', 8 | 'mapCenter' : [46.78, 8.22], 9 | 'cswLayer1' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:L8_CHmosaic_2016&outputSchema=http://www.isotc211.org/2005/gmd', 10 | 'cswLayer2' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:clipch_95_051&outputSchema=http://www.isotc211.org/2005/gmd', 11 | 'cswLayer3' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:clipch_05_171&outputSchema=http://www.isotc211.org/2005/gmd', 12 | 'cswLayer4' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:diff_all_CH&outputSchema=http://www.isotc211.org/2005/gmd', 13 | 'cswLayer5' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=atlas:sites&outputSchema=http://www.isotc211.org/2005/gmd', 14 | }; -------------------------------------------------------------------------------- /viewer/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /viewer/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/images/layers.png -------------------------------------------------------------------------------- /viewer/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /viewer/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /viewer/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015"], 3 | "plugins": ["transform-es2015-modules-umd"] 4 | } 5 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # http://editorconfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | # Change these settings to your own preference 9 | indent_style = space 10 | indent_size = 4 11 | 12 | # We recommend you to keep these unchanged 13 | end_of_line = lf 14 | charset = utf-8 15 | trim_trailing_whitespace = true 16 | insert_final_newline = true 17 | 18 | [*.md] 19 | trim_trailing_whitespace = false 20 | 21 | [{package.json,bower.json}] 22 | indent_size = 2 23 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/.github/issue_template.md: -------------------------------------------------------------------------------- 1 | ### Minimal example 2 | 3 | > Fork this [JSFiddle](https://jsfiddle.net/zenorocha/5kk0eysw/) and reproduce your issue. 4 | 5 | ### Expected behaviour 6 | 7 | I thought that by going to the page '...' and pressing the button '...' then '...' would happen. 8 | 9 | ### Actual behaviour 10 | 11 | Instead of '...', what I saw was that '...' happened instead. 12 | 13 | ### Browsers affected 14 | 15 | I tested on all major browsers and only IE 11 does not work. 16 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | npm-debug.log 3 | bower_components 4 | node_modules 5 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/.npmignore: -------------------------------------------------------------------------------- 1 | /.*/ 2 | /demo/ 3 | /test/ 4 | /.* 5 | /bower.json 6 | /karma.conf.js 7 | /src 8 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - stable 5 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/demo/constructor-node.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | constructor-node 6 | 7 | 8 | 9 | 10 |
11 | Copy 12 |
13 | 14 | 15 | 16 | 17 | 18 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/demo/constructor-nodelist.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | constructor-nodelist 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/demo/constructor-selector.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | constructor-selector 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/demo/function-target.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | function-target 6 | 7 | 8 | 9 | 10 | 11 |
hello
12 | 13 | 14 | 15 | 16 | 17 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/demo/function-text.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | function-text 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/demo/target-div.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | target-div 6 | 7 | 8 | 9 | 10 |
hello
11 | 12 | 13 | 14 | 15 | 16 | 17 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/demo/target-input.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | target-input 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/clipboard/demo/target-textarea.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | target-textarea 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/coordinates/L.Control.MousePosition.css: -------------------------------------------------------------------------------- 1 | .leaflet-container .leaflet-control-mouseposition { 2 | background-color: rgba(255, 255, 255, 0.7); 3 | box-shadow: 0 0 5px #bbb; 4 | padding: 0 5px; 5 | margin:0; 6 | color: #333; 7 | font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/coordinates/L.Control.MousePosition.js: -------------------------------------------------------------------------------- 1 | L.Control.MousePosition = L.Control.extend({ 2 | options: { 3 | position: 'bottomleft', 4 | separator: ' : ', 5 | emptyString: 'Unavailable', 6 | lngFirst: false, 7 | numDigits: 5, 8 | lngFormatter: undefined, 9 | latFormatter: undefined, 10 | prefix: "" 11 | }, 12 | 13 | onAdd: function (map) { 14 | this._container = L.DomUtil.create('div', 'leaflet-control-mouseposition'); 15 | L.DomEvent.disableClickPropagation(this._container); 16 | map.on('mousemove', this._onMouseMove, this); 17 | this._container.innerHTML=this.options.emptyString; 18 | return this._container; 19 | }, 20 | 21 | onRemove: function (map) { 22 | map.off('mousemove', this._onMouseMove) 23 | }, 24 | 25 | _onMouseMove: function (e) { 26 | var lng = this.options.lngFormatter ? this.options.lngFormatter(e.latlng.lng) : L.Util.formatNum(e.latlng.lng, this.options.numDigits); 27 | var lat = this.options.latFormatter ? this.options.latFormatter(e.latlng.lat) : L.Util.formatNum(e.latlng.lat, this.options.numDigits); 28 | var value = this.options.lngFirst ? lng + this.options.separator + lat : lat + this.options.separator + lng; 29 | var prefixAndValue = this.options.prefix + ' ' + value; 30 | this._container.innerHTML = prefixAndValue; 31 | } 32 | 33 | }); 34 | 35 | L.Map.mergeOptions({ 36 | positionControl: false 37 | }); 38 | 39 | L.Map.addInitHook(function () { 40 | if (this.options.positionControl) { 41 | this.positionControl = new L.Control.MousePosition(); 42 | this.addControl(this.positionControl); 43 | } 44 | }); 45 | 46 | L.control.mousePosition = function (options) { 47 | return new L.Control.MousePosition(options); 48 | }; 49 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/extent/leaflet.defaultextent.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-defaultextent { 2 | 3 | } 4 | 5 | .leaflet-control-defaultextent-toggle { 6 | text-indent: -9999px; 7 | white-space: nowrap; 8 | background-image: url('leaflet.defaultextent.png'); 9 | width: 26px; 10 | height: 26px; 11 | display: block; 12 | } 13 | 14 | /* CSS for high-resolution devices */ 15 | @media only screen and (-Webkit-min-device-pixel-ratio: 1.5), 16 | only screen and (-moz-min-device-pixel-ratio: 1.5), 17 | only screen and (-o-min-device-pixel-ratio: 3/2), 18 | only screen and (min-device-pixel-ratio: 1.5) { 19 | .leaflet-control-defaultextent-toggle { 20 | background-image: url('leaflet.defaultextent@2X.png'); 21 | background-size: 26px 26px; 22 | background-repeat: no-repeat; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/extent/leaflet.defaultextent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/extent/leaflet.defaultextent.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/extent/leaflet.defaultextent@2X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/extent/leaflet.defaultextent@2X.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/fullscreen/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "camelcase": 0, 4 | "quotes": [2, "single", "avoid-escape"], 5 | "no-mixed-spaces-and-tabs": [2, "smart-tabs"], 6 | "space-before-function-paren": 2, 7 | "space-in-parens": 2, 8 | "object-curly-spacing": [2, "never"], 9 | "array-bracket-spacing": 2, 10 | "computed-property-spacing": 2, 11 | "space-before-blocks": 2, 12 | "keyword-spacing": 2, 13 | "no-lonely-if": 2, 14 | "comma-style": 2, 15 | "no-underscore-dangle": 0, 16 | "no-constant-condition": 0, 17 | "no-multi-spaces": 0, 18 | "strict": 0, 19 | "key-spacing": 0, 20 | "no-shadow": 0, 21 | "no-unused-vars": 2 22 | }, 23 | "globals": { 24 | "L": true, 25 | "module": false, 26 | "define": false, 27 | "require": true 28 | }, 29 | "env": { 30 | "browser": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/fullscreen/.mversionrc: -------------------------------------------------------------------------------- 1 | { 2 | "commitMessage": "version %s", 3 | "tagName": "%s", 4 | "scripts": { 5 | "postcommit": "git push && git push --tags && npm publish" 6 | } 7 | } -------------------------------------------------------------------------------- /viewer/leaflet/plugin/fullscreen/Control.FullScreen.css: -------------------------------------------------------------------------------- 1 | .fullscreen-icon { background-image: url(icon-fullscreen.png); } 2 | .leaflet-retina .fullscreen-icon { background-image: url(icon-fullscreen-2x.png); background-size: 26px 26px; } 3 | /* one selector per rule as explained here : http://www.sitepoint.com/html5-full-screen-api/ */ 4 | .leaflet-container:-webkit-full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 5 | .leaflet-container:-ms-fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 6 | .leaflet-container:full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 7 | .leaflet-container:fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 8 | .leaflet-pseudo-fullscreen { position: fixed !important; width: 100% !important; height: 100% !important; top: 0px !important; left: 0px !important; z-index: 99999; } -------------------------------------------------------------------------------- /viewer/leaflet/plugin/fullscreen/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, Bruno Bergot 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/fullscreen/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "homepage": "https://github.com/brunob/leaflet.fullscreen", 5 | "license": "MIT", 6 | "authors": [ 7 | "brunob " 8 | ], 9 | "description": "Leaflet.Control.FullScreen for Leaflet", 10 | "main": [ 11 | "Control.FullScreen.js", 12 | "Control.FullScreen.css", 13 | "icon-fullscreen.png", 14 | "icon-fullscreen-2x.png" 15 | ], 16 | "devDependencies": { 17 | "eslint": "2.3.0" 18 | }, 19 | "keywords": [ 20 | "leaflet", 21 | "plugins", 22 | "maps", 23 | "fullscreen" 24 | ], 25 | "ignore": [ 26 | "**/.*", 27 | "node_modules", 28 | "bower_components", 29 | "test", 30 | "tests", 31 | "index.html" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/fullscreen/icon-fullscreen-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/fullscreen/icon-fullscreen-2x.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/fullscreen/icon-fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/fullscreen/icon-fullscreen.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/fullscreen/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Leaflet.Control.FullScreen Demo 6 | 7 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/fullscreen/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "description": "Simple plugin for Leaflet that adds fullscreen button to your maps.", 5 | "main": "Control.FullScreen.js", 6 | "scripts": { 7 | "test": "eslint --config .eslintrc Control.FullScreen.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/brunob/leaflet.fullscreen.git" 12 | }, 13 | "keywords": [ 14 | "leaflet", 15 | "plugins", 16 | "maps", 17 | "fullscreen" 18 | ], 19 | "devDependencies": { 20 | "eslint": "2.3.0" 21 | }, 22 | "author": "b_b", 23 | "license": "MIT License", 24 | "readmeFilename": "README.md" 25 | } 26 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-easyPrint/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "mourner", 3 | rules: { 4 | "globals": { 5 | "L": false, 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-easyPrint/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log 3 | 4 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-easyPrint/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | 3 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-groupedlayercontrol/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2013 Ishmael Smyrnow 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-groupedlayercontrol/leaflet.groupedlayercontrol.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-layers-group-name { 2 | font-weight: bold; 3 | margin-bottom: .2em; 4 | display: block; 5 | } 6 | 7 | .leaflet-control-layers-group { 8 | margin-bottom: .5em; 9 | } 10 | 11 | .leaflet-control-layers-group label { 12 | padding-left: .5em; 13 | } 14 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-side-by-side/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-side-by-side/.npmignore: -------------------------------------------------------------------------------- 1 | leaflet-side-by-side.js 2 | leaflet-side-by-side.min.js 3 | screencast.gif 4 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-side-by-side/layout.css: -------------------------------------------------------------------------------- 1 | .leaflet-sbs-range { 2 | position: absolute; 3 | top: 50%; 4 | width: 100%; 5 | z-index: 999; 6 | } 7 | .leaflet-sbs-divider { 8 | position: absolute; 9 | top: 0; 10 | bottom: 0; 11 | left: 50%; 12 | margin-left: -2px; 13 | width: 4px; 14 | background-color: #fff; 15 | pointer-events: none; 16 | z-index: 999; 17 | } 18 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-side-by-side/range-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-side-by-side/range-icon.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sidebar/.gitignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | node_modules 16 | 17 | dist 18 | build -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sidebar/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | sudo: false 4 | 5 | after_success: 6 | - if [[ "$TRAVIS_BRANCH" == "master" ]]; then bash .travis/deploy.sh; fi 7 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sidebar/.travis/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | eval "$(ssh-agent -s)" 6 | 7 | openssl aes-256-cbc -K $encrypted_f72e501d769d_key -iv $encrypted_f72e501d769d_iv -in .travis/deploy_key.pem.enc -out .travis/deploy_key.pem -d 8 | chmod 600 .travis/deploy_key.pem 9 | ssh-add .travis/deploy_key.pem 10 | 11 | mkdir gh-pages 12 | cd gh-pages 13 | cp -R ../examples ../src . 14 | 15 | git init 16 | git config user.name "Travis" 17 | git config user.email "noreply@travis-ci.org" 18 | git add . 19 | git commit -m "Deploy to GitHub Pages" 20 | git push --force --quiet git@github.com:Turbo87/leaflet-sidebar.git master:gh-pages > /dev/null 2>&1 21 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sidebar/.travis/deploy_key.pem.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-sidebar/.travis/deploy_key.pem.enc -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sidebar/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## v0.1.9 (2016-01-19) 4 | 5 | - Fix unresolved variable error in `removeFrom()` method (see #38) 6 | 7 | 8 | ## v0.1.8 (2015-09-10) 9 | 10 | - Fix text selection on sidebar (see #31) 11 | 12 | 13 | ## v0.1.7 (2015-09-09) 14 | 15 | - Catch context menu events on sidebar (#23) 16 | - Fix jQuery event handlers/Bootstrap controls on sidebar (#31) 17 | 18 | 19 | ## v0.1.6 (2014-08-23) 20 | 21 | - Added support for [bower.io](http://bower.io/search/) (#21) 22 | 23 | 24 | ## v0.1.5 (2014-04-15) 25 | 26 | - Added support for [component.io](http://component.io/) (#17, thanks @zedd45) 27 | - Added `shown` and `hidden` events (#18) 28 | 29 | 30 | ## v0.1.4 (2014-02-16) 31 | 32 | - Adjusted CSS for touch devices (#12) 33 | - Converted build system to [gulp.js](http://gulpjs.com/) 34 | - Added [TravisCI](http://travis-ci.org/) support for CI linting 35 | 36 | 37 | ## v0.1.3 (2014-02-06) 38 | 39 | - Added `autoPan` option 40 | 41 | 42 | ## v0.1.2 (2013-12-28) 43 | 44 | - Fixed broken `stopPropagation()` call (#2) 45 | - Fire `show` and `hide` events on sidebar instances 46 | - Added `getCloseButton()` method 47 | - Several memory leaks related to event handlers fixed (#7) 48 | Thanks to Jerroyd Moore! 49 | 50 | 51 | ## v0.1.1 (2013-11-03) 52 | 53 | - Fixed close button event handler (#1) 54 | 55 | 56 | ## v0.1.0 (2013-10-30) 57 | 58 | - First official release 59 | - `position` option 60 | - `closeButton` option 61 | - `getContainer()` and `setContent()` methods 62 | - two more examples 63 | 64 | 65 | ## v0.0.0 (2013-10-29) 66 | 67 | - Preview release 68 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sidebar/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Tobias Bieniek 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sidebar/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet-sidebar", 3 | "version": "0.2.0", 4 | "homepage": "https://github.com/turbo87/leaflet-sidebar", 5 | "authors": [ 6 | "Tobias Bieniek " 7 | ], 8 | "description": "A responsive sidebar plugin for Leaflet", 9 | "main": [ 10 | "src/L.Control.Sidebar.js", 11 | "src/L.Control.Sidebar.css" 12 | ], 13 | "keywords": [ 14 | "gis", 15 | "leaflet", 16 | "map" 17 | ], 18 | "license": "MIT", 19 | "dependencies": { 20 | "leaflet": "~0.7" 21 | }, 22 | "ignore": [ 23 | "node_modules" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sidebar/leaflet-sidebar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-sidebar/leaflet-sidebar.gif -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sidebar/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet-sidebar", 3 | "version": "0.2.0", 4 | "description": "A responsive sidebar plugin for Leaflet", 5 | "keywords": [ 6 | "gis", 7 | "leaflet", 8 | "map" 9 | ], 10 | "homepage": "https://github.com/turbo87/leaflet-sidebar", 11 | "bugs": "https://github.com/turbo87/leaflet-sidebar/issues", 12 | "license": "MIT", 13 | "author": "Tobias Bieniek ", 14 | "main": "src/L.Control.Sidebar.js", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/turbo87/leaflet-sidebar.git" 18 | }, 19 | "scripts": { 20 | "test": "gulp lint" 21 | }, 22 | "dependencies": { 23 | }, 24 | "devDependencies": { 25 | "gulp": "~3.6.0", 26 | "gulp-clean": "~0.2.4", 27 | "gulp-concat": "~2.1.7", 28 | "gulp-csslint": "~0.1.3", 29 | "gulp-header": "~0.4.0", 30 | "gulp-jshint": "~1.3.4", 31 | "gulp-minify-css": "~0.1.0", 32 | "gulp-sass": "2.0.4", 33 | "gulp-rename": "~0.2.2", 34 | "gulp-uglify": "~0.1.0", 35 | "gulp-zip": "~0.1.2" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/img/1847-HPHS-Catalog1904p164.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-storymap/img/1847-HPHS-Catalog1904p164.jpg -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/img/1905-HPHS-postcard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-storymap/img/1905-HPHS-postcard.jpg -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/img/BradleyAirport.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-storymap/img/BradleyAirport.jpg -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/img/TrinityCollege.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-storymap/img/TrinityCollege.jpg -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | leaflet-storymap 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |

Insert your title here

24 | Scroll 25 |
26 | 27 |
28 |
29 |
30 |
31 |
32 | 33 |
34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/markers/images/markers_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-storymap/markers/images/markers_default.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/markers/images/markers_default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-storymap/markers/images/markers_default@2x.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/markers/images/markers_shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-storymap/markers/images/markers_shadow.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/markers/images/markers_shadow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/leaflet/plugin/leaflet-storymap/markers/images/markers_shadow@2x.png -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-storymap/markers/leaflet.extra-markers.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Leaflet.extra-markers 3 | * Custom Markers for Leaflet JS based on Awesome Markers 4 | * Leaflet ExtraMarkers 5 | * https://github.com/coryasilva/Leaflet.ExtraMarkers/ 6 | * @author coryasilva 7 | * @version 1.1.0 8 | */ 9 | !function(a,b){"use strict";L.ExtraMarkers={},L.ExtraMarkers.version="1.0.1",L.ExtraMarkers.Icon=L.Icon.extend({options:{iconSize:[35,45],iconAnchor:[17,42],popupAnchor:[1,-32],shadowAnchor:[10,12],shadowSize:[36,16],className:"extra-marker",prefix:"",extraClasses:"",shape:"circle",icon:"",markerColor:"red",iconColor:"#fff",number:""},initialize:function(a){a=L.Util.setOptions(this,a)},createIcon:function(){var a=b.createElement("div"),c=this.options;return c.icon&&(a.innerHTML=this._createInner()),c.bgPos&&(a.style.backgroundPosition=-c.bgPos.x+"px "+-c.bgPos.y+"px"),this._setIconStyles(a,c.shape+"-"+c.markerColor),a},_createInner:function(){var a="",b="",c=this.options;return c.iconColor&&(a="style='color: "+c.iconColor+"' "),c.number&&(b="number='"+c.number+"' "),""},_setIconStyles:function(a,b){var c,d,e=this.options,f=L.point(e["shadow"===b?"shadowSize":"iconSize"]);"shadow"===b?(c=L.point(e.shadowAnchor||e.iconAnchor),d="shadow"):(c=L.point(e.iconAnchor),d="icon"),!c&&f&&(c=f.divideBy(2,!0)),a.className="leaflet-marker-"+d+" extra-marker-"+b+" "+e.className,c&&(a.style.marginLeft=-c.x+"px",a.style.marginTop=-c.y+"px"),f&&(a.style.width=f.x+"px",a.style.height=f.y+"px")},createShadow:function(){var a=b.createElement("div");return this._setIconStyles(a,"shadow"),a}}),L.ExtraMarkers.icon=function(a){return new L.ExtraMarkers.Icon(a)}}(this,document); -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sync/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "camelcase": 2, 4 | "quotes": [2, "single", "avoid-escape"], 5 | "indent": ["error", 4, { 6 | "MemberExpression": "off" 7 | }], 8 | "space-before-function-paren": 2, 9 | "space-in-parens": 2, 10 | "object-curly-spacing": 2, 11 | "space-before-blocks": 2, 12 | "keyword-spacing": 2, 13 | "no-lonely-if": 2, 14 | "comma-spacing": [2, {"after": true}], 15 | "comma-style": 2, 16 | "no-underscore-dangle": 0, 17 | "no-constant-condition": 0, 18 | "no-multi-spaces": 2, 19 | "strict": 0, 20 | "key-spacing": 2, 21 | "no-shadow": 0, 22 | "no-console": 2, 23 | "semi": 2, 24 | "curly": 2 25 | }, 26 | "globals": { 27 | "L": true, 28 | "module": true, 29 | "define": true 30 | }, 31 | "plugins": [ 32 | "html" 33 | ], 34 | "settings": { 35 | "html/report-bad-indent": 2, 36 | "html/indent": "space" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sync/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sync/.mversionrc: -------------------------------------------------------------------------------- 1 | { 2 | "commitMessage": "Bumped version to %s", 3 | "tagName": "%s", 4 | "scripts": { 5 | "preupdate": "npm run test", 6 | "postupdate": "git push && git push --tags && npm publish" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/leaflet-sync/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: node_js 3 | node_js: 4 | - "node" 5 | notifications: 6 | email: false 7 | git: 8 | depth: 10 9 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/storymap-master/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Atle Frenvik Sveen 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /viewer/leaflet/plugin/storymap-master/readme.md: -------------------------------------------------------------------------------- 1 | Storymap 2 | ======== 3 | 4 | Storymap is a jQuery-plugin to create a map that follows your text. Annotate each paragraph and place a map alongside it. Then you can zoom/pan/add marker etc to the map as the reader reads through the text. 5 | 6 | Demo 7 | ---- 8 | See http://atlefren.github.io/storymap/ 9 | 10 | Known issues 11 | ------------ 12 | Will not work well on mobile (map gets removed on small screens) 13 | 14 | Requirements 15 | ------------ 16 | Storymap expects some (rather common) js libs to be available: 17 | 18 | - jQuery (as it is a jQuery plugin) 19 | - underscore.js (as it makes js easier to work with) 20 | - Leaflet (because we need a map) 21 | 22 | In addition the markup is based on Bootstrap 3. 23 | 24 | Configuration 25 | ------------- 26 | Should be rather simple. Setup a html page like the one in index.html, include dependencies and do a 27 | 28 | el.storymap({markers: dict_with_data}); 29 | 30 | on the element you wish to add a storymap to. By default, the plugin looks for elements that has a "data-place" attribute, sets the breakpoint 33% from the top of the page. This can be overridden by setting some options, like this: 31 | 32 | el.storymap({ 33 | markers: dict_with_data, 34 | selector: '[data-place]', //jquery for selectors to trigger an event 35 | breakpointPos: '33.333%', //position of the breakpoint 36 | createMap: function () { //function that creates a map 37 | // create a map in the "map" div, set the view to a given place and zoom 38 | var map = L.map('map').setView([65, 18], 5); 39 | // add an OpenStreetMap tile layer 40 | L.tileLayer( 41 | 'http://{s}.tile.osm.org/{z}/{x}/{y}.png', 42 | {attribution: '© OpenStreetMap contributors'} 43 | ).addTo(map); 44 | return map; 45 | } 46 | }); 47 | 48 | License 49 | ------- 50 | Storymap is licensed under the MIT license. 51 | 52 | Contributions 53 | ------------- 54 | Yes please! 55 | -------------------------------------------------------------------------------- /viewer/leaflet/plugin/storymap-master/style.css: -------------------------------------------------------------------------------- 1 | 2 | .sidebar { 3 | /* display: none;*/ 4 | } 5 | @media (min-width: 768px) { 6 | .sidebar { 7 | position: fixed; 8 | top: 0; 9 | bottom: 0; 10 | right: 0; 11 | z-index: 1000; 12 | display: block; 13 | padding: 20px; 14 | overflow-x: hidden; 15 | overflow-y: hidden; 16 | background-color: #f5f5f5; 17 | border-right: 1px solid #eee; 18 | } 19 | } 20 | 21 | .main { 22 | padding: 20px; 23 | 24 | padding-bottom: 500px; 25 | } 26 | @media (min-width: 768px) { 27 | .main { 28 | padding-right: 40px; 29 | padding-left: 40px; 30 | } 31 | } 32 | .main .page-header { 33 | margin-top: 0; 34 | } 35 | 36 | .breakpoint-current { 37 | left: 0; 38 | margin-top: -10px; 39 | position: fixed; 40 | /* top: 33.3333%; */ 41 | width: 3px; 42 | height: 3px; 43 | background: red;; 44 | } 45 | 46 | .viewing { 47 | background: #eee; 48 | } 49 | 50 | section { 51 | padding: 5px 10px 10px 10px; 52 | border-radius: 10px; 53 | } 54 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | ## [0.9.9] - 2018-08-16 5 | ### Added 6 | - URL Hash to easily share [Issue #8](https://github.com/GRIDgva/SwissDataCube/issues/8) 7 | - Time-slider to visualize time-enabled maps; activated following the type of products published [Issue #6](https://github.com/GRIDgva/SwissDataCube/issues/6) 8 | - Opacity slider [Issue #4](https://github.com/GRIDgva/SwissDataCube/issues/4) 9 | - maxBounds to restrict the view on Switzerland [Issue #3](https://github.com/GRIDgva/SwissDataCube/issues/3) 10 | - Zoom to default extent 11 | - Full screen mode 12 | - About section 13 | - Data Download through WCS requests 14 | - Help section 15 | - Mouse Position 16 | - Scale Bar 17 | - Webservices; relevant links for Discovery (CSW, OpenSearch EO); View (WMS, WMTS, TMS, WMS-C); Download (WCS, WFS) services 18 | - Basic print module [Issue #9](https://github.com/GRIDgva/SwissDataCube/issues/9) 19 | - Query (with mouse pointer) a pixel and get a pop with time-series values & graph [Issue #5](https://github.com/GRIDgva/SwissDataCube/issues/5) 20 | - Initial implementation of a config file [Issue #7](https://github.com/GRIDgva/SwissDataCube/issues/7) 21 | 22 | ### Changed 23 | - N/A. 24 | 25 | 26 | ### Removed 27 | - N/A. 28 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/README.md: -------------------------------------------------------------------------------- 1 | # SwissDataCube - Viewer 2 | This is the repository for the SwissDataCUbe - Viewer. 3 | The aim is to develop an application to visualize, query, and download time-series data produced by the SwissDataCube. 4 | It is based on bootleaf (https://github.com/bmcbride/bootleaf) providing a simple, responsive template for building web mapping applications with [Bootstrap](http://getbootstrap.com/), [Leaflet](http://leafletjs.com/), and [typeahead.js](http://twitter.github.io/typeahead.js/). 5 | 6 | Data are published using GeoServer (http://www.geoserver.org) to provide an interoperable access to data using OGC WMS & WCS standards. 7 | 8 | The viewer allows: 9 | - Visualizing and Downloading single raster product layers 10 | - Visualizing and Downloading time-series raster product layers 11 | - Generating graph for a given pixel of a time-series raster product layer 12 | - Access products in your own client with WMS & WCS standards 13 | - Metadata support 14 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/assets/img/favicon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/assets/img/favicon-120.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/assets/img/favicon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/assets/img/favicon-152.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/assets/img/favicon-196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/assets/img/favicon-196.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/assets/img/favicon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/assets/img/favicon-76.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/assets/img/favicon.ico -------------------------------------------------------------------------------- /viewer/versions/0.9.9/assets/img/globe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/assets/img/globe.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/assets/img/metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/assets/img/metadata.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/config.js: -------------------------------------------------------------------------------- 1 | var appConfig={ 2 | 'appVersion' : '0.9.9', 3 | 'appVersionDate' : '[16.08.2018]', 4 | 'gsHost' : 'https://geoserver.swissdatacube.org/geoserver/ows?', 5 | 'mapZoom' : '8', 6 | 'mapMinZoom' : '7', 7 | 'mapMaxZoom' : '15', 8 | 'mapCenter' : [46.78, 8.22], 9 | }; -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/leaflet/images/layers.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/coordinates/L.Control.MousePosition.css: -------------------------------------------------------------------------------- 1 | .leaflet-container .leaflet-control-mouseposition { 2 | background-color: rgba(255, 255, 255, 0.7); 3 | box-shadow: 0 0 5px #bbb; 4 | padding: 0 5px; 5 | margin:0; 6 | color: #333; 7 | font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/coordinates/L.Control.MousePosition.js: -------------------------------------------------------------------------------- 1 | L.Control.MousePosition = L.Control.extend({ 2 | options: { 3 | position: 'bottomleft', 4 | separator: ' : ', 5 | emptyString: 'Unavailable', 6 | lngFirst: false, 7 | numDigits: 5, 8 | lngFormatter: undefined, 9 | latFormatter: undefined, 10 | prefix: "" 11 | }, 12 | 13 | onAdd: function (map) { 14 | this._container = L.DomUtil.create('div', 'leaflet-control-mouseposition'); 15 | L.DomEvent.disableClickPropagation(this._container); 16 | map.on('mousemove', this._onMouseMove, this); 17 | this._container.innerHTML=this.options.emptyString; 18 | return this._container; 19 | }, 20 | 21 | onRemove: function (map) { 22 | map.off('mousemove', this._onMouseMove) 23 | }, 24 | 25 | _onMouseMove: function (e) { 26 | var lng = this.options.lngFormatter ? this.options.lngFormatter(e.latlng.lng) : L.Util.formatNum(e.latlng.lng, this.options.numDigits); 27 | var lat = this.options.latFormatter ? this.options.latFormatter(e.latlng.lat) : L.Util.formatNum(e.latlng.lat, this.options.numDigits); 28 | var value = this.options.lngFirst ? lng + this.options.separator + lat : lat + this.options.separator + lng; 29 | var prefixAndValue = this.options.prefix + ' ' + value; 30 | this._container.innerHTML = prefixAndValue; 31 | } 32 | 33 | }); 34 | 35 | L.Map.mergeOptions({ 36 | positionControl: false 37 | }); 38 | 39 | L.Map.addInitHook(function () { 40 | if (this.options.positionControl) { 41 | this.positionControl = new L.Control.MousePosition(); 42 | this.addControl(this.positionControl); 43 | } 44 | }); 45 | 46 | L.control.mousePosition = function (options) { 47 | return new L.Control.MousePosition(options); 48 | }; 49 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/extent/leaflet.defaultextent.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-defaultextent { 2 | 3 | } 4 | 5 | .leaflet-control-defaultextent-toggle { 6 | text-indent: -9999px; 7 | white-space: nowrap; 8 | background-image: url('leaflet.defaultextent.png'); 9 | width: 26px; 10 | height: 26px; 11 | display: block; 12 | } 13 | 14 | /* CSS for high-resolution devices */ 15 | @media only screen and (-Webkit-min-device-pixel-ratio: 1.5), 16 | only screen and (-moz-min-device-pixel-ratio: 1.5), 17 | only screen and (-o-min-device-pixel-ratio: 3/2), 18 | only screen and (min-device-pixel-ratio: 1.5) { 19 | .leaflet-control-defaultextent-toggle { 20 | background-image: url('leaflet.defaultextent@2X.png'); 21 | background-size: 26px 26px; 22 | background-repeat: no-repeat; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/extent/leaflet.defaultextent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/leaflet/plugin/extent/leaflet.defaultextent.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/extent/leaflet.defaultextent@2X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/leaflet/plugin/extent/leaflet.defaultextent@2X.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/fullscreen/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "camelcase": 0, 4 | "quotes": [2, "single", "avoid-escape"], 5 | "no-mixed-spaces-and-tabs": [2, "smart-tabs"], 6 | "space-before-function-paren": 2, 7 | "space-in-parens": 2, 8 | "object-curly-spacing": [2, "never"], 9 | "array-bracket-spacing": 2, 10 | "computed-property-spacing": 2, 11 | "space-before-blocks": 2, 12 | "keyword-spacing": 2, 13 | "no-lonely-if": 2, 14 | "comma-style": 2, 15 | "no-underscore-dangle": 0, 16 | "no-constant-condition": 0, 17 | "no-multi-spaces": 0, 18 | "strict": 0, 19 | "key-spacing": 0, 20 | "no-shadow": 0, 21 | "no-unused-vars": 2 22 | }, 23 | "globals": { 24 | "L": true, 25 | "module": false, 26 | "define": false, 27 | "require": true 28 | }, 29 | "env": { 30 | "browser": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/fullscreen/.mversionrc: -------------------------------------------------------------------------------- 1 | { 2 | "commitMessage": "version %s", 3 | "tagName": "%s", 4 | "scripts": { 5 | "postcommit": "git push && git push --tags && npm publish" 6 | } 7 | } -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/fullscreen/Control.FullScreen.css: -------------------------------------------------------------------------------- 1 | .fullscreen-icon { background-image: url(icon-fullscreen.png); } 2 | .leaflet-retina .fullscreen-icon { background-image: url(icon-fullscreen-2x.png); background-size: 26px 26px; } 3 | /* one selector per rule as explained here : http://www.sitepoint.com/html5-full-screen-api/ */ 4 | .leaflet-container:-webkit-full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 5 | .leaflet-container:-ms-fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 6 | .leaflet-container:full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 7 | .leaflet-container:fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 8 | .leaflet-pseudo-fullscreen { position: fixed !important; width: 100% !important; height: 100% !important; top: 0px !important; left: 0px !important; z-index: 99999; } -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/fullscreen/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, Bruno Bergot 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/fullscreen/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "homepage": "https://github.com/brunob/leaflet.fullscreen", 5 | "license": "MIT", 6 | "authors": [ 7 | "brunob " 8 | ], 9 | "description": "Leaflet.Control.FullScreen for Leaflet", 10 | "main": [ 11 | "Control.FullScreen.js", 12 | "Control.FullScreen.css", 13 | "icon-fullscreen.png", 14 | "icon-fullscreen-2x.png" 15 | ], 16 | "devDependencies": { 17 | "eslint": "2.3.0" 18 | }, 19 | "keywords": [ 20 | "leaflet", 21 | "plugins", 22 | "maps", 23 | "fullscreen" 24 | ], 25 | "ignore": [ 26 | "**/.*", 27 | "node_modules", 28 | "bower_components", 29 | "test", 30 | "tests", 31 | "index.html" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/fullscreen/icon-fullscreen-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/leaflet/plugin/fullscreen/icon-fullscreen-2x.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/fullscreen/icon-fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/0.9.9/leaflet/plugin/fullscreen/icon-fullscreen.png -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/fullscreen/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Leaflet.Control.FullScreen Demo 6 | 7 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/fullscreen/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "description": "Simple plugin for Leaflet that adds fullscreen button to your maps.", 5 | "main": "Control.FullScreen.js", 6 | "scripts": { 7 | "test": "eslint --config .eslintrc Control.FullScreen.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/brunob/leaflet.fullscreen.git" 12 | }, 13 | "keywords": [ 14 | "leaflet", 15 | "plugins", 16 | "maps", 17 | "fullscreen" 18 | ], 19 | "devDependencies": { 20 | "eslint": "2.3.0" 21 | }, 22 | "author": "b_b", 23 | "license": "MIT License", 24 | "readmeFilename": "README.md" 25 | } 26 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/leaflet-easyPrint/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "mourner", 3 | rules: { 4 | "globals": { 5 | "L": false, 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/leaflet-easyPrint/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log 3 | 4 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/leaflet-easyPrint/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | 3 | -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/leaflet-groupedlayercontrol/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2013 Ishmael Smyrnow 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /viewer/versions/0.9.9/leaflet/plugin/leaflet-groupedlayercontrol/leaflet.groupedlayercontrol.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-layers-group-name { 2 | font-weight: bold; 3 | margin-bottom: .2em; 4 | display: block; 5 | } 6 | 7 | .leaflet-control-layers-group { 8 | margin-bottom: .5em; 9 | } 10 | 11 | .leaflet-control-layers-group label { 12 | padding-left: .5em; 13 | } 14 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | ## [1.0.0] - 2018-09-10 5 | ### Added 6 | - URL Hash to easily share [Issue #8](https://github.com/GRIDgva/SwissDataCube/issues/8) 7 | - Time-slider to visualize time-enabled maps; activated following the type of products published [Issue #6](https://github.com/GRIDgva/SwissDataCube/issues/6) 8 | - Opacity slider [Issue #4](https://github.com/GRIDgva/SwissDataCube/issues/4) 9 | - maxBounds to restrict the view on Switzerland [Issue #3](https://github.com/GRIDgva/SwissDataCube/issues/3) 10 | - Zoom to default extent 11 | - Full screen mode 12 | - About section 13 | - Data Download through WCS requests 14 | - Help section 15 | - Mouse Position 16 | - Scale Bar 17 | - Webservices; relevant links for Discovery (CSW, OpenSearch EO); View (WMS, WMTS, TMS, WMS-C); Download (WCS, WFS) services 18 | - Basic print module [Issue #9](https://github.com/GRIDgva/SwissDataCube/issues/9) 19 | - Query (with mouse pointer) a pixel and get a pop with time-series values & graph [Issue #5](https://github.com/GRIDgva/SwissDataCube/issues/5) 20 | - Initial implementation of a config file [Issue #7](https://github.com/GRIDgva/SwissDataCube/issues/7) 21 | - Snow Cover and Mosaic products 22 | - Help section 23 | 24 | ### Changed 25 | - N/A. 26 | 27 | 28 | ### Removed 29 | - N/A. 30 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/README.md: -------------------------------------------------------------------------------- 1 | # SwissDataCube - Viewer 2 | This is the repository for the SwissDataCUbe - Viewer. 3 | The aim is to develop an application to visualize, query, and download time-series data produced by the SwissDataCube. 4 | It is based on bootleaf (https://github.com/bmcbride/bootleaf) providing a simple, responsive template for building web mapping applications with [Bootstrap](http://getbootstrap.com/), [Leaflet](http://leafletjs.com/), and [typeahead.js](http://twitter.github.io/typeahead.js/). 5 | 6 | Data are published using GeoServer (http://www.geoserver.org) to provide an interoperable access to data using OGC WMS & WCS standards. 7 | 8 | The viewer allows: 9 | - Visualizing and Downloading single raster product layers 10 | - Visualizing and Downloading time-series raster product layers 11 | - Generating graph for a given pixel of a time-series raster product layer 12 | - Access products in your own client with WMS & WCS standards 13 | - Metadata support 14 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/assets/img/favicon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/assets/img/favicon-120.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/assets/img/favicon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/assets/img/favicon-152.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/assets/img/favicon-196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/assets/img/favicon-196.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/assets/img/favicon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/assets/img/favicon-76.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/assets/img/favicon.ico -------------------------------------------------------------------------------- /viewer/versions/1.0.0/assets/img/globe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/assets/img/globe.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/assets/img/metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/assets/img/metadata.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/config.js: -------------------------------------------------------------------------------- 1 | var appConfig={ 2 | 'appVersion' : '1.0.0', 3 | 'appVersionDate' : '[10.09.2018]', 4 | 'gsHost' : 'https://geoserver.swissdatacube.org/geoserver/ows?', 5 | 'mapZoom' : '8', 6 | 'mapMinZoom' : '7', 7 | 'mapMaxZoom' : '15', 8 | 'mapCenter' : [46.78, 8.22], 9 | }; -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/leaflet/images/layers.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/coordinates/L.Control.MousePosition.css: -------------------------------------------------------------------------------- 1 | .leaflet-container .leaflet-control-mouseposition { 2 | background-color: rgba(255, 255, 255, 0.7); 3 | box-shadow: 0 0 5px #bbb; 4 | padding: 0 5px; 5 | margin:0; 6 | color: #333; 7 | font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/coordinates/L.Control.MousePosition.js: -------------------------------------------------------------------------------- 1 | L.Control.MousePosition = L.Control.extend({ 2 | options: { 3 | position: 'bottomleft', 4 | separator: ' : ', 5 | emptyString: 'Unavailable', 6 | lngFirst: false, 7 | numDigits: 5, 8 | lngFormatter: undefined, 9 | latFormatter: undefined, 10 | prefix: "" 11 | }, 12 | 13 | onAdd: function (map) { 14 | this._container = L.DomUtil.create('div', 'leaflet-control-mouseposition'); 15 | L.DomEvent.disableClickPropagation(this._container); 16 | map.on('mousemove', this._onMouseMove, this); 17 | this._container.innerHTML=this.options.emptyString; 18 | return this._container; 19 | }, 20 | 21 | onRemove: function (map) { 22 | map.off('mousemove', this._onMouseMove) 23 | }, 24 | 25 | _onMouseMove: function (e) { 26 | var lng = this.options.lngFormatter ? this.options.lngFormatter(e.latlng.lng) : L.Util.formatNum(e.latlng.lng, this.options.numDigits); 27 | var lat = this.options.latFormatter ? this.options.latFormatter(e.latlng.lat) : L.Util.formatNum(e.latlng.lat, this.options.numDigits); 28 | var value = this.options.lngFirst ? lng + this.options.separator + lat : lat + this.options.separator + lng; 29 | var prefixAndValue = this.options.prefix + ' ' + value; 30 | this._container.innerHTML = prefixAndValue; 31 | } 32 | 33 | }); 34 | 35 | L.Map.mergeOptions({ 36 | positionControl: false 37 | }); 38 | 39 | L.Map.addInitHook(function () { 40 | if (this.options.positionControl) { 41 | this.positionControl = new L.Control.MousePosition(); 42 | this.addControl(this.positionControl); 43 | } 44 | }); 45 | 46 | L.control.mousePosition = function (options) { 47 | return new L.Control.MousePosition(options); 48 | }; 49 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/extent/leaflet.defaultextent.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-defaultextent { 2 | 3 | } 4 | 5 | .leaflet-control-defaultextent-toggle { 6 | text-indent: -9999px; 7 | white-space: nowrap; 8 | background-image: url('leaflet.defaultextent.png'); 9 | width: 26px; 10 | height: 26px; 11 | display: block; 12 | } 13 | 14 | /* CSS for high-resolution devices */ 15 | @media only screen and (-Webkit-min-device-pixel-ratio: 1.5), 16 | only screen and (-moz-min-device-pixel-ratio: 1.5), 17 | only screen and (-o-min-device-pixel-ratio: 3/2), 18 | only screen and (min-device-pixel-ratio: 1.5) { 19 | .leaflet-control-defaultextent-toggle { 20 | background-image: url('leaflet.defaultextent@2X.png'); 21 | background-size: 26px 26px; 22 | background-repeat: no-repeat; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/extent/leaflet.defaultextent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/leaflet/plugin/extent/leaflet.defaultextent.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/extent/leaflet.defaultextent@2X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/leaflet/plugin/extent/leaflet.defaultextent@2X.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/fullscreen/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "camelcase": 0, 4 | "quotes": [2, "single", "avoid-escape"], 5 | "no-mixed-spaces-and-tabs": [2, "smart-tabs"], 6 | "space-before-function-paren": 2, 7 | "space-in-parens": 2, 8 | "object-curly-spacing": [2, "never"], 9 | "array-bracket-spacing": 2, 10 | "computed-property-spacing": 2, 11 | "space-before-blocks": 2, 12 | "keyword-spacing": 2, 13 | "no-lonely-if": 2, 14 | "comma-style": 2, 15 | "no-underscore-dangle": 0, 16 | "no-constant-condition": 0, 17 | "no-multi-spaces": 0, 18 | "strict": 0, 19 | "key-spacing": 0, 20 | "no-shadow": 0, 21 | "no-unused-vars": 2 22 | }, 23 | "globals": { 24 | "L": true, 25 | "module": false, 26 | "define": false, 27 | "require": true 28 | }, 29 | "env": { 30 | "browser": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/fullscreen/.mversionrc: -------------------------------------------------------------------------------- 1 | { 2 | "commitMessage": "version %s", 3 | "tagName": "%s", 4 | "scripts": { 5 | "postcommit": "git push && git push --tags && npm publish" 6 | } 7 | } -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/fullscreen/Control.FullScreen.css: -------------------------------------------------------------------------------- 1 | .fullscreen-icon { background-image: url(icon-fullscreen.png); } 2 | .leaflet-retina .fullscreen-icon { background-image: url(icon-fullscreen-2x.png); background-size: 26px 26px; } 3 | /* one selector per rule as explained here : http://www.sitepoint.com/html5-full-screen-api/ */ 4 | .leaflet-container:-webkit-full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 5 | .leaflet-container:-ms-fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 6 | .leaflet-container:full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 7 | .leaflet-container:fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 8 | .leaflet-pseudo-fullscreen { position: fixed !important; width: 100% !important; height: 100% !important; top: 0px !important; left: 0px !important; z-index: 99999; } -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/fullscreen/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, Bruno Bergot 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/fullscreen/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "homepage": "https://github.com/brunob/leaflet.fullscreen", 5 | "license": "MIT", 6 | "authors": [ 7 | "brunob " 8 | ], 9 | "description": "Leaflet.Control.FullScreen for Leaflet", 10 | "main": [ 11 | "Control.FullScreen.js", 12 | "Control.FullScreen.css", 13 | "icon-fullscreen.png", 14 | "icon-fullscreen-2x.png" 15 | ], 16 | "devDependencies": { 17 | "eslint": "2.3.0" 18 | }, 19 | "keywords": [ 20 | "leaflet", 21 | "plugins", 22 | "maps", 23 | "fullscreen" 24 | ], 25 | "ignore": [ 26 | "**/.*", 27 | "node_modules", 28 | "bower_components", 29 | "test", 30 | "tests", 31 | "index.html" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/fullscreen/icon-fullscreen-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/leaflet/plugin/fullscreen/icon-fullscreen-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/fullscreen/icon-fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.0.0/leaflet/plugin/fullscreen/icon-fullscreen.png -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/fullscreen/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "description": "Simple plugin for Leaflet that adds fullscreen button to your maps.", 5 | "main": "Control.FullScreen.js", 6 | "scripts": { 7 | "test": "eslint --config .eslintrc Control.FullScreen.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/brunob/leaflet.fullscreen.git" 12 | }, 13 | "keywords": [ 14 | "leaflet", 15 | "plugins", 16 | "maps", 17 | "fullscreen" 18 | ], 19 | "devDependencies": { 20 | "eslint": "2.3.0" 21 | }, 22 | "author": "b_b", 23 | "license": "MIT License", 24 | "readmeFilename": "README.md" 25 | } 26 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/leaflet-easyPrint/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "mourner", 3 | rules: { 4 | "globals": { 5 | "L": false, 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/leaflet-easyPrint/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log 3 | 4 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/leaflet-easyPrint/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | 3 | -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/leaflet-groupedlayercontrol/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2013 Ishmael Smyrnow 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /viewer/versions/1.0.0/leaflet/plugin/leaflet-groupedlayercontrol/leaflet.groupedlayercontrol.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-layers-group-name { 2 | font-weight: bold; 3 | margin-bottom: .2em; 4 | display: block; 5 | } 6 | 7 | .leaflet-control-layers-group { 8 | margin-bottom: .5em; 9 | } 10 | 11 | .leaflet-control-layers-group label { 12 | padding-left: .5em; 13 | } 14 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | ## [1.1.0] - 2018-09-21 5 | ### Added 6 | - N/A. 7 | 8 | ### Changed 9 | - Enhanced metadata visualization. [Issue #10](https://github.com/GRIDgva/SwissDataCube/issues/10) 10 | 11 | ### Removed 12 | - Removed mention of Storymaps in Features. 13 | 14 | ## [1.0.0] - 2018-09-10 15 | ### Added 16 | - URL Hash to easily share [Issue #8](https://github.com/GRIDgva/SwissDataCube/issues/8) 17 | - Time-slider to visualize time-enabled maps; activated following the type of products published [Issue #6](https://github.com/GRIDgva/SwissDataCube/issues/6) 18 | - Opacity slider [Issue #4](https://github.com/GRIDgva/SwissDataCube/issues/4) 19 | - maxBounds to restrict the view on Switzerland [Issue #3](https://github.com/GRIDgva/SwissDataCube/issues/3) 20 | - Zoom to default extent 21 | - Full screen mode 22 | - About section 23 | - Data Download through WCS requests 24 | - Help section 25 | - Mouse Position 26 | - Scale Bar 27 | - Webservices; relevant links for Discovery (CSW, OpenSearch EO); View (WMS, WMTS, TMS, WMS-C); Download (WCS, WFS) services 28 | - Basic print module [Issue #9](https://github.com/GRIDgva/SwissDataCube/issues/9) 29 | - Query (with mouse pointer) a pixel and get a pop with time-series values & graph [Issue #5](https://github.com/GRIDgva/SwissDataCube/issues/5) 30 | - Initial implementation of a config file [Issue #7](https://github.com/GRIDgva/SwissDataCube/issues/7) 31 | - Snow Cover and Mosaic products 32 | - Help section 33 | 34 | ### Changed 35 | - N/A. 36 | 37 | 38 | ### Removed 39 | - N/A. 40 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/README.md: -------------------------------------------------------------------------------- 1 | # SwissDataCube - Viewer 2 | This is the repository for the SwissDataCUbe - Viewer. 3 | The aim is to develop an application to visualize, query, and download time-series data produced by the SwissDataCube. 4 | It is based on bootleaf (https://github.com/bmcbride/bootleaf) providing a simple, responsive template for building web mapping applications with [Bootstrap](http://getbootstrap.com/), [Leaflet](http://leafletjs.com/), and [typeahead.js](http://twitter.github.io/typeahead.js/). 5 | 6 | Data are published using GeoServer (http://www.geoserver.org) to provide an interoperable access to data using OGC WMS & WCS standards. 7 | 8 | The viewer allows: 9 | - Visualizing and Downloading single raster product layers 10 | - Visualizing and Downloading time-series raster product layers 11 | - Generating graph for a given pixel of a time-series raster product layer 12 | - Access products in your own client with WMS & WCS standards 13 | - Metadata support 14 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/assets/img/favicon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/assets/img/favicon-120.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/assets/img/favicon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/assets/img/favicon-152.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/assets/img/favicon-196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/assets/img/favicon-196.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/assets/img/favicon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/assets/img/favicon-76.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/assets/img/favicon.ico -------------------------------------------------------------------------------- /viewer/versions/1.1.0/assets/img/globe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/assets/img/globe.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/assets/img/metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/assets/img/metadata.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/config.js: -------------------------------------------------------------------------------- 1 | var appConfig={ 2 | 'appVersion' : '1.1.0', 3 | 'appVersionDate' : '[21.09.2018]', 4 | 'gsHost' : 'https://geoserver.swissdatacube.org/geoserver/ows?', 5 | 'mapZoom' : '8', 6 | 'mapMinZoom' : '7', 7 | 'mapMaxZoom' : '15', 8 | 'mapCenter' : [46.78, 8.22], 9 | 'cswLayer1' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:L8_CHmosaic_2016&outputSchema=http://www.isotc211.org/2005/gmd', 10 | 'cswLayer2' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:clipch_95_051&outputSchema=http://www.isotc211.org/2005/gmd', 11 | 'cswLayer3' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:clipch_05_171&outputSchema=http://www.isotc211.org/2005/gmd', 12 | 'cswLayer4' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:diff_all_CH&outputSchema=http://www.isotc211.org/2005/gmd', 13 | }; -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/leaflet/images/layers.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/coordinates/L.Control.MousePosition.css: -------------------------------------------------------------------------------- 1 | .leaflet-container .leaflet-control-mouseposition { 2 | background-color: rgba(255, 255, 255, 0.7); 3 | box-shadow: 0 0 5px #bbb; 4 | padding: 0 5px; 5 | margin:0; 6 | color: #333; 7 | font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/coordinates/L.Control.MousePosition.js: -------------------------------------------------------------------------------- 1 | L.Control.MousePosition = L.Control.extend({ 2 | options: { 3 | position: 'bottomleft', 4 | separator: ' : ', 5 | emptyString: 'Unavailable', 6 | lngFirst: false, 7 | numDigits: 5, 8 | lngFormatter: undefined, 9 | latFormatter: undefined, 10 | prefix: "" 11 | }, 12 | 13 | onAdd: function (map) { 14 | this._container = L.DomUtil.create('div', 'leaflet-control-mouseposition'); 15 | L.DomEvent.disableClickPropagation(this._container); 16 | map.on('mousemove', this._onMouseMove, this); 17 | this._container.innerHTML=this.options.emptyString; 18 | return this._container; 19 | }, 20 | 21 | onRemove: function (map) { 22 | map.off('mousemove', this._onMouseMove) 23 | }, 24 | 25 | _onMouseMove: function (e) { 26 | var lng = this.options.lngFormatter ? this.options.lngFormatter(e.latlng.lng) : L.Util.formatNum(e.latlng.lng, this.options.numDigits); 27 | var lat = this.options.latFormatter ? this.options.latFormatter(e.latlng.lat) : L.Util.formatNum(e.latlng.lat, this.options.numDigits); 28 | var value = this.options.lngFirst ? lng + this.options.separator + lat : lat + this.options.separator + lng; 29 | var prefixAndValue = this.options.prefix + ' ' + value; 30 | this._container.innerHTML = prefixAndValue; 31 | } 32 | 33 | }); 34 | 35 | L.Map.mergeOptions({ 36 | positionControl: false 37 | }); 38 | 39 | L.Map.addInitHook(function () { 40 | if (this.options.positionControl) { 41 | this.positionControl = new L.Control.MousePosition(); 42 | this.addControl(this.positionControl); 43 | } 44 | }); 45 | 46 | L.control.mousePosition = function (options) { 47 | return new L.Control.MousePosition(options); 48 | }; 49 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/extent/leaflet.defaultextent.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-defaultextent { 2 | 3 | } 4 | 5 | .leaflet-control-defaultextent-toggle { 6 | text-indent: -9999px; 7 | white-space: nowrap; 8 | background-image: url('leaflet.defaultextent.png'); 9 | width: 26px; 10 | height: 26px; 11 | display: block; 12 | } 13 | 14 | /* CSS for high-resolution devices */ 15 | @media only screen and (-Webkit-min-device-pixel-ratio: 1.5), 16 | only screen and (-moz-min-device-pixel-ratio: 1.5), 17 | only screen and (-o-min-device-pixel-ratio: 3/2), 18 | only screen and (min-device-pixel-ratio: 1.5) { 19 | .leaflet-control-defaultextent-toggle { 20 | background-image: url('leaflet.defaultextent@2X.png'); 21 | background-size: 26px 26px; 22 | background-repeat: no-repeat; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/extent/leaflet.defaultextent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/leaflet/plugin/extent/leaflet.defaultextent.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/extent/leaflet.defaultextent@2X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/leaflet/plugin/extent/leaflet.defaultextent@2X.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/fullscreen/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "camelcase": 0, 4 | "quotes": [2, "single", "avoid-escape"], 5 | "no-mixed-spaces-and-tabs": [2, "smart-tabs"], 6 | "space-before-function-paren": 2, 7 | "space-in-parens": 2, 8 | "object-curly-spacing": [2, "never"], 9 | "array-bracket-spacing": 2, 10 | "computed-property-spacing": 2, 11 | "space-before-blocks": 2, 12 | "keyword-spacing": 2, 13 | "no-lonely-if": 2, 14 | "comma-style": 2, 15 | "no-underscore-dangle": 0, 16 | "no-constant-condition": 0, 17 | "no-multi-spaces": 0, 18 | "strict": 0, 19 | "key-spacing": 0, 20 | "no-shadow": 0, 21 | "no-unused-vars": 2 22 | }, 23 | "globals": { 24 | "L": true, 25 | "module": false, 26 | "define": false, 27 | "require": true 28 | }, 29 | "env": { 30 | "browser": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/fullscreen/.mversionrc: -------------------------------------------------------------------------------- 1 | { 2 | "commitMessage": "version %s", 3 | "tagName": "%s", 4 | "scripts": { 5 | "postcommit": "git push && git push --tags && npm publish" 6 | } 7 | } -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/fullscreen/Control.FullScreen.css: -------------------------------------------------------------------------------- 1 | .fullscreen-icon { background-image: url(icon-fullscreen.png); } 2 | .leaflet-retina .fullscreen-icon { background-image: url(icon-fullscreen-2x.png); background-size: 26px 26px; } 3 | /* one selector per rule as explained here : http://www.sitepoint.com/html5-full-screen-api/ */ 4 | .leaflet-container:-webkit-full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 5 | .leaflet-container:-ms-fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 6 | .leaflet-container:full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 7 | .leaflet-container:fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 8 | .leaflet-pseudo-fullscreen { position: fixed !important; width: 100% !important; height: 100% !important; top: 0px !important; left: 0px !important; z-index: 99999; } -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/fullscreen/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, Bruno Bergot 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/fullscreen/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "homepage": "https://github.com/brunob/leaflet.fullscreen", 5 | "license": "MIT", 6 | "authors": [ 7 | "brunob " 8 | ], 9 | "description": "Leaflet.Control.FullScreen for Leaflet", 10 | "main": [ 11 | "Control.FullScreen.js", 12 | "Control.FullScreen.css", 13 | "icon-fullscreen.png", 14 | "icon-fullscreen-2x.png" 15 | ], 16 | "devDependencies": { 17 | "eslint": "2.3.0" 18 | }, 19 | "keywords": [ 20 | "leaflet", 21 | "plugins", 22 | "maps", 23 | "fullscreen" 24 | ], 25 | "ignore": [ 26 | "**/.*", 27 | "node_modules", 28 | "bower_components", 29 | "test", 30 | "tests", 31 | "index.html" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/fullscreen/icon-fullscreen-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/leaflet/plugin/fullscreen/icon-fullscreen-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/fullscreen/icon-fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.0/leaflet/plugin/fullscreen/icon-fullscreen.png -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/fullscreen/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "description": "Simple plugin for Leaflet that adds fullscreen button to your maps.", 5 | "main": "Control.FullScreen.js", 6 | "scripts": { 7 | "test": "eslint --config .eslintrc Control.FullScreen.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/brunob/leaflet.fullscreen.git" 12 | }, 13 | "keywords": [ 14 | "leaflet", 15 | "plugins", 16 | "maps", 17 | "fullscreen" 18 | ], 19 | "devDependencies": { 20 | "eslint": "2.3.0" 21 | }, 22 | "author": "b_b", 23 | "license": "MIT License", 24 | "readmeFilename": "README.md" 25 | } 26 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/leaflet-easyPrint/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "mourner", 3 | rules: { 4 | "globals": { 5 | "L": false, 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/leaflet-easyPrint/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log 3 | 4 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/leaflet-easyPrint/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | 3 | -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/leaflet-groupedlayercontrol/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2013 Ishmael Smyrnow 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /viewer/versions/1.1.0/leaflet/plugin/leaflet-groupedlayercontrol/leaflet.groupedlayercontrol.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-layers-group-name { 2 | font-weight: bold; 3 | margin-bottom: .2em; 4 | display: block; 5 | } 6 | 7 | .leaflet-control-layers-group { 8 | margin-bottom: .5em; 9 | } 10 | 11 | .leaflet-control-layers-group label { 12 | padding-left: .5em; 13 | } 14 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | ## [1.1.1] - 2018-09-21 5 | ### Added 6 | - N/A. 7 | 8 | ### Changed 9 | - Ensure that border layers are always on top. [Issue #12](https://github.com/GRIDgva/SwissDataCube/issues/12) 10 | - updated Leaflet to version 1.0.2 11 | 12 | ### Removed 13 | - N/A. 14 | 15 | ## [1.1.0] - 2018-09-21 16 | ### Added 17 | - N/A. 18 | 19 | ### Changed 20 | - Enhanced metadata visualization. [Issue #10](https://github.com/GRIDgva/SwissDataCube/issues/10) 21 | 22 | ### Removed 23 | - Removed mention of Storymaps in Features. 24 | 25 | ## [1.0.0] - 2018-09-10 26 | ### Added 27 | - URL Hash to easily share [Issue #8](https://github.com/GRIDgva/SwissDataCube/issues/8) 28 | - Time-slider to visualize time-enabled maps; activated following the type of products published [Issue #6](https://github.com/GRIDgva/SwissDataCube/issues/6) 29 | - Opacity slider [Issue #4](https://github.com/GRIDgva/SwissDataCube/issues/4) 30 | - maxBounds to restrict the view on Switzerland [Issue #3](https://github.com/GRIDgva/SwissDataCube/issues/3) 31 | - Zoom to default extent 32 | - Full screen mode 33 | - About section 34 | - Data Download through WCS requests 35 | - Help section 36 | - Mouse Position 37 | - Scale Bar 38 | - Webservices; relevant links for Discovery (CSW, OpenSearch EO); View (WMS, WMTS, TMS, WMS-C); Download (WCS, WFS) services 39 | - Basic print module [Issue #9](https://github.com/GRIDgva/SwissDataCube/issues/9) 40 | - Query (with mouse pointer) a pixel and get a pop with time-series values & graph [Issue #5](https://github.com/GRIDgva/SwissDataCube/issues/5) 41 | - Initial implementation of a config file [Issue #7](https://github.com/GRIDgva/SwissDataCube/issues/7) 42 | - Snow Cover and Mosaic products 43 | - Help section 44 | 45 | ### Changed 46 | - N/A. 47 | 48 | 49 | ### Removed 50 | - N/A. 51 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/README.md: -------------------------------------------------------------------------------- 1 | # SwissDataCube - Viewer 2 | This is the repository for the SwissDataCUbe - Viewer. 3 | The aim is to develop an application to visualize, query, and download time-series data produced by the SwissDataCube. 4 | It is based on bootleaf (https://github.com/bmcbride/bootleaf) providing a simple, responsive template for building web mapping applications with [Bootstrap](http://getbootstrap.com/), [Leaflet](http://leafletjs.com/), and [typeahead.js](http://twitter.github.io/typeahead.js/). 5 | 6 | Data are published using GeoServer (http://www.geoserver.org) to provide an interoperable access to data using OGC WMS & WCS standards. 7 | 8 | The viewer allows: 9 | - Visualizing and Downloading single raster product layers 10 | - Visualizing and Downloading time-series raster product layers 11 | - Generating graph for a given pixel of a time-series raster product layer 12 | - Access products in your own client with WMS & WCS standards 13 | - Metadata support 14 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/assets/img/favicon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/assets/img/favicon-120.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/assets/img/favicon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/assets/img/favicon-152.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/assets/img/favicon-196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/assets/img/favicon-196.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/assets/img/favicon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/assets/img/favicon-76.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/assets/img/favicon.ico -------------------------------------------------------------------------------- /viewer/versions/1.1.1/assets/img/globe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/assets/img/globe.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/assets/img/metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/assets/img/metadata.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/config.js: -------------------------------------------------------------------------------- 1 | var appConfig={ 2 | 'appVersion' : '1.1.0', 3 | 'appVersionDate' : '[21.09.2018]', 4 | 'gsHost' : 'https://geoserver.swissdatacube.org/geoserver/ows?', 5 | 'mapZoom' : '8', 6 | 'mapMinZoom' : '7', 7 | 'mapMaxZoom' : '15', 8 | 'mapCenter' : [46.78, 8.22], 9 | 'cswLayer1' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:L8_CHmosaic_2016&outputSchema=http://www.isotc211.org/2005/gmd', 10 | 'cswLayer2' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:clipch_95_051&outputSchema=http://www.isotc211.org/2005/gmd', 11 | 'cswLayer3' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:clipch_05_171&outputSchema=http://www.isotc211.org/2005/gmd', 12 | 'cswLayer4' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:diff_all_CH&outputSchema=http://www.isotc211.org/2005/gmd', 13 | }; -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/leaflet/images/layers.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/coordinates/L.Control.MousePosition.css: -------------------------------------------------------------------------------- 1 | .leaflet-container .leaflet-control-mouseposition { 2 | background-color: rgba(255, 255, 255, 0.7); 3 | box-shadow: 0 0 5px #bbb; 4 | padding: 0 5px; 5 | margin:0; 6 | color: #333; 7 | font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/coordinates/L.Control.MousePosition.js: -------------------------------------------------------------------------------- 1 | L.Control.MousePosition = L.Control.extend({ 2 | options: { 3 | position: 'bottomleft', 4 | separator: ' : ', 5 | emptyString: 'Unavailable', 6 | lngFirst: false, 7 | numDigits: 5, 8 | lngFormatter: undefined, 9 | latFormatter: undefined, 10 | prefix: "" 11 | }, 12 | 13 | onAdd: function (map) { 14 | this._container = L.DomUtil.create('div', 'leaflet-control-mouseposition'); 15 | L.DomEvent.disableClickPropagation(this._container); 16 | map.on('mousemove', this._onMouseMove, this); 17 | this._container.innerHTML=this.options.emptyString; 18 | return this._container; 19 | }, 20 | 21 | onRemove: function (map) { 22 | map.off('mousemove', this._onMouseMove) 23 | }, 24 | 25 | _onMouseMove: function (e) { 26 | var lng = this.options.lngFormatter ? this.options.lngFormatter(e.latlng.lng) : L.Util.formatNum(e.latlng.lng, this.options.numDigits); 27 | var lat = this.options.latFormatter ? this.options.latFormatter(e.latlng.lat) : L.Util.formatNum(e.latlng.lat, this.options.numDigits); 28 | var value = this.options.lngFirst ? lng + this.options.separator + lat : lat + this.options.separator + lng; 29 | var prefixAndValue = this.options.prefix + ' ' + value; 30 | this._container.innerHTML = prefixAndValue; 31 | } 32 | 33 | }); 34 | 35 | L.Map.mergeOptions({ 36 | positionControl: false 37 | }); 38 | 39 | L.Map.addInitHook(function () { 40 | if (this.options.positionControl) { 41 | this.positionControl = new L.Control.MousePosition(); 42 | this.addControl(this.positionControl); 43 | } 44 | }); 45 | 46 | L.control.mousePosition = function (options) { 47 | return new L.Control.MousePosition(options); 48 | }; 49 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/extent/leaflet.defaultextent.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-defaultextent { 2 | 3 | } 4 | 5 | .leaflet-control-defaultextent-toggle { 6 | text-indent: -9999px; 7 | white-space: nowrap; 8 | background-image: url('leaflet.defaultextent.png'); 9 | width: 26px; 10 | height: 26px; 11 | display: block; 12 | } 13 | 14 | /* CSS for high-resolution devices */ 15 | @media only screen and (-Webkit-min-device-pixel-ratio: 1.5), 16 | only screen and (-moz-min-device-pixel-ratio: 1.5), 17 | only screen and (-o-min-device-pixel-ratio: 3/2), 18 | only screen and (min-device-pixel-ratio: 1.5) { 19 | .leaflet-control-defaultextent-toggle { 20 | background-image: url('leaflet.defaultextent@2X.png'); 21 | background-size: 26px 26px; 22 | background-repeat: no-repeat; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/extent/leaflet.defaultextent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/leaflet/plugin/extent/leaflet.defaultextent.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/extent/leaflet.defaultextent@2X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/leaflet/plugin/extent/leaflet.defaultextent@2X.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/fullscreen/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "camelcase": 0, 4 | "quotes": [2, "single", "avoid-escape"], 5 | "no-mixed-spaces-and-tabs": [2, "smart-tabs"], 6 | "space-before-function-paren": 2, 7 | "space-in-parens": 2, 8 | "object-curly-spacing": [2, "never"], 9 | "array-bracket-spacing": 2, 10 | "computed-property-spacing": 2, 11 | "space-before-blocks": 2, 12 | "keyword-spacing": 2, 13 | "no-lonely-if": 2, 14 | "comma-style": 2, 15 | "no-underscore-dangle": 0, 16 | "no-constant-condition": 0, 17 | "no-multi-spaces": 0, 18 | "strict": 0, 19 | "key-spacing": 0, 20 | "no-shadow": 0, 21 | "no-unused-vars": 2 22 | }, 23 | "globals": { 24 | "L": true, 25 | "module": false, 26 | "define": false, 27 | "require": true 28 | }, 29 | "env": { 30 | "browser": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/fullscreen/.mversionrc: -------------------------------------------------------------------------------- 1 | { 2 | "commitMessage": "version %s", 3 | "tagName": "%s", 4 | "scripts": { 5 | "postcommit": "git push && git push --tags && npm publish" 6 | } 7 | } -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/fullscreen/Control.FullScreen.css: -------------------------------------------------------------------------------- 1 | .fullscreen-icon { background-image: url(icon-fullscreen.png); } 2 | .leaflet-retina .fullscreen-icon { background-image: url(icon-fullscreen-2x.png); background-size: 26px 26px; } 3 | /* one selector per rule as explained here : http://www.sitepoint.com/html5-full-screen-api/ */ 4 | .leaflet-container:-webkit-full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 5 | .leaflet-container:-ms-fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 6 | .leaflet-container:full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 7 | .leaflet-container:fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 8 | .leaflet-pseudo-fullscreen { position: fixed !important; width: 100% !important; height: 100% !important; top: 0px !important; left: 0px !important; z-index: 99999; } -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/fullscreen/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, Bruno Bergot 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/fullscreen/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "homepage": "https://github.com/brunob/leaflet.fullscreen", 5 | "license": "MIT", 6 | "authors": [ 7 | "brunob " 8 | ], 9 | "description": "Leaflet.Control.FullScreen for Leaflet", 10 | "main": [ 11 | "Control.FullScreen.js", 12 | "Control.FullScreen.css", 13 | "icon-fullscreen.png", 14 | "icon-fullscreen-2x.png" 15 | ], 16 | "devDependencies": { 17 | "eslint": "2.3.0" 18 | }, 19 | "keywords": [ 20 | "leaflet", 21 | "plugins", 22 | "maps", 23 | "fullscreen" 24 | ], 25 | "ignore": [ 26 | "**/.*", 27 | "node_modules", 28 | "bower_components", 29 | "test", 30 | "tests", 31 | "index.html" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/fullscreen/icon-fullscreen-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/leaflet/plugin/fullscreen/icon-fullscreen-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/fullscreen/icon-fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.1.1/leaflet/plugin/fullscreen/icon-fullscreen.png -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/fullscreen/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "description": "Simple plugin for Leaflet that adds fullscreen button to your maps.", 5 | "main": "Control.FullScreen.js", 6 | "scripts": { 7 | "test": "eslint --config .eslintrc Control.FullScreen.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/brunob/leaflet.fullscreen.git" 12 | }, 13 | "keywords": [ 14 | "leaflet", 15 | "plugins", 16 | "maps", 17 | "fullscreen" 18 | ], 19 | "devDependencies": { 20 | "eslint": "2.3.0" 21 | }, 22 | "author": "b_b", 23 | "license": "MIT License", 24 | "readmeFilename": "README.md" 25 | } 26 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/leaflet-easyPrint/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "mourner", 3 | rules: { 4 | "globals": { 5 | "L": false, 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/leaflet-easyPrint/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log 3 | 4 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/leaflet-easyPrint/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | 3 | -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/leaflet-groupedlayercontrol/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2013 Ishmael Smyrnow 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /viewer/versions/1.1.1/leaflet/plugin/leaflet-groupedlayercontrol/leaflet.groupedlayercontrol.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-layers-group-name { 2 | font-weight: bold; 3 | margin-bottom: .2em; 4 | display: block; 5 | } 6 | 7 | .leaflet-control-layers-group { 8 | margin-bottom: .5em; 9 | } 10 | 11 | .leaflet-control-layers-group label { 12 | padding-left: .5em; 13 | } 14 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/README.md: -------------------------------------------------------------------------------- 1 | # SwissDataCube - Viewer 2 | This is the repository for the SwissDataCUbe - Viewer. 3 | The aim is to develop an application to visualize, query, and download time-series data produced by the SwissDataCube. 4 | It is based on bootleaf (https://github.com/bmcbride/bootleaf) providing a simple, responsive template for building web mapping applications with [Bootstrap](http://getbootstrap.com/), [Leaflet](http://leafletjs.com/), and [typeahead.js](http://twitter.github.io/typeahead.js/). 5 | 6 | Data are published using GeoServer (http://www.geoserver.org) to provide an interoperable access to data using OGC WMS & WCS standards. 7 | 8 | The viewer allows: 9 | - Visualizing and Downloading single raster product layers 10 | - Visualizing and Downloading time-series raster product layers 11 | - Generating graph for a given pixel of a time-series raster product layer 12 | - Access products in your own client with WMS & WCS standards 13 | - Metadata support 14 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/assets/img/clippy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/assets/img/favicon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/assets/img/favicon-120.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/assets/img/favicon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/assets/img/favicon-152.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/assets/img/favicon-196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/assets/img/favicon-196.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/assets/img/favicon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/assets/img/favicon-76.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/assets/img/favicon.ico -------------------------------------------------------------------------------- /viewer/versions/1.3.0/assets/img/globe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/assets/img/globe.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/assets/img/metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/assets/img/metadata.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/config.js: -------------------------------------------------------------------------------- 1 | var appConfig={ 2 | 'appVersion' : '1.3.0', 3 | 'appVersionDate' : '[20.09.2019]', 4 | 'gsHost' : 'https://geoserver.swissdatacube.org/geoserver/ows?', 5 | 'mapZoom' : '8', 6 | 'mapMinZoom' : '7', 7 | 'mapMaxZoom' : '15', 8 | 'mapCenter' : [46.78, 8.22], 9 | 'cswLayer1' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:L8_CHmosaic_2016&outputSchema=http://www.isotc211.org/2005/gmd', 10 | 'cswLayer2' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:clipch_95_051&outputSchema=http://www.isotc211.org/2005/gmd', 11 | 'cswLayer3' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:clipch_05_171&outputSchema=http://www.isotc211.org/2005/gmd', 12 | 'cswLayer4' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=sdc:diff_all_CH&outputSchema=http://www.isotc211.org/2005/gmd', 13 | 'cswLayer5' : 'https://geoserver.swissdatacube.org/geoserver/ows?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=atlas:sites&outputSchema=http://www.isotc211.org/2005/gmd', 14 | }; -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/images/layers.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015"], 3 | "plugins": ["transform-es2015-modules-umd"] 4 | } 5 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # http://editorconfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | # Change these settings to your own preference 9 | indent_style = space 10 | indent_size = 4 11 | 12 | # We recommend you to keep these unchanged 13 | end_of_line = lf 14 | charset = utf-8 15 | trim_trailing_whitespace = true 16 | insert_final_newline = true 17 | 18 | [*.md] 19 | trim_trailing_whitespace = false 20 | 21 | [{package.json,bower.json}] 22 | indent_size = 2 23 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/.github/issue_template.md: -------------------------------------------------------------------------------- 1 | ### Minimal example 2 | 3 | > Fork this [JSFiddle](https://jsfiddle.net/zenorocha/5kk0eysw/) and reproduce your issue. 4 | 5 | ### Expected behaviour 6 | 7 | I thought that by going to the page '...' and pressing the button '...' then '...' would happen. 8 | 9 | ### Actual behaviour 10 | 11 | Instead of '...', what I saw was that '...' happened instead. 12 | 13 | ### Browsers affected 14 | 15 | I tested on all major browsers and only IE 11 does not work. 16 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | npm-debug.log 3 | bower_components 4 | node_modules 5 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/.npmignore: -------------------------------------------------------------------------------- 1 | /.*/ 2 | /demo/ 3 | /test/ 4 | /.* 5 | /bower.json 6 | /karma.conf.js 7 | /src 8 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - stable 5 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/demo/constructor-node.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | constructor-node 6 | 7 | 8 | 9 | 10 |
11 | Copy 12 |
13 | 14 | 15 | 16 | 17 | 18 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/demo/constructor-nodelist.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | constructor-nodelist 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/demo/constructor-selector.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | constructor-selector 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/demo/function-target.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | function-target 6 | 7 | 8 | 9 | 10 | 11 |
hello
12 | 13 | 14 | 15 | 16 | 17 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/demo/function-text.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | function-text 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/demo/target-div.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | target-div 6 | 7 | 8 | 9 | 10 |
hello
11 | 12 | 13 | 14 | 15 | 16 | 17 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/demo/target-input.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | target-input 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/clipboard/demo/target-textarea.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | target-textarea 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/coordinates/L.Control.MousePosition.css: -------------------------------------------------------------------------------- 1 | .leaflet-container .leaflet-control-mouseposition { 2 | background-color: rgba(255, 255, 255, 0.7); 3 | box-shadow: 0 0 5px #bbb; 4 | padding: 0 5px; 5 | margin:0; 6 | color: #333; 7 | font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/coordinates/L.Control.MousePosition.js: -------------------------------------------------------------------------------- 1 | L.Control.MousePosition = L.Control.extend({ 2 | options: { 3 | position: 'bottomleft', 4 | separator: ' : ', 5 | emptyString: 'Unavailable', 6 | lngFirst: false, 7 | numDigits: 5, 8 | lngFormatter: undefined, 9 | latFormatter: undefined, 10 | prefix: "" 11 | }, 12 | 13 | onAdd: function (map) { 14 | this._container = L.DomUtil.create('div', 'leaflet-control-mouseposition'); 15 | L.DomEvent.disableClickPropagation(this._container); 16 | map.on('mousemove', this._onMouseMove, this); 17 | this._container.innerHTML=this.options.emptyString; 18 | return this._container; 19 | }, 20 | 21 | onRemove: function (map) { 22 | map.off('mousemove', this._onMouseMove) 23 | }, 24 | 25 | _onMouseMove: function (e) { 26 | var lng = this.options.lngFormatter ? this.options.lngFormatter(e.latlng.lng) : L.Util.formatNum(e.latlng.lng, this.options.numDigits); 27 | var lat = this.options.latFormatter ? this.options.latFormatter(e.latlng.lat) : L.Util.formatNum(e.latlng.lat, this.options.numDigits); 28 | var value = this.options.lngFirst ? lng + this.options.separator + lat : lat + this.options.separator + lng; 29 | var prefixAndValue = this.options.prefix + ' ' + value; 30 | this._container.innerHTML = prefixAndValue; 31 | } 32 | 33 | }); 34 | 35 | L.Map.mergeOptions({ 36 | positionControl: false 37 | }); 38 | 39 | L.Map.addInitHook(function () { 40 | if (this.options.positionControl) { 41 | this.positionControl = new L.Control.MousePosition(); 42 | this.addControl(this.positionControl); 43 | } 44 | }); 45 | 46 | L.control.mousePosition = function (options) { 47 | return new L.Control.MousePosition(options); 48 | }; 49 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/extent/leaflet.defaultextent.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-defaultextent { 2 | 3 | } 4 | 5 | .leaflet-control-defaultextent-toggle { 6 | text-indent: -9999px; 7 | white-space: nowrap; 8 | background-image: url('leaflet.defaultextent.png'); 9 | width: 26px; 10 | height: 26px; 11 | display: block; 12 | } 13 | 14 | /* CSS for high-resolution devices */ 15 | @media only screen and (-Webkit-min-device-pixel-ratio: 1.5), 16 | only screen and (-moz-min-device-pixel-ratio: 1.5), 17 | only screen and (-o-min-device-pixel-ratio: 3/2), 18 | only screen and (min-device-pixel-ratio: 1.5) { 19 | .leaflet-control-defaultextent-toggle { 20 | background-image: url('leaflet.defaultextent@2X.png'); 21 | background-size: 26px 26px; 22 | background-repeat: no-repeat; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/extent/leaflet.defaultextent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/extent/leaflet.defaultextent.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/extent/leaflet.defaultextent@2X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/extent/leaflet.defaultextent@2X.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/fullscreen/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "camelcase": 0, 4 | "quotes": [2, "single", "avoid-escape"], 5 | "no-mixed-spaces-and-tabs": [2, "smart-tabs"], 6 | "space-before-function-paren": 2, 7 | "space-in-parens": 2, 8 | "object-curly-spacing": [2, "never"], 9 | "array-bracket-spacing": 2, 10 | "computed-property-spacing": 2, 11 | "space-before-blocks": 2, 12 | "keyword-spacing": 2, 13 | "no-lonely-if": 2, 14 | "comma-style": 2, 15 | "no-underscore-dangle": 0, 16 | "no-constant-condition": 0, 17 | "no-multi-spaces": 0, 18 | "strict": 0, 19 | "key-spacing": 0, 20 | "no-shadow": 0, 21 | "no-unused-vars": 2 22 | }, 23 | "globals": { 24 | "L": true, 25 | "module": false, 26 | "define": false, 27 | "require": true 28 | }, 29 | "env": { 30 | "browser": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/fullscreen/.mversionrc: -------------------------------------------------------------------------------- 1 | { 2 | "commitMessage": "version %s", 3 | "tagName": "%s", 4 | "scripts": { 5 | "postcommit": "git push && git push --tags && npm publish" 6 | } 7 | } -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/fullscreen/Control.FullScreen.css: -------------------------------------------------------------------------------- 1 | .fullscreen-icon { background-image: url(icon-fullscreen.png); } 2 | .leaflet-retina .fullscreen-icon { background-image: url(icon-fullscreen-2x.png); background-size: 26px 26px; } 3 | /* one selector per rule as explained here : http://www.sitepoint.com/html5-full-screen-api/ */ 4 | .leaflet-container:-webkit-full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 5 | .leaflet-container:-ms-fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 6 | .leaflet-container:full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } 7 | .leaflet-container:fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } 8 | .leaflet-pseudo-fullscreen { position: fixed !important; width: 100% !important; height: 100% !important; top: 0px !important; left: 0px !important; z-index: 99999; } -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/fullscreen/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, Bruno Bergot 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/fullscreen/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "homepage": "https://github.com/brunob/leaflet.fullscreen", 5 | "license": "MIT", 6 | "authors": [ 7 | "brunob " 8 | ], 9 | "description": "Leaflet.Control.FullScreen for Leaflet", 10 | "main": [ 11 | "Control.FullScreen.js", 12 | "Control.FullScreen.css", 13 | "icon-fullscreen.png", 14 | "icon-fullscreen-2x.png" 15 | ], 16 | "devDependencies": { 17 | "eslint": "2.3.0" 18 | }, 19 | "keywords": [ 20 | "leaflet", 21 | "plugins", 22 | "maps", 23 | "fullscreen" 24 | ], 25 | "ignore": [ 26 | "**/.*", 27 | "node_modules", 28 | "bower_components", 29 | "test", 30 | "tests", 31 | "index.html" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/fullscreen/icon-fullscreen-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/fullscreen/icon-fullscreen-2x.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/fullscreen/icon-fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/fullscreen/icon-fullscreen.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/fullscreen/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet.fullscreen", 3 | "version": "1.4.4", 4 | "description": "Simple plugin for Leaflet that adds fullscreen button to your maps.", 5 | "main": "Control.FullScreen.js", 6 | "scripts": { 7 | "test": "eslint --config .eslintrc Control.FullScreen.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/brunob/leaflet.fullscreen.git" 12 | }, 13 | "keywords": [ 14 | "leaflet", 15 | "plugins", 16 | "maps", 17 | "fullscreen" 18 | ], 19 | "devDependencies": { 20 | "eslint": "2.3.0" 21 | }, 22 | "author": "b_b", 23 | "license": "MIT License", 24 | "readmeFilename": "README.md" 25 | } 26 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-easyPrint/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "mourner", 3 | rules: { 4 | "globals": { 5 | "L": false, 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-easyPrint/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log 3 | 4 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-easyPrint/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | 3 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-groupedlayercontrol/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2013 Ishmael Smyrnow 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-groupedlayercontrol/leaflet.groupedlayercontrol.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-layers-group-name { 2 | font-weight: bold; 3 | margin-bottom: .2em; 4 | display: block; 5 | } 6 | 7 | .leaflet-control-layers-group { 8 | margin-bottom: .5em; 9 | } 10 | 11 | .leaflet-control-layers-group label { 12 | padding-left: .5em; 13 | } 14 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-side-by-side/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-side-by-side/.npmignore: -------------------------------------------------------------------------------- 1 | leaflet-side-by-side.js 2 | leaflet-side-by-side.min.js 3 | screencast.gif 4 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-side-by-side/layout.css: -------------------------------------------------------------------------------- 1 | .leaflet-sbs-range { 2 | position: absolute; 3 | top: 50%; 4 | width: 100%; 5 | z-index: 999; 6 | } 7 | .leaflet-sbs-divider { 8 | position: absolute; 9 | top: 0; 10 | bottom: 0; 11 | left: 50%; 12 | margin-left: -2px; 13 | width: 4px; 14 | background-color: #fff; 15 | pointer-events: none; 16 | z-index: 999; 17 | } 18 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-side-by-side/range-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-side-by-side/range-icon.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/.gitignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | node_modules 16 | 17 | dist 18 | build -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | sudo: false 4 | 5 | after_success: 6 | - if [[ "$TRAVIS_BRANCH" == "master" ]]; then bash .travis/deploy.sh; fi 7 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/.travis/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | eval "$(ssh-agent -s)" 6 | 7 | openssl aes-256-cbc -K $encrypted_f72e501d769d_key -iv $encrypted_f72e501d769d_iv -in .travis/deploy_key.pem.enc -out .travis/deploy_key.pem -d 8 | chmod 600 .travis/deploy_key.pem 9 | ssh-add .travis/deploy_key.pem 10 | 11 | mkdir gh-pages 12 | cd gh-pages 13 | cp -R ../examples ../src . 14 | 15 | git init 16 | git config user.name "Travis" 17 | git config user.email "noreply@travis-ci.org" 18 | git add . 19 | git commit -m "Deploy to GitHub Pages" 20 | git push --force --quiet git@github.com:Turbo87/leaflet-sidebar.git master:gh-pages > /dev/null 2>&1 21 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/.travis/deploy_key.pem.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/.travis/deploy_key.pem.enc -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## v0.1.9 (2016-01-19) 4 | 5 | - Fix unresolved variable error in `removeFrom()` method (see #38) 6 | 7 | 8 | ## v0.1.8 (2015-09-10) 9 | 10 | - Fix text selection on sidebar (see #31) 11 | 12 | 13 | ## v0.1.7 (2015-09-09) 14 | 15 | - Catch context menu events on sidebar (#23) 16 | - Fix jQuery event handlers/Bootstrap controls on sidebar (#31) 17 | 18 | 19 | ## v0.1.6 (2014-08-23) 20 | 21 | - Added support for [bower.io](http://bower.io/search/) (#21) 22 | 23 | 24 | ## v0.1.5 (2014-04-15) 25 | 26 | - Added support for [component.io](http://component.io/) (#17, thanks @zedd45) 27 | - Added `shown` and `hidden` events (#18) 28 | 29 | 30 | ## v0.1.4 (2014-02-16) 31 | 32 | - Adjusted CSS for touch devices (#12) 33 | - Converted build system to [gulp.js](http://gulpjs.com/) 34 | - Added [TravisCI](http://travis-ci.org/) support for CI linting 35 | 36 | 37 | ## v0.1.3 (2014-02-06) 38 | 39 | - Added `autoPan` option 40 | 41 | 42 | ## v0.1.2 (2013-12-28) 43 | 44 | - Fixed broken `stopPropagation()` call (#2) 45 | - Fire `show` and `hide` events on sidebar instances 46 | - Added `getCloseButton()` method 47 | - Several memory leaks related to event handlers fixed (#7) 48 | Thanks to Jerroyd Moore! 49 | 50 | 51 | ## v0.1.1 (2013-11-03) 52 | 53 | - Fixed close button event handler (#1) 54 | 55 | 56 | ## v0.1.0 (2013-10-30) 57 | 58 | - First official release 59 | - `position` option 60 | - `closeButton` option 61 | - `getContainer()` and `setContent()` methods 62 | - two more examples 63 | 64 | 65 | ## v0.0.0 (2013-10-29) 66 | 67 | - Preview release 68 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Tobias Bieniek 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet-sidebar", 3 | "version": "0.2.0", 4 | "homepage": "https://github.com/turbo87/leaflet-sidebar", 5 | "authors": [ 6 | "Tobias Bieniek " 7 | ], 8 | "description": "A responsive sidebar plugin for Leaflet", 9 | "main": [ 10 | "src/L.Control.Sidebar.js", 11 | "src/L.Control.Sidebar.css" 12 | ], 13 | "keywords": [ 14 | "gis", 15 | "leaflet", 16 | "map" 17 | ], 18 | "license": "MIT", 19 | "dependencies": { 20 | "leaflet": "~0.7" 21 | }, 22 | "ignore": [ 23 | "node_modules" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/leaflet-sidebar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/leaflet-sidebar.gif -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sidebar/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leaflet-sidebar", 3 | "version": "0.2.0", 4 | "description": "A responsive sidebar plugin for Leaflet", 5 | "keywords": [ 6 | "gis", 7 | "leaflet", 8 | "map" 9 | ], 10 | "homepage": "https://github.com/turbo87/leaflet-sidebar", 11 | "bugs": "https://github.com/turbo87/leaflet-sidebar/issues", 12 | "license": "MIT", 13 | "author": "Tobias Bieniek ", 14 | "main": "src/L.Control.Sidebar.js", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/turbo87/leaflet-sidebar.git" 18 | }, 19 | "scripts": { 20 | "test": "gulp lint" 21 | }, 22 | "dependencies": { 23 | }, 24 | "devDependencies": { 25 | "gulp": "~3.6.0", 26 | "gulp-clean": "~0.2.4", 27 | "gulp-concat": "~2.1.7", 28 | "gulp-csslint": "~0.1.3", 29 | "gulp-header": "~0.4.0", 30 | "gulp-jshint": "~1.3.4", 31 | "gulp-minify-css": "~0.1.0", 32 | "gulp-sass": "2.0.4", 33 | "gulp-rename": "~0.2.2", 34 | "gulp-uglify": "~0.1.0", 35 | "gulp-zip": "~0.1.2" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/img/1847-HPHS-Catalog1904p164.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/img/1847-HPHS-Catalog1904p164.jpg -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/img/1905-HPHS-postcard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/img/1905-HPHS-postcard.jpg -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/img/BradleyAirport.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/img/BradleyAirport.jpg -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/img/TrinityCollege.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/img/TrinityCollege.jpg -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | leaflet-storymap 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |

Insert your title here

24 | Scroll 25 |
26 | 27 |
28 |
29 |
30 |
31 |
32 | 33 |
34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/markers/images/markers_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/markers/images/markers_default.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/markers/images/markers_default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/markers/images/markers_default@2x.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/markers/images/markers_shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/markers/images/markers_shadow.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/markers/images/markers_shadow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unep-grid/SwissDataCube/88c46f38fdeafdbc0ba815335f2eba3ef84d27fd/viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/markers/images/markers_shadow@2x.png -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-storymap/markers/leaflet.extra-markers.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Leaflet.extra-markers 3 | * Custom Markers for Leaflet JS based on Awesome Markers 4 | * Leaflet ExtraMarkers 5 | * https://github.com/coryasilva/Leaflet.ExtraMarkers/ 6 | * @author coryasilva 7 | * @version 1.1.0 8 | */ 9 | !function(a,b){"use strict";L.ExtraMarkers={},L.ExtraMarkers.version="1.0.1",L.ExtraMarkers.Icon=L.Icon.extend({options:{iconSize:[35,45],iconAnchor:[17,42],popupAnchor:[1,-32],shadowAnchor:[10,12],shadowSize:[36,16],className:"extra-marker",prefix:"",extraClasses:"",shape:"circle",icon:"",markerColor:"red",iconColor:"#fff",number:""},initialize:function(a){a=L.Util.setOptions(this,a)},createIcon:function(){var a=b.createElement("div"),c=this.options;return c.icon&&(a.innerHTML=this._createInner()),c.bgPos&&(a.style.backgroundPosition=-c.bgPos.x+"px "+-c.bgPos.y+"px"),this._setIconStyles(a,c.shape+"-"+c.markerColor),a},_createInner:function(){var a="",b="",c=this.options;return c.iconColor&&(a="style='color: "+c.iconColor+"' "),c.number&&(b="number='"+c.number+"' "),""},_setIconStyles:function(a,b){var c,d,e=this.options,f=L.point(e["shadow"===b?"shadowSize":"iconSize"]);"shadow"===b?(c=L.point(e.shadowAnchor||e.iconAnchor),d="shadow"):(c=L.point(e.iconAnchor),d="icon"),!c&&f&&(c=f.divideBy(2,!0)),a.className="leaflet-marker-"+d+" extra-marker-"+b+" "+e.className,c&&(a.style.marginLeft=-c.x+"px",a.style.marginTop=-c.y+"px"),f&&(a.style.width=f.x+"px",a.style.height=f.y+"px")},createShadow:function(){var a=b.createElement("div");return this._setIconStyles(a,"shadow"),a}}),L.ExtraMarkers.icon=function(a){return new L.ExtraMarkers.Icon(a)}}(this,document); -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sync/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "camelcase": 2, 4 | "quotes": [2, "single", "avoid-escape"], 5 | "indent": ["error", 4, { 6 | "MemberExpression": "off" 7 | }], 8 | "space-before-function-paren": 2, 9 | "space-in-parens": 2, 10 | "object-curly-spacing": 2, 11 | "space-before-blocks": 2, 12 | "keyword-spacing": 2, 13 | "no-lonely-if": 2, 14 | "comma-spacing": [2, {"after": true}], 15 | "comma-style": 2, 16 | "no-underscore-dangle": 0, 17 | "no-constant-condition": 0, 18 | "no-multi-spaces": 2, 19 | "strict": 0, 20 | "key-spacing": 2, 21 | "no-shadow": 0, 22 | "no-console": 2, 23 | "semi": 2, 24 | "curly": 2 25 | }, 26 | "globals": { 27 | "L": true, 28 | "module": true, 29 | "define": true 30 | }, 31 | "plugins": [ 32 | "html" 33 | ], 34 | "settings": { 35 | "html/report-bad-indent": 2, 36 | "html/indent": "space" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sync/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sync/.mversionrc: -------------------------------------------------------------------------------- 1 | { 2 | "commitMessage": "Bumped version to %s", 3 | "tagName": "%s", 4 | "scripts": { 5 | "preupdate": "npm run test", 6 | "postupdate": "git push && git push --tags && npm publish" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/leaflet-sync/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: node_js 3 | node_js: 4 | - "node" 5 | notifications: 6 | email: false 7 | git: 8 | depth: 10 9 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/storymap-master/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Atle Frenvik Sveen 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/storymap-master/readme.md: -------------------------------------------------------------------------------- 1 | Storymap 2 | ======== 3 | 4 | Storymap is a jQuery-plugin to create a map that follows your text. Annotate each paragraph and place a map alongside it. Then you can zoom/pan/add marker etc to the map as the reader reads through the text. 5 | 6 | Demo 7 | ---- 8 | See http://atlefren.github.io/storymap/ 9 | 10 | Known issues 11 | ------------ 12 | Will not work well on mobile (map gets removed on small screens) 13 | 14 | Requirements 15 | ------------ 16 | Storymap expects some (rather common) js libs to be available: 17 | 18 | - jQuery (as it is a jQuery plugin) 19 | - underscore.js (as it makes js easier to work with) 20 | - Leaflet (because we need a map) 21 | 22 | In addition the markup is based on Bootstrap 3. 23 | 24 | Configuration 25 | ------------- 26 | Should be rather simple. Setup a html page like the one in index.html, include dependencies and do a 27 | 28 | el.storymap({markers: dict_with_data}); 29 | 30 | on the element you wish to add a storymap to. By default, the plugin looks for elements that has a "data-place" attribute, sets the breakpoint 33% from the top of the page. This can be overridden by setting some options, like this: 31 | 32 | el.storymap({ 33 | markers: dict_with_data, 34 | selector: '[data-place]', //jquery for selectors to trigger an event 35 | breakpointPos: '33.333%', //position of the breakpoint 36 | createMap: function () { //function that creates a map 37 | // create a map in the "map" div, set the view to a given place and zoom 38 | var map = L.map('map').setView([65, 18], 5); 39 | // add an OpenStreetMap tile layer 40 | L.tileLayer( 41 | 'http://{s}.tile.osm.org/{z}/{x}/{y}.png', 42 | {attribution: '© OpenStreetMap contributors'} 43 | ).addTo(map); 44 | return map; 45 | } 46 | }); 47 | 48 | License 49 | ------- 50 | Storymap is licensed under the MIT license. 51 | 52 | Contributions 53 | ------------- 54 | Yes please! 55 | -------------------------------------------------------------------------------- /viewer/versions/1.3.0/leaflet/plugin/storymap-master/style.css: -------------------------------------------------------------------------------- 1 | 2 | .sidebar { 3 | /* display: none;*/ 4 | } 5 | @media (min-width: 768px) { 6 | .sidebar { 7 | position: fixed; 8 | top: 0; 9 | bottom: 0; 10 | right: 0; 11 | z-index: 1000; 12 | display: block; 13 | padding: 20px; 14 | overflow-x: hidden; 15 | overflow-y: hidden; 16 | background-color: #f5f5f5; 17 | border-right: 1px solid #eee; 18 | } 19 | } 20 | 21 | .main { 22 | padding: 20px; 23 | 24 | padding-bottom: 500px; 25 | } 26 | @media (min-width: 768px) { 27 | .main { 28 | padding-right: 40px; 29 | padding-left: 40px; 30 | } 31 | } 32 | .main .page-header { 33 | margin-top: 0; 34 | } 35 | 36 | .breakpoint-current { 37 | left: 0; 38 | margin-top: -10px; 39 | position: fixed; 40 | /* top: 33.3333%; */ 41 | width: 3px; 42 | height: 3px; 43 | background: red;; 44 | } 45 | 46 | .viewing { 47 | background: #eee; 48 | } 49 | 50 | section { 51 | padding: 5px 10px 10px 10px; 52 | border-radius: 10px; 53 | } 54 | --------------------------------------------------------------------------------