GithubHelp home page GithubHelp logo

majdal / modex Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 5.0 34.96 MB

A web game that makes it easy to explore scientific models

License: Other

JavaScript 91.61% CSS 2.80% Python 5.43% Shell 0.03% R 0.13%

modex's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

modex's Issues

Unit Tests

This task is huge and will be split into subtasks as components grow

Render Vector GIS data to Canvas

We are sending GeoJSON over a websocket, so we need to research how people are planning to actually display GeoJSON and then implement it, probably in Crafty.

Big question: how do we reduce the amount of data sent while retaining visual accuracy? https://www.mapbox.com/blog/mapping-millions-of-dots/ has some pointers for us here.

The output of this task will be a bit of HTML and Javascript which can download some GeoJSON (from a static file for testing, but from twisted in general) and render it.

We need to support:

  • Points
  • Lines
  • Polygons

Frontend: Make the graph and map divs play nice

The d3 chart currently floats on top of the openlayers map. This is ugly and annoying. They should sit side by side, or there should be a button that uses jquery to hide and show the chart (and makes the map expand and contract to as much space as it has available)

Get Autobahn passing arbitrary events

Play with autobahn until it goes.

Tnings to try:

  • Can we get websockets working under twisted without it? (test: open up the chrome inspector and run the websocket sample code at MDN)
  • Maybe Autobahn-twisted is fine but Maybe it's just the frontend, Autobahn.js, that's being glitchy.

As we do this, DOCUMENT the process at APIs

Get GitHub Collaboration up

At an in-person meeting with everyone, we need to

  1. make sure everyone is comfortable with pushing and pulling to this repo: everyone must make one change (this can be merged with 3.1)
  2. have everyone Watch everyone else' accounts and repos
  3. make sure
    • verify this, by making a commit_test folder in a corner of modex, having someone make a change, and seeing if everyone else gets it; rotate who makes the change until you're sure that github is sending emails to everyone and they're getting there.
  4. (optionally) follow your github RSS feed (for those who already use RSS)
  5. Get qgis installed on everyone's laptops
  6. Get excel installed on everyone's laptops

README: NICK

I apologize for the spam, and I'll delete this right after. I tried to send you an email at your GitHub email but I remember that you said you were having problems.

Contents of my initial email:
"I put the related map files in a directory called ~/Projects/map. However, today I tried accessing the files and the map directory still exists (where I copied SIG) but there's nothing inside.

I might have mistakenly deleted it or something, but I honestly have no idea where the files went.

Would it be too much trouble for you resend them to me via email?

Sorry!"

Since I realize email wouldn't work, would a dropbox folder be possible, or even using something like truecrypt and uploading an encrypted zip file and you sending me the key some other way?

Once again I'm sorry for the inconvenience!

Mock Data for Visualization

We're having trouble deciding amongst ourselves what we are trying to show to people. To move the project out of this rut, I propose we invent some layers of data to practice visualizing. I'm imagining a bitmap of soil types, drawn in mspaint, a list of farms along with their characteristics (wealth, pesticide policy...?) written up in Excel, a bitmap of habitat ranges for each of several species (butterflies, coyotes, ....? what lives in southern Ontario anyway?) also drawn in paint, and a set of shapefiles giving road networks, farm boundaries, maybe distances to abbatoirs, processing plants, cities capes, abattoirs? I guess our first step will be to rough in what we thint
the important datasets are, before we try to create them.

@tcstewar, @bruzen, @n7wilson and @vchynarov, do you have time this weekend? I am done exams Saturday 3pm, so I am going to be working on this then,so at our work session on on Monday we can give Mark and @hala87 tangible requirements to apply their info design skills to. Kirsten and Nathan have been thinking the most about this, so I will be reams more effective with at least you two there to bounce ideas.

Design Docs

We need attractive design docs to keep us on track.
This has several subtasks like thinking about gameplay, thinking about the multitude of useful visualizations available...

Render Raster GIS Data to Canvas

Same as #5, we need to be able to render raster images. GeoJSON is only for vector data, but we must be able to overlay simple. This includes both basemaps (like http://www.openlayers.org/) and simulation data that comes in rasters (like land use models, which aren't all that useful unless they can change, which is next to impossible to do sensibly in polygon-world, but dead easy to do as cellular automata)

