Code Monkey home page Code Monkey logo

geoanalytics's People

Contributors

cbcunc avatar jeffersonheard avatar selimnairb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

jacko978

geoanalytics's Issues

static data : declutter

Currently JS libraries are accessed via a mishmash of static/ and CDN hosted libraries, and there's no {% include %} snippets for common sets of JS libraries. Standardize better across the whole system which libraries are being used and provide template fragments to help users include them

add triples for semantic links between Pages

Users should be able to direct semantic linkages between different Page flavors in the system.

This would take the form of

DataResource (specified as slug or URL) -> verb -> OtherPage (specified as slug or URL)

And "verb" could be defined elsewhere. The point of such a system is to be able to generate an RDF that explains the semantic relations between all the data resources in the system and deploy a system like Pyke (or Prolog) that allows people to make inferences or write robots that generally make sense of the network of data.

We could write much more thorough search engines for geographic data using this. Imagine something like this:

all data resources containing ocean temperature on 12/31/2012 which derive from http://ga.renci.org/catalog/ncfs/ocean-circulation-model

ga_resources : Use git more directly

The media/uploads directory should use git to track changes when someone uploads a new version of a dataset or the system cache updates the dataset from its source.

Large resources gum up the Admin site or don't get uploaded

For resources where the data file is listed as a resource_url, there is a serious performance problem that sometimes results in having to load the resource from a shell. If the resource is so large that it takes longer than the request timeout, then it will simply die.

The solution should be to fork off the compute_fields call as a Celery task or spooled task in uWSGI.

Carto tutorial

We need a tutorial for how to use Carto stylesheets with Geoanalytics. All stylesheets are done in Carto, but someone new to GA might not already know what carto is. Mapbox has docs, but we should provide detail

Tutorial: Styling maps for Geoanalytics using TileMill

Adapt the TileMill documentation to creating a map style using map data from Geoanalytics. This involves pointing TileMill at the data source on GA and extracting a subset, then using TileMill's Carto language to create styles

ga_interactive : This effectively gives "root" to the user. Is there any way around it?

ga_interactive gives the user an interactive python shell with full access to the database and underlying data and machine regardless of user permissions. Right now permissions to access it should be very very limited for this reason.

The question is, is there a way around this? I can think of several things offhand that might help:

  • Sandboxing : create a chrooted temporary session so that the user can only write files / etc in a controlled way, setting sensible ulimit, etc to prevent them from taking up too many resources on the host machine.
  • Don't import the django environment directly, but create a library that hands them what they need in a more controlled fashion.
  • Force them to use webservices for their analysis. Has the advantage of portability with the disadvantage of being painfully slow for Big Data
  • Continue to limit ga_interactive to trusted users and warn of the dangers

ga_resources : Application

Add an Application data type to host a simple application on Geoanalytics

  • Assemble a number of layers in order
  • Assemble a set of Javascripts
  • Allow optional Javascript to be uploaded and hosted.

ga_resources : Make the data summary an AJAX call or series of AJAX calls

Right now, the data summary in the data page takes forever for large datasets. This is because the DataFrame object is so large.

Possible solutions:

  1. cache these rendered templates
  2. use an AJAX call to populate the summary with the results of as_dataframe, rather than try to do it as the page is rendering.

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.