Field Science issueshttps://code.cs.earlham.edu/groups/field-science/-/issues2019-12-02T08:58:31-05:00https://code.cs.earlham.edu/field-science/images/-/issues/5Build and document the data dictionary2019-12-02T08:58:31-05:00Craig EarleyBuild and document the data dictionaryBuild the data dictionary
- RPA Images
- Field Day - Postgres and images
- Soil tests (Iceland and Nicaragua)
- Other
This issue isn't strictly image processing, but there's not currently a place for "all the questions concerning grou...Build the data dictionary
- RPA Images
- Field Day - Postgres and images
- Soil tests (Iceland and Nicaragua)
- Other
This issue isn't strictly image processing, but there's not currently a place for "all the questions concerning groups of software in the Iceland program" so I'm leaving it here.
EDIT: formattinghttps://code.cs.earlham.edu/field-science/FieldDay/-/issues/20Clean the tables separately2019-06-17T13:21:24-04:00Craig EarleyClean the tables separatelyChanging it such as having the option to clean the readings table or the streaming table, rather than everything.Changing it such as having the option to clean the readings table or the streaming table, rather than everything.Craig EarleyCraig Earleyhttps://code.cs.earlham.edu/field-science/images/-/issues/3Clean up and add ODM HowTo notes from Drive to the drone README2020-02-10T14:37:15-05:00Craig EarleyClean up and add ODM HowTo notes from Drive to the drone READMEThe "ODM and WebODM HowTo" notes in Drive should be added here so people can pick up and run with this code here.The "ODM and WebODM HowTo" notes in Drive should be added here so people can pick up and run with this code here.Craig EarleyCraig Earleyhttps://code.cs.earlham.edu/field-science/images/-/issues/8Combine scripts into one or more complete workflows2021-07-05T11:28:11-04:00Craig EarleyCombine scripts into one or more complete workflowsWe have a lot of individual scripts but no structure or glue to bring them together into a complete workflow, for either 2D, 3D, or any other assembly. Choose those and begin building them.
This should be broken into specific issues and...We have a lot of individual scripts but no structure or glue to bring them together into a complete workflow, for either 2D, 3D, or any other assembly. Choose those and begin building them.
This should be broken into specific issues and then closed.https://code.cs.earlham.edu/field-science/FieldDay/-/issues/37Consolidate all documentation for how to use Field Day2020-09-30T09:34:34-04:00Craig EarleyConsolidate all documentation for how to use Field DayWe have several documents to the effect of "how to use Field Day". That can get confusing. We should centralize those here - the README for general users, and maybe a CONTRIBUTING page for developer notes that are appropriate for public ...We have several documents to the effect of "how to use Field Day". That can get confusing. We should centralize those here - the README for general users, and maybe a CONTRIBUTING page for developer notes that are appropriate for public visibility - to simplify our lives.https://code.cs.earlham.edu/field-science/datavis/-/issues/5Consolidate this project and the current production version of the datavis2020-01-16T11:27:16-05:00Craig EarleyConsolidate this project and the current production version of the dataviseomeomhttps://code.cs.earlham.edu/field-science/FieldDay/-/issues/46Crash on tapping the bench sample picture button2021-03-10T10:27:00-05:00Craig EarleyCrash on tapping the bench sample picture buttonText of logcat message will be in the comments.Text of logcat message will be in the comments.https://code.cs.earlham.edu/field-science/datavis/-/issues/15Create an icon2020-01-25T11:11:22-05:00Craig EarleyCreate an iconThis isn't something that we should spend a huge amount of time on, since we have coding to do. However, having a recognizable, catchy icon for the vis tool would be useful for the android front-end, as well as the website version, and t...This isn't something that we should spend a huge amount of time on, since we have coding to do. However, having a recognizable, catchy icon for the vis tool would be useful for the android front-end, as well as the website version, and the repo on gitlab.Craig EarleyCraig Earleyhttps://code.cs.earlham.edu/field-science/datavis/-/issues/14Create a stable mobile front-end and bundle with current project2020-05-01T19:27:44-04:00Craig EarleyCreate a stable mobile front-end and bundle with current projectCraig EarleyCraig Earleyhttps://code.cs.earlham.edu/field-science/FieldDay/-/issues/42Database upload should check for sample spot images and upload those too2020-02-11T09:12:51-05:00Craig EarleyDatabase upload should check for sample spot images and upload those tooDatabase upload should check for sample spot images and upload those too, possibly via Postgres to an external file?Database upload should check for sample spot images and upload those too, possibly via Postgres to an external file?https://code.cs.earlham.edu/field-science/FieldDay/-/issues/40Develop process for retrieving images from device2020-02-08T09:57:58-05:00Craig EarleyDevelop process for retrieving images from deviceWe should have a process for retrieving sample spot images in Field Day at the same time as a user uploads data or clears local storage. This includes documentation.We should have a process for retrieving sample spot images in Field Day at the same time as a user uploads data or clears local storage. This includes documentation.https://code.cs.earlham.edu/field-science/FieldDay/-/issues/33Device rotation while streaming disrupts current data stream2021-02-13T11:16:03-05:00Craig EarleyDevice rotation while streaming disrupts current data streamRotation of the Android device during a stream is buggy.
To replicate this, open Field Day, configure your database, go to "Builtin Sensors", and observe the following:
* User action: Choose site and sector > choose a 1 sec interval > ...Rotation of the Android device during a stream is buggy.
To replicate this, open Field Day, configure your database, go to "Builtin Sensors", and observe the following:
* User action: Choose site and sector > choose a 1 sec interval > touch "Stream" > wait a few seconds > rotate
* Result: stream appears to stop: the button no longer blinks, and after pressing the button again it uses the default 3 sec interval rather than the (visually highlighted) 1 sec interval; control of streaming also becomes confusing, as the streaming entries counter on the Database Actions screen keeps increasing
* Desired result: after rotation, stream continues uninterrupted at the 1 sec interval, button blinks to reflect this, as if we hadn't rotated the screen at all
(It's true that other activities and fragments without so much dynamic content seem to handle rotation fine, but I'd still characterize this as a pretty significant bug - a real "other than that, Mrs. Lincoln..." situation.)
In the short term, we're fine to tell people to do a rotation lock on their device, which I'm guessing has been our pattern. For the long term, let's fix this.https://code.cs.earlham.edu/field-science/FieldDay/-/issues/44Discussion and notes: user interface and feature ideas2021-02-08T11:05:33-05:00Craig EarleyDiscussion and notes: user interface and feature ideasWe need to sort these. Many of these bullet points could become issues, but I am mainly using this is a heap where I can dump the information.
Some of our ideas. Some have issues associated with them already.
1. Move the sampling stuff...We need to sort these. Many of these bullet points could become issues, but I am mainly using this is a heap where I can dump the information.
Some of our ideas. Some have issues associated with them already.
1. Move the sampling stuff to the front screen
2. Scrolling
3. Brighter buttons, more muted backgrounds (including gray rather than bright colors)
4. Bigger buttons
5. Less on any one screen? So split DB actions into multiple screens, for example
6. Linear user flow: database -> platform -> sample (or platform -> sample -> DB)
7. Gestures?
8. Rotation #33
Other stuff
dark mode?
```
setContentView(R.layout.activity_database_actions);
View someView = findViewById(R.id.databaseStatus);
// Find the root view
View root = someView.getRootView();
// Set the color
root.setBackground(getDrawable(R.drawable.background_dark));
```
Navigation (unordered)
* Get a toolbar that can take you to the things you rarely need:
* Settings
* About
* Sensors are the big-ticket items, they get most of the real estate under that
* Database setup and lab notebook are beneath them
* Other
* NavigationUI
* ActionBar
more ideas
* automated unit tests?
* revise data model/re-architect # some notes: two columns: headstream, varchar(5) - sampleunitid, integer (taking the place of spot or stream id)
* license
* take picture of spot, where a spot’s image includes the 3 flags where we’re digging - picture may also include surrounding area, want to correlate images to the data from microbial sampling
* bad idea to have CREATE statements in code a la ReadingsDatabase?
* 2. Fieldday_Streaming_GIS table, with geopoint, is not used
* Postgres fieldday_streaming_gis table
* We should add the geopoint to the fieldday_streaming table
* compute geopoint based on lat and long columns
* mutually_exclusive_group?
* document our testing
* Test elevation streaming
* Leave, walk downstairs, go to the rock, come back
* Or, leave, go to the first crack in the sidewalk at the 4-way stop at public safety where there will be the top of a 2x2 with a nail
* quality control
* rotations
* no sector is displayed but the device will still stream when the button is pressed
* maybe a display problem not a data problem? streaming data appears to be collected
* also the stream button doesn’t blink
* but we get a weird runaway streaming problem where I can’t seem to stop the streaming after a rotation
* Field Day crashes on erasing local database if you have already done so
* Can’t select a sector with the default site, have to change it to get the sector dropdown active
* Number of values each sensor returns
* some return 1,2,3, etc. values
* we don’t do a good job of detecting the number of values in-place
* UX questions
* What do people do? Is there an order?
* Display aggregates - what kinds? count of reads/streams? mean/median/mode/range? lat/long/times start/stop? can there be a map?
* Global settings, or settings changed rarely (e.g. databases)?
* What devices? Is this mainly a tablet app, phone app, or both? (I think both)
* Documentation: "As previously mentioned, the map() function uses integer math. So fractions might get suppressed due to this. For example, fractions like 3/2, 4/3, 5/4 will all be returned as 1 from the map() function, despite their different actual values. So if your project requires precise calculations (e.g. voltage accurate to 3 decimal places), please consider avoiding map() and implementing the calculations manually in your code yourself."
* [Storage Access Framework](https://commonsware.com/blog/2019/06/07/death-external-storage-end-saga.html)https://code.cs.earlham.edu/field-science/FieldDay/-/issues/6Display the platform battery level on the sample/stream screen2019-08-12T16:02:26-04:00Craig EarleyDisplay the platform battery level on the sample/stream screenWe can read the battery voltage (a good proxy for charge level) from the Feathers and other Arduino micro-controllers. Having that displayed on the sample/stream page would make it much easier for users to know when they have to charge/c...We can read the battery voltage (a good proxy for charge level) from the Feathers and other Arduino micro-controllers. Having that displayed on the sample/stream page would make it much easier for users to know when they have to charge/change their batteries.https://code.cs.earlham.edu/field-science/FieldDay/-/issues/23Display the platform software version on the sample/stream screen2019-06-16T13:30:24-04:00Craig EarleyDisplay the platform software version on the sample/stream screen Display the platform software version on the sample/stream screen. Requires simple changes on the platform Arduino code as well. Display the platform software version on the sample/stream screen. Requires simple changes on the platform Arduino code as well. https://code.cs.earlham.edu/field-science/images/-/issues/7Document our pattern for retrieving photos from drones2020-02-01T10:24:16-05:00Craig EarleyDocument our pattern for retrieving photos from dronesSome notes from a meeting today:
- at end of a flight, we swap drone batteries, swap SD cards every couple of flights (32GB, every 4 or 5 flights)
- photos go into processed and unprocessed files
- then we run ODM
We should exp...Some notes from a meeting today:
- at end of a flight, we swap drone batteries, swap SD cards every couple of flights (32GB, every 4 or 5 flights)
- photos go into processed and unprocessed files
- then we run ODM
We should expand this in a document somewhere. It's a good opportunity for someone to learn about this part of the workflow, hence "good first issue".Craig EarleyCraig Earleyhttps://code.cs.earlham.edu/field-science/FieldDay/-/issues/29Drive API is deprecated by Google and will stop working in December2019-08-23T10:03:20-04:00Craig EarleyDrive API is deprecated by Google and will stop working in DecemberLast year Google deprecated the Drive API we use.
Unlike some deprecations, which scold you when you run "Inspect Code" but continue to work, Google is shutting this down on their side.
[Timeline from the Google Developers website](htt...Last year Google deprecated the Drive API we use.
Unlike some deprecations, which scold you when you run "Inspect Code" but continue to work, Google is shutting this down on their side.
[Timeline from the Google Developers website](https://developers.google.com/drive/android/deprecation):
```
* December 6, 2018: Deprecation is publicly announced. Existing clients will be able to access the API normally, but should immediately commence with migration efforts. New clients must not use the API.
* October 21, 2019: The Drive Android API is removed from the Google Play Services SDK distribution. Apps will be unable to build until removing the Drive Android API dependency, but existing builds will be unaffected. The Drive Android API public documentation will no longer be available.
* December 6, 2019: The Drive Android API is shut down and all connection attempts will be refused. Clients must migrate by this date.
```
There *are* ways to adjust the app to continue using Drive, but we must change it or we won't be able to use it at all in a few months.Craig EarleyCraig Earleyhttps://code.cs.earlham.edu/field-science/FieldDay/-/issues/16Field Day is labeled a "high battery usage" app on some devices2019-08-01T14:22:30-04:00Craig EarleyField Day is labeled a "high battery usage" app on some devicesThe Asus tablet and Craig's Samsung phone (at least those two devices; check on others as part of fixing this issue) report Field Day with a tag of "Battery usage: high" in the "Location" menu. Investigate energy usage and fix.
Initia...The Asus tablet and Craig's Samsung phone (at least those two devices; check on others as part of fixing this issue) report Field Day with a tag of "Battery usage: high" in the "Location" menu. Investigate energy usage and fix.
Initial issue description:
> The Asus skin has some power management built-in, when field day has been running for a while it is labeled as a "Battery-draining app". Figure-out why and fix it. Craig EarleyCraig Earleyhttps://code.cs.earlham.edu/field-science/datavis/-/issues/12fix legend for streaming graph view2020-01-16T11:11:01-05:00Craig Earleyfix legend for streaming graph view![cap1](/uploads/5c76467c3f7094da2bc33fe2090d1840/cap1.PNG)
Currently uses callback to cross out sets which arent displayed, would be better as buttons or checks.![cap1](/uploads/5c76467c3f7094da2bc33fe2090d1840/cap1.PNG)
Currently uses callback to cross out sets which arent displayed, would be better as buttons or checks.https://code.cs.earlham.edu/field-science/FieldDay/-/issues/45Fix the way we do uploads2021-02-08T11:10:28-05:00Craig EarleyFix the way we do uploadsGathering field data works, but we get a lot of buggy behavior around uploads.
After an upload of, say, X streaming and Y reading rows, we still see X and Y as the local database status. Our understanding should be that, once we’ve uplo...Gathering field data works, but we get a lot of buggy behavior around uploads.
After an upload of, say, X streaming and Y reading rows, we still see X and Y as the local database status. Our understanding should be that, once we’ve uploaded them to the central database, those rows are no longer "local" to the device only.
There are a few possible solutions, and we should discuss them:
1. Completely re-do database setup after each upload - we might then relabel “Upload” as “Upload and sync”. I mildly favor this approach over the others.
2. Auto-sync everything whenever we have Internet.
2. [I think this approach is rejected.] Re-sync the uploads database only. This presents challenges for consistency: on initial setup, we have a complete clone of the subset of the database that’s relevant to our chosen trip. If we merely bring back the timestamp, our uploads would be consistent but nothing else.