Coder Social home page Coder Social logo

birdviz's Introduction

BirdViz

Code for NCRN bird visualizer

birdviz's People

Contributors

aaronweed avatar

Stargazers

John Paul Schmit avatar

Watchers

James Cloos avatar John Paul Schmit avatar Adam Kozlowski avatar  avatar  avatar  avatar Matt Marshall avatar

birdviz's Issues

Birds of Conservation Concern Filter

Consider creating a filter that would highlight any bird considered a species of conservation concern by Partners in Flight. This would include the 2 categories: "watchlist species" and "stewardship species"

Other filters to consider creating would be native vs. non-native.
Migratory vs. resident
or any of the bird guild designations that come from the Bird Community Index score (ground nester, insectivore, etc.)

Handling NAs in ggvis graphs

Missing values, either y or x values caused by no survey or species not observed in a survey, are causing problems with ggvis plotting correctly. Missing y-values cause ggvis to plot NA above max value and missing x-values (usually year) removes the year from the axis.

Transition to ggplot may solve these issues.

Fix axis labels on graphs

On graphs the years and number of plots now run together due to there being a lot of years. Fix this by putting number of plots underneath.

Inconsistent bird lists on map

When you chose "Number of Species" on the map, the point color and the hover text respect your choice in the "Distance from Observer" drop down. However the species list generated when you click a point does not. The band parameter is not being passed by getChecklist to getBirds.

Remove Latin Names

For the visualizer it is probably best to remove Latin Names as an option, but print them next to the common name when there is space.

fix the linkage between table and maps

The idea is that when you click a row on the table, the data can been seen on the map. Once all the controls have been altered, this will need to be reconnected to transfer all the filtering selections from the table tab to the map tab.

Change upper table for parks on tables tab

When you do a table for a single park it would be nice to have the upper table be just that park with each column a different year. Need to check that the table does not get too wide.

Map Legend Disappears

The map legend will disappear when you select "Any Distance Band" from the dropdown in the map controls.

Update control order

On the map side bar - change control order to:

Species
Common Names
Year
Distance
Visit

Turn some controls into modules

Currently the map, table, plots and to some extent species lists all share some similar controls. It might be better if these were turned into "shiny modules" so the code only needs to be maintained in one place.

Possible controls are

  • Parks
  • Species
  • Bands
  • Visits
  • Years

Add sampling cycles

Once NCNR/NCRNbirds#111 is done and there is cycle data available, then the year drop-down should be determined by the cycles, which in the case of ERMN is every 2 years rather than every year.

X-axis labels in graphs (## points) needs to be flexible to years sampled per park

When you graph data, parks that don't have data for a species in each year (2006:2017) causes the app to crash in the indiv species graph (DetectsPlotData) .

In the species richness graphs, when there were no obs in a park, RichnessPlotData and then ggviss plots a 0 value instead of NA on the graph

in plots code, server.R:

labels=paste(paste(c(2006:2017), paste0("(",sapply(X=2006:2017,Y=PlotParkUse(),FUN=function(X,Y){nrow(getPoints(Y,years=X))}),")"))))

JP suggests to pull the actual years from getVisits()

Distance bands in Map

Distance from Observer. I see how this is dynamic now pulling from bands.csv but didn’t it used to have “any distance” as an option in the past? “Any distance” or “unlimited radius” seems more appropriate than the somewhat arbitrary 200 MaxDistance in the csv.

remove validate(need())

There are still some internal reactive dependencies being checked via the old validate (need() ) interface. This should be updated to req().

Default to species richness as first choice

The maps, and tables and graphs should have species richness as the default choice, as that always has data, whereas the species richness will always have good data and be the more general choice. Change the controls to make richness be the default choice.

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.