Lambda function that synchronize EPA AirWatch Air Quality Data to ArcGIS.
Site: https://www.arcgis.com/home/item.html?id=b9de53fbffe34feda37e04217541bee3
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
In every xx minutes, this lambda function will call an API provided by EPA. This API provides the details of all environment monitoring sites with the latest health advice. This lambda function will dynamically add and remove the monitoring sites, the features of arcGIS layer.
- The app can be deploy as standalone NodeJS web app or as a AWS lambda function. To deploy to AWS Lambda, use Serverless
- All API called to EPA required us to provide API key, therefore we need to firstly register and subscribe the product via https://portal.api.epa.vic.gov.au/.
npm install
For this code to work, you need to
add and
register an app in ArcGIS Online,
add the correct redirect URI (e.g. http://localhost:8080
), and add the client ID and secret to /routes/routes.js.
- How to add an app in ArcGIS Online
- How to register an app in ArcGIS Online
- Make sure to set the correct redirect URI (e.g.
http://localhost:8080
)
Finally, update /routes/routes.js to contain your client ID and secret (and portal URL if not ArcGIS Online):
const client_id = 'xx';
const client_secret = 'xx';
Update the feature server URL
const featureServerUrl = 'xx';
As mention above, all API called to EPA required us to provide API key, therefore we need to firstly register and subscribe to the product via https://portal.api.epa.vic.gov.au/.
Then, in /routes/routes.js assign that API key to the variable
const apiKey = 'xx';
sls deploy
sls offline start
sls invoke -f app
Comment out the Serverless handle and uncomment the local server part in /index.js
// module.exports.handler = serverless(app);
// USE THIS FOR LOCAL SERVER
var server = app.listen(3000, function() {
console.log('app running on port.', server.address().port);
});
- Nasrul Muhaimin b Mohd Zain - Initial work
This project is licensed under the MIT License - see the LICENSE.md file for details