Comments (1)
This comment, which is mostly copied from a Simplenote note, documents a plan to increase the flexibility of the viewer archive calendar. The comment uses the following terminology:
- span - a sequence of consecutive months
- period - a span with a name
- archive span - span from the first to the last month for which there are data in an archive
- archive month - month within the span of an archive
- nonempty month - archive month for which there are data
- empty month - archive month for which there are no data
The current viewer archive calendar is not flexible enough for some kinds of archives. The current calendar shows month calendars for the span of an archive. This is fine for archives for which there are few or no empty months. However, it does not work well for archives for which there are long spans of empty months, including for example an archive that includes multiple years of migration data. For such an archive it would be better to display multiple spans in the calendar, omitting long spans of empty months.
To make archive calendars more flexible, I plan the following:
-
Introduce an
Archive Calendar
preset type. AnArchive Calendar
preset specifies periods to be displayed in an archive calendar. The months may be for particular years or not. For example, the YAML for a preset that defines spring and fall migration periods for any year might look like:- name: Spring startMonth: April endMonth: June - name: Fall startMonth: August endMonth: October
-
The user can select an
Archive Calendar
preset for a calendar, or no preset.- If an
Archive Calendar
preset is selected, the archive calendar will by default include all of the periods defined by the preset that intersect the set of nonempty archive months. Note that all months of a period are included, even if some of them are empty: the entire period is included if any of its months is nonempty. - If no
Archive Calendar
preset is selected, the archive calendar will by default include all nonempty archive months, grouped automatically into periods. The periods may include empty months if the grouping algorithm thinks that's a good idea, for example if there is a single empty month that is immediately proceeded and followed by nonempty months. The periods will be named automatically, for example "August-October 2014".
- If an
-
A combo box in the UI allows the user to query the calendar by period name, restricting the periods displayed. For example, for a calendar containing "Fall 2013", "Spring 2014", and "Fall 2014" periods, a query of "Fall" will display only the "Fall 2013" and "Fall 2014" periods. A query of "2014", on the other hand, will display the "Spring 2014" and "Fall 2014" periods. As another example, if no
Calendar Periods
preset is selected and the resulting automatically-generated calendar periods include one named "August-October 2014" as above, then a query of "Aug" will display that period, along with any others that include the string "Aug" in their names. A query of "Aug 2014" will display only that period.A simple query like those above matches a period name if and only if it matches any part of the name, ignoring case. So, for example, "Aug", "AUG", "aug", "gust", "g", "2014", and "0" all match "August-October 2014".
We should define a little query language that can be used not only for calendar periods, but also stations, detectors, clip classes, and perhaps other entities in the future. At the least, the language should probably support operations like negation, disjunction, and conjunction. For more sophisticated users it might also support regular expressions. This would probably tie us to the regular expression facility of a particular programming language (e.g. Python or JavaScript), but I think that would be okay, and that it would even be okay for it to be different for a standalone viewer implemented in Python and a browser-based viewer implemented in JavaScript. It's an advanced feature.
from vesper.
Related Issues (20)
- Error indicates channel number is at fault when /admin settings more accurate HOT 2
- BirdVox suggests birds from the wrong side of the ocean HOT 2
- Document CLI commands HOT 2
- Allow different stations to use the same recorders HOT 4
- Feature: Allow comment fields on calls HOT 2
- Setting presets not always successful HOT 12
- Unable to run birdvox HOT 7
- Unrecognized classifier HOT 3
- Recordings cannot have capitalized file-endings HOT 2
- European classifiers HOT 2
- Migration froze HOT 4
- Tracking analysis of recordings HOT 2
- Some automatically-created annotations do not include creating job or creating processor. HOT 2
- Add command to repair archives affected by bug of issue #211.
- Allow multiple clips with same detector, recording channel, and start time.
- Shortcut for switching classifiers HOT 4
- Audio import shows wrong date HOT 4
- Review and improve recording file name parsing. HOT 2
- Vesper 0.4.13 installation fails on Apple Silicon Macs. HOT 1
- Add constant value clip measurement.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vesper.