Git Product home page Git Product logo

aremi-natmap's Introduction

TerriaJS

Build Status Docs

Terria logo

TerriaJS is a library for building rich, web-based geospatial data explorers, used to drive National Map, Digital Earth Australia Map, NSW Spatial Digital Twin and NEII Viewer (and many others). It uses Cesium and WebGL for a full 3D globe in the browser with no plugins. It gracefully falls back to 2D with Leaflet on systems that can't run Cesium. It can handle catalogs of tens of thousands of layers, with dozens of geospatial file and web service types supported. It is almost entirely JavaScript in the browser, meaning it can even be deployed as a static website, making it simple and cheap to host.


We have just released a brand new version of Terria — verson 8!

We've put together a list of things we've removed from version 8 and some steps to help you migrate to the new version in our migration guide

Not ready to move to version 8 yet? You can find terriajs version 7 here: https://github.com/TerriaJS/terriajs/tree/terriajs7


Features

  • Nested catalog of layers which can be independently enabled to create mashups of many layers.
  • Supports GeoJSON, KML, CSV (point and region-mapped), GPX, GeoRSS, CZML and zipped shapefile file types natively.
  • Supports WMS, WFS, WMTS, Esri MapServer, Esri FeatureServer, Bing Maps, Carto Maps, Cesium Ion Imagery, OpenStreetMap-style raster tiles, Mapbox, SDMX, 3D Tiles and GTFS and Sensor Observation Service item types.
  • Supports querying WMS, WFS, Esri MapServer, CSW, CKAN, Socrata, OpenDataSoft and SDMX services for groups of items.
  • 3D globe (Cesium) or 2D mode (Leaflet). 3D objects supported in CZML format.
  • Time dimensions supported for CSV, CZML, WMS. Automatically animate layers, or slide the time control forward and backward.
  • Drag-and-drop files from your desktop to the browser, for instant visualisation (no file upload to server required).
  • All ASGS (Australian Statistical Geographic Standard) region types (LGA, SA2, commonwealth electoral district etc) supported for CSV region mapping, plus several others: Primary Health Networks, Statistical Local Areas, ISO 3 letter country codes, etc.
  • Users can generate a reusable URL link of their current map view, to quickly share mashups of web-hosted data.
  • The interface is internationalised and translations are available for French, Italian and Japanese. Partial translations have also been contributed for other languages (see TerriaJS weblate)

Terria screenshot

Who's using TerriaJS?

Sites developed by Data61

Not Data61

Sites we're aware of that are using TerriaJS. These are not endorsements or testimonials.

Technical

  • NodeJS v16, v18 and v20 are supported
  • Built in TypeScript & ES2020+ JavaScript, compiled with Babel to ES5.
  • Supports modern browsers (recent versions of Microsoft Edge, Mozilla Firefox & Google Chrome).
  • TerriaJS Server component runs in NodeJS and provides proxying for web services that don't support CORS or require authentication. Instead of using TerriaJS-Sever proxy service, an alternative proxying service URL can be specified. See Specify an alternative proxy server URL
  • Dependencies are managed in NPM and assembled using WebPack.

Getting Started

The easiest way to build your own Terria-based map is using the TerriaMap starting point. This gives you the HTML structure, server and build processes you need to get a site up and running immediately.

See Getting Started in the Documentation for all the details.

Components and naming

  • Terria™ is the overall name for the spatial data platform and the team that built TerriaJS.
  • TerriaJS is this TypeScript/JavaScript library consisting of the 2D/3D map, catalog management and many spatial data connectors.
  • Cesium is the 3D WebGL rendering library used by TerriaJS, which provides many low-level functions for loading and displaying imagery and spatial formats such as GeoJSON and KML.
  • TerriaMap is a complete website starting point, using TerriaJS.
  • TerriaJS-Server is a NodeJS-based server that provides proxying and support services for TerriaJS.
  • NationalMap is the flagship Terria deployment, and the origin of the TerriaJS library.