Get rid of source/models.

It's an messy submodule dependency that we don't really need for the current modex project.

None of the code is being used. Why not create a separate garlic-models repo that hosts the lightbulb model and the actual farm model?

That way we can do something like:

from waterloosig.models.import Farmsim
import Simulation

params = {}
farmsim = Simulation(Farmsim)
farmsim.params = {}
farmsim.run(host=127.0.0.1, port=8000) # sends to Twisted or whatever.

Map Projection

We are currently rendering to canvas by simply subtracting a -80,43 from the lat/lon coords.
One of the major purposes of a GIS is to perform projections, where the earth's round-but-not-quite coordinates are flattened to cartesian (like a HTML5 canvas). GDAL can do this for us, we need to dig into the API and research how to use it properly.

Find Datasets

  • Southern Ontario Farmland GIS ((found, but the dataset is from 1983))
    • Soil Cover ---- as a proxy for nutrient content, etc
    • Abattoir Locations
    • [ ]
    • Watersheds
    • [ ]
  • Southern Ontario Demographics
  • Southern Ontario Economic Data

Generate Maps Pseudo random ly

It is extremely important for us to be accessible. The curious should be able to simply git clone and have a working tool that does sintering scuppernong.

Since we can't legally post much of our reference datasets, we should randomly generate smaller sets and post those in our repo under "demos/"

Subtasks:

  • soil raster
  • pollution raster
  • land use vector (corn/wheat/urban/pasture etc)
  • economic parameters per-agent
  • etc...?

As a subtask, someone should investigate the legality of extracting some distributional information from our private government/corporate datasets and using those distributions to make the fake data.

Add a license!

This is somewhat complicated. GarlicSIM is published under LGPL2.1, which (if i understand correctly) allows us to use license our library under any license we wish, but not modify GarlicSIM.

Make OpenLayers display arbitary vector data

I've managed to get OpenLayers to load countries.geojson, which wasn't that surprising since that I stole off of their demos. On the other hand meatplants.geojson, which is a dataset more interesting to us, is being finicky. It's downloading but not displaying. No exceptions, though. I assume something is up with the geoprojection.

What did you do to get the farm polygons to show up? Can you do it again? The meatplant dataset is open data, so it is in the repo now ([[assets/maps/meatplants.geojson]] and sourcefile(s) assets/maps/original/meatplants.zip if the geojson version isn't good enough).

Create Good Quick Framing Docs

We badly need to start building pages (on the wiki here, for now?) that explain all the aspects of this project to orient the curious and new group members.

They should be about under 10 minutes to digest, each of them.

PR

Similar to design docs, we need someone to take on public relations. SocialInnovationSimulation.com is a good start: it needs to be revived and promoted to build project momentum.

Make Agent Model

  • Farmers
  • Urban Folk

And attendant upon these(?)

  • Economic model

Research Visualizations

We need to research, organize, perhaps invent compelling visualizations for the sorts of data we have to deal with.

  • Time Series signals
  • Events (like time series, but much reduced in content usually with an increase in meaning)
  • Salience plots ((no one else seems to be using this term, so it might the the wrong one, but by this we mean the sort of heatmaps of uncertainty, quantifying the fog of highly dimensional data))

The output of this task would be a series of tutorials (written in markdown is fine) that could get anyone with basic numeracy up to speed on the sorts of ways we can look at the world using pictures.

Talking to [http://pages.cpsc.ucalgary.ca/~sheelagh/wiki/pmwiki.php](Sheelagh Carpendale) would be informative here.

Extend CCMsuite to handle spatial data

@tcstewar has very explicitly said that his data logging tool ("ccmsuite": https://github.com/tcstewar/ccmsuite) has served him well in his 10 years logging two kinds of data: "continuous" (ie floating point) time serieses, single-summary statistics, and discrete events.

We are very interested in aping [http://corridordesign.org/](these folks). For example, we want to see deer corridors, or butterfly corridors, or pine tree corridors all arise naturally out of our model, and we want to be able to see their development over time. Yes, we could tree this all as a large number (per-pixel) of individual time series, but it seems like there is some spatially-explicit code framework out to be written.

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.