Giter VIP home page Giter VIP logo

deli's People

Contributors

completer avatar felixmasonjncc avatar mattdebont avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

uk-gov-mirror

deli's Issues

Scottish Lidar json script

  • Update to boto3
  • Use .aws credentials instead of password in script
  • Reference the geojson grids on the fileshare instead of locally
  • Change .las files to .laz
  • Update the metadata links

Cycle through overlapping products on the map

Particularly useful for time series like S2-ARD, for example sorting through scenes over time looking for different cloud-coverings. Use Leaflet's layerGroup.bringToFront() to bring the GeoJSON layer to the front (and simultaneously select the product).

Meaningful names for Sentinel scenes

To open this up to a wider user base that does not have the satellite orbits imprinted on their brains how about (something like):

scene: Hebrides    orbit: 23      capturedate: 9th May 2016

The first step is to make sure it is possible to name the scenes in a meaningful / non-confusing way. The scene footprints are here
https://github.com/jncc/dnode/tree/master/s2-ard/scenes , for example
https://github.com/jncc/dnode/blob/master/s2-ard/scenes/123.geojson.

Just need a list / spreadsheet of (orbit, row, name) initially.

Explanatory diagram

We could also have somewhere a look up diagram with the orbits, scenes and names eg: linked into the discovery level meta data for the whole Sentinel 2 ARD resource

We could have a bit of fun choosing the names for each scene position within each orbit and involve implementation group

And it would demystify the resource of new users

It would also help uses get familiar with the orbit and scene numbers

Filtering

We could potentially then offer a filter by the scene name with a nice list of these names to pick from. We haven't thought about how to implement filtering from managed / restricted lists yet. Could do this as a one-off hack, or a more general feature of the Deli.

Don't use CDNs to serve stylesheets

Both CDNs for sematic-ui and leaflet stylesheets set cookies, which we can't explain very well to users in our cookies page.

We could serve our own CSS by updating the webpack build process.

return type of req.header breaking build in server.ts

Suddenly as if by magic :(

This error occurs on build in eocoe and master following a branch switch and clean npm install in attempt to resolve issue.:

1] Project is running at http://localhost:8080/
[1] webpack output is served from /
[1] ts-loader: Using [email protected] and /home/felix/Development/deli/tsconfig.json
[0] app.server/server.ts(29,52): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'.
[0] Type 'undefined' is not assignable to type 'string'.
[0] npm
[0]
[0] ERR!
[0]
[0] code
[0] ELIFECYCLE
[0] npm
[0]

Hacky fix for the moment is to change settings.getRealWmsUrl from:
export function getRealWmsUrl(env, hostHeader: string, protocol: string)
to:
export function getRealWmsUrl(env, hostHeader: any, protocol: string)

Elasticbeanstalk rebuild action leads to an NGINX proxy error

If you modify the elasticbeanstalk environment in AWS that triggers an environment rebuild (i.e. modify environment variables) the service wont start. This is down to an issue with the nginx proxy.conf in the .ebextension folder, looks like it duplicates the config rather than overwrites it (error being 'duplicate nodejs upstream').

Fixed by going to the applications versions page for the environment and redeploying the current version of the code to the environment.

Run the Deli locally

The Deli / Lidar with the new catalogue API can be run locally, but it isn't obvious how.

  • update the Deli readme.md
  • integrate the feature/docker-container in jncc/catalog

Server crashes or won't start

(This is hard to test as there's a possible confounding issue that the EB environment doesn't restart after a manual change to its environment variables - which appears to be related to the custom nginx config. This is possibly due to a recent change in EB https://stackoverflow.com/a/38420816/40759 ...?)

  • edit the CATALOG_API host environment var to something nonexistent (to simulate transitory network failure)
  • the EB environment will not start successfully, even on a redeploy

502 Bad Gateway

from Nginx (the Node / Express server won't respond)

I suspect that the network requests in the nested promises at the start of in server.ts means that the server cannot respond to any requests, even a for something like a favicon, until two network database requests have successfully completed.

Needs further investigation @mattdebont could you take a look?

spike.ts breaks master

The code in /deli/app.server/handlers/products/spike.ts

Breaks everything:

[1] Project is running at http://localhost:8080/
[1] webpack output is served from /
[1] ts-loader: Using [email protected] and /home/felix/Development/deli/tsconfig.json
[0] app.server/handlers/products/spike.ts(2,5): error TS2451: Cannot redeclare block-scoped variable 'turf'.
[0] node_modules/@types/turf/index.d.ts(90,15): error TS2451: Cannot redeclare block-scoped variable 'turf'.
[0] node_modules/@types/turf/index.d.ts(90,21): error TS2503: Cannot find namespace 'turf'.
[0] node_modules/@types/turf/index.d.ts(99,16): error TS2451: Cannot redeclare block-scoped variable 'turf'.
[0] npm

IE11 scroll bug

Selecting a search with less than 50 results doesn't resize the page properly leaving you able to scroll past the new footer.

Optimise WMS layer requests

Don't request layers that are completely hidden. An easier less generic way to do this for S2-ARD would be to rely on the fact that all named scenes (orbit+row) will be exactly the same footprint .

Redesign server.ts / Catalog.ts interactions

The network requests in the nested promises at the start of in server.ts means that the server cannot respond to any requests, even a for something like a favicon, until two network database requests have successfully completed.

  • The web server shouldn't perform network requests before becoming responsive.
  • Network database requests can and do go down temporarily

There's no need at all to make network requests from web server until they are actually needed - i.e. until they are initiated by the web client.

The responsibility of the server.ts file is basically to define the web server, i.e., define the sorts of requests that it can handle. But currently it needs to have intimate knowledge of the new Catalog class, in that it needs to know to call the side-effecting getOGCServiceList() before it can call the other methods.

Suggest redesigning the Catalog class so that it alone is responsible for knowing about the database requests that it needs to make (and not relying on its caller knowing to call things in a certain order). The server.ts code should just make the two calls it needs to make to the Catalog (essentially GetCollections and GetProducts). The Catalog class should be responsible for the actual network requests. The networking code should be removed from the server.ts file.

Relatedly, it might help to remove the custom ngnix code which was needed from the custom WMS service due to possibly due to a recent change in how EB supports it (or not) https://stackoverflow.com/a/38420816/40759

Real website pages (cookies, privacy, etc.)

The Deli really needs to become a "real" website, and have cookies & privacy policy pages.

Alter the build process:

  • Build separate HTML pages
  • Create the help/cookies HTML pages

The new pages can be at:

/help/cookies
/help/privacy

It's fine to have separate markdown content for different tenants. There's no point trying to share the content; it's too different.

Add max zoom stop on the map

Need to stop the map zooming in past a particular point as it just stops working when zooming in too far right now

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.