Related components

  • TerriaMapStatic, a pre-built version of TerriaMap, which can be deployed as a static HTML website, such as on Github Pages.

Big Thanks

Hosting and contribution framework for community translations of TerriaJS provided by Weblate under the Libre plan for open source software. See our translation progress for different languages:

Translation status

Join the community

Get in touch!

Publishing TerriaJS

From main using GitHub Actions (preferred method):

  • Checkout and pull main branch of terriajs, run yarn install if necessary.
  • Bump the version number in package.json.
  • Review and edit CHANGES.md.
    • Ensure that entries for new changes are written in the right section by diffing against the last version. Make sure the section name matches the version you set in package.json above.
    • e.g. git diff 8.2.25 HEAD -- CHANGES.md (where 8.2.25 is the previous published version)
    • Or using GitHub web interface https://github.com/TerriaJS/terriajs/compare/8.2.25...main (change the version and master/next to match the previous release and branch)
    • Finalise the heading of the version to be released with version number and date.
    • Add a heading above for upcoming changes to be documented under.
  • Commit and push your changes on a branch and make a PR to main branch.
  • Get someone to review and merge the PR.
  • Wait for slack notification of successful/failed publish.
  • 😄

Publishing to npm without the GitHub Action (not for standard releases):

This method should not be used to publish versions at the tip of main or another branch that is often used for releases. To publish a new version of TerriaJS to npm with this method, you'll need to be listed as a collaborator here. Existing collaborators can add new ones. Then:

  • Checkout and pull the branch of terriajs to be deployed, run yarn install if necessary.
  • Bump the version number in package.json. Follow semver.
  • Appropriately update CHANGES.md, ensuring that changes are listed in their correct sections.
  • Commit and push your changes and make a PR to the branch to be deployed.
  • Get someone to review and merge the PR.
  • Fetch and checkout the merge commit made by merging the PR.
  • rm -rf wwwroot/build
  • Make sure you don't have any changes in your working directory.
  • gulp lint release
  • npm publish --tag your-tag (for a release not at the tip of main a tag must be set, and it must not be latest or next. For releases on old versions you could use e.g. 6-5-x or 6-x-x as a tag, for upcoming features a short name could be used)
  • Ensure that CHANGES.md on main is also updated to list the release and clearly note the nature and reason for release.

The above will publish a new version to npm and also tag that version on GitHub.

aremi-natmap's People

Contributors

a-stacey avatar alexgilleran avatar anabelgun avatar arrayjam avatar axman6 avatar bsimyo avatar chloeleichen avatar greenkeeper[bot] avatar greenkeeperio-bot avatar hilarycinis avatar keyboardsounds avatar kring avatar layoric avatar maxious avatar meh9 avatar na9da avatar nahidakbar avatar peterhassall avatar philipgrimmett avatar quadtog avatar racingtadpole avatar rdengate avatar reginapramesti avatar rowanwins avatar snayler0 avatar soyarsauce avatar sppigot avatar stevage avatar steve9164 avatar tobybellwood avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aremi-natmap's Issues

Capitalisation inconsistency

On left hand side under search box, Message says 'Add Data' but button says 'Add data'. D in 'data' in button is not capitalised.

"All Power Stations" GA data - download as csv

ARENA:
It would be good to provide the data under 'All Power Stations' ('Electricity Infrastructure' category), as a csv, in addition to the XML format automatically provided with the GA service; or provide instructions to users where/how the data can be downloaded as a csv.

Cease using default Cesium Bing maps key

From the console log for aremi.nicta.com.au:

"[Log] This application is using Cesium's default Bing Maps key. Please create a new key for the application as soon as possible and prior to deployment by visiting https://www.bingmapsportal.com/, and provide your key to Cesium by setting the Cesium.BingMapsApi.defaultKey property before constructing the CesiumWidget or any other object that uses the Bing Maps API. (ausglobe.js, line 28)"

Search does not retrieve layers

Specific layers that match the search text do not appear in the search results on the left hand side. Only the option to search the layers in another window appears. The actual layers should appear and perhaps be at the top of the list rather than the bottom.

To add NSW Bioenergy layers

They are all cropping layers so could you please upload my layers using the URLs below into the AREMI Cropping folder.

I have 2 new URLs (3 new layers) to upload and 1 to remove. I have already stopped the map service for the layer that will be removed.
New layers (and folder names):
Cropping > All Straw, Hay & Silage Residues
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Cropping_All_Straw_Hay_Silage_Residues/MapServer (contains 1 layer)

Cropping > Hay and Silage Residues
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Cropping_Hay_Silage_Residues/MapServer (contains 2 layers)
Remove layer (map service already stopped):
Cropping > All Straw Residues
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Cropping_All_Straw_Residues/MapServer (contains 1 layer)
Unchanged:
Cropping > Cereal Straw Residues (contains 2 layers)
Cropping > Non Cereal Straw Residues (contains 2 layers)
Cropping > Soil Protection Zones (contains 1 layer)

Please follow the layout you have already created for the Cropping datasets (as it looks good and is clear to understand) and use the folder names above for the new layers. In total there will be 8 cropping layers on AREMI.

Also, I was able to load and view my URLs through the live AREMI platform (http://nationalmap.gov.au/renewables/) but not through the prototype platform (http://prototype.aremi.d61.io/renewables/). The error message returned is below.

Missing button to copy link to clipboard

In the SHARE button, there should be a button they click which copies the link text to the clipboard rather than the more complex instructions of selecting the text and pressing the copy keyboard shortcut. A different button would be needed to copy the embed code.

VIC Bioenergy Stubble and Straw - data error

From user feedback:

I think the idea of the national map of biomass sources is great. The data set has a problem with stubble and straw from my initial look in Victoria. The CSIRO analysis shows that the national total for stubble residues for biomass was around 27million tonnes and the Vic maps shows at least this in western Vic alone.

Add DUID to the chart series name

At the moment when we put a timeseries on the chart from the NEM Current Power Generation, we just use the station name as the chart key. This is a problem for generators that have multiple generating units because they are all named with the same name, so you can only see one at a time.

E.g. Hazelwood has HWPS1 to HWPS8, but we can only add one at a time to the chart as each series replaces the old one.

Update GA layers

The following services:
· NM_Hydrography_and_Marine
· NM_Hydrography_and_Marine_Lines
· NM_Hydrography_and_Marine_Points
· NM_Hydrography_and_Marine_Polygons

Have been replaced by the following due to incorrect spelling in the service:
· NM_Hydrology_and_Marine
· NM_Hydrology_and_Marine_Lines
· NM_Hydrology_and_Marine_Points
· NM_Hydrology_and_Marine_Polygons

  • the Land Tenure service in AREMI is still pointing to the old service. This was actually due for decommission today (12 April 17) to be extended for another month, but that will be all the extension time allowed.
  • to switch Cadastre Parcels over, as it will also be going into the decom process soon.

Single inverted comma appearing as incorrect symbol

The NationalMaps code base is having trouble displaying single inverted commas. Please check AREMI for this same problem. The single inverted comma is being displayed a 'question mark' inside a diamond.

Make NGERS colours more distinct for low values

CER brought up the issue of colours not doing a good job of representing the differences between low values in the NGERS designated generation facilities, maybe a log scale may help, but we'll need to platy with a few options.

Add NSW bioenergy assessment data

New South Wales (main heading)
Forestry (group heading)
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Forestry_Harvest_Residues_Native_Hardwoods/MapServer
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Forestry_Harvest_Residues_Planted_Softwoods/MapServer
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Forestry_NSW_Wood_Processing_Facilities/MapServer
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/NSW_State_Forests/MapServer
Cropping (group heading)
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Cropping_All_Straw_Residues/MapServer
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Cropping_Cereal_Straw_Residues/MapServer
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Cropping_Non_Cereal_Straw_Residues/MapServer
https://spatial.industry.nsw.gov.au/arcgis/rest/services/Bioenergy_Assessment/Cropping_Soil_Protection_Zones/MapServer

Also, please continue to attach the statement below to the Forestry group heading, as the metadata doesn't have this information (it will be remedied in the future when more layers are completed for the Forestry group).

Note: This statement is contained within the Cropping layers so no need to add to this group heading.
Licensing, Terms & Use Conditions
These datasets have been made available for information purposes only. No claim is made as to the accuracy or authenticity of the data. The NSW Government and this department (Department of Industry - Lands) does not accept any liability to any person for the information or advice (or the use of such information or advice) which has been provided in this dataset.

add rectangle to CSV area datasets

Add a rectangle config object to the init file for CSV area datasets like the APVI, without them clicking on the layer name does not zoom to focus on Australia.

Add 2015-16 NGERS data

Attached 2015-16 file for the designated generation facilities under NGER. I’m not sure when you are next planning a release, but it would be great to start seeing this data soon as it relates to our February publication. It will also serve as the beginning of a time series when paired with the 2014-15 data we provided to you in February.

As with the data provided to you in February, it is all publically available so there are no security restrictions on the data.

Add SA Bioenergy layers

Add the following URLs for the SA Bioenergy.

  • not able to add these directly to AREMI but they sometimes work in the prototype – which is crashing out a bit when you try to zoom in.

AGRICULTURE SA4
SA4_CERAL_STRAW
http://location.sa.gov.au/arcgis3/rest/services/AREMI/Cereal_Straw/MapServer/0
SA4_NON_CERAL_STRAW
http://location.sa.gov.au/arcgis3/rest/services/AREMI/Non_Cereal_Straw/MapServer/0
SA4_HAY_SILAGE
http://location.sa.gov.au/arcgis3/rest/services/AREMI/Hay_and_Silage/MapServer/0

HORTICULTURE
SA4_FRUIT_NUTS
http://location.sa.gov.au/arcgis3/rest/services/AREMI/Fruit_Nuts/MapServer/0
SA4_VEGETABLES
http://location.sa.gov.au/arcgis3/rest/services/AREMI/Vegetables/MapServer/0

SIMULATED RESIDUAL STRAW – Reduced Rainfall Scenarios
Simulated Residual Straw – Average Rainfall (1900 – 2009)
http://location.sa.gov.au/arcgis3/rest/services/AREMI/Simulated_Residual_Straw_Average_Rainfall/MapServer/0
Simulated Residual Straw – 5% Reduced Rainfall
http://location.sa.gov.au/arcgis3/rest/services/AREMI/Simulated_Residual_Straw_5pc_Reduced_Rainfall/MapServer
Simulated Residual Straw – 10% Reduced Rainfall
http://location.sa.gov.au/arcgis3/rest/services/AREMI/Simulated_Residual_Straw_10pc_Reduced_Rainfall/MapServer/0
Simulated Residual Straw – 20% Reduced Rainfall
http://location.sa.gov.au/arcgis3/rest/services/AREMI/Simulated_Residual_Straw_20pc_Reduced_Rainfall/MapServer/0

  • interested in removing the kml’s used previously

Defaulting to 3D Terrain again

We seem to be defaulting to 3D Terrain mode again, change this back to being 3D Smooth and figure out why it changed.

Full Screen Button is actually Full Window Button

The full screen button does not actually use the whole window for the map and then set the browser into full screen mode. It only sets the map to fill the whole browser window. If the browser window is taking up on a tiny part of the computer screen, this situation is not affected by selecting this option. Therefore this option should be 'Go to Full WIndow / Exit Full Window' rather than Full Screen / Exit Full Screen.

Source for the solar irradiance web services and data

The solar irradiance web services currently consumed into AREMI and the NEII Viewer are originating from Geoscience Australia. These include GHI mean, GHI minimum and DNI mean. The BoM is the custodian for solar irradiance data and it will be desirable for related web services, including future updates to the data, to come from the custodian, source agency. The web services currently used are created for ASEIS application back in 2013. GA will want to decommission ASEIS, along with the solar irradiance services (data behind which is not maintained in ASEIS context).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.