GithubHelp home page GithubHelp logo

nrcan / gsc-field-application Goto Github PK

View Code? Open in Web Editor NEW
8.0 6.0 1.0 127.91 MB

Geological Survey Canada on site data collection for geologists.

License: Other

C# 99.96% HTML 0.02% SCSS 0.02%
data collection application windows-10 sqlite visual-studio gis gps tpk canada geology geopackage sample

gsc-field-application's Introduction

Geological Survey Canada Field Application

(Français)

This project is a Geological Survey Canada on-site data collection application for geologists. The application automatically stores locational data for each location created and allows data entry of complex geological information.

The application mainly presents a GIS map page with access to specialized forms. Map layers and forms data are presented as notebooks that can be transfered between application/handhelds and save with some metadata like current working project name, geologist and activity name.

Target users are geologist that would like an easy to use, validation, standardize and consult field geological information for later office and analysis use. This application is intented for regional geology for data gathering or cartography.

The GSC Field Application supports bedrock geology, drill holes and surficial geology.

Requirements

Windows 10 Minimum build 19041, version 2004.

Installation

The application is side-loaded onto any Windows 10 PC that meets the build requirement. A developer configuration is needed on W10 in order to side-load this application.

Latest Version

Please download the latest version (2.4) from the Release page.

Wiki

The Github Wiki has helpful documentation and videos for your use including a video highlighting the top ten features in the GSC Field App.

Data Format

The current application uses a Geopackage data format to store all information gathered by users. In addition, the data format can be added to it and used in any GIS software like QGIS, ESRI ArcGIS or ESRI Desktop Pro.

Development environment

Universal Windows Platform (UWP), Visual studio 2016-2024

Contacts

Gabriel Huot-Vézina: [email protected]

Étienne Girard: [email protected]

How to Contribute

See CONTRIBUTING.md

License

Unless otherwise noted, the source code of this project is covered under Crown Copyright, Government of Canada, and is distributed under the MIT Licence

The Canada wordmark and related graphics associated with this distribution are protected under trademark law and copyright law. No permission is granted to use them outside the parameters of the Government of Canada's corporate identity program. For more information, see Federal identity requirements.

Natural Resources Canada, Geological Survey of Canada

© His Majesty the King in Right of Canada as represented by the Minister of Natural Resources, 2024.

Application de notes terrain de la Commission géologique du Canada

(English)

Projet initié par la Commission géologique du Canada, cette application permet de récolter et décrire les données in-situ concernant la géologie du socle rocheux, des carottes de forage et des dépôts de surface. À l'aide de GPS embarqué, il est possible de conserver et visualiser la localisation des informations se rapportant à la géologie.

Le format de style Carnet de Terrain permet de transférer les données SIG, des métadonnées tel que le nom de projet, le géologue ainsi que le nom de l'activité d'un appareil à un autre. Que ce soit une tablette, un ordinateur portatif ou autre. L'application est plutôt orienté vers la cartographie régionale de la géologie.

Le public cible est principalement les géologues et intervenants souhaitant récolter des données géolgiques de type régionales de manière standard. De manière à obtenir des jeux de données validate et bien organisées.

Pré-requis

Windows 10, version compilée minimale 19041, version 2004.

Installation

L'application doit être installé manuellement sur toute plateforme Windows 10 qui atteint le pré-requis minimal. Une configuration en mode développeur est aussi nécessaire pour l'installation manuelle.

La dernière version

Veuillez télécharger la dernière version (2.4) depuis la page des versions.

Wiki

Le Github Wiki contient une documentation et des vidéos utiles, notamment une vidéo présentant les dix principales fonctionnalités de l'application de terrain du CGS.

Format de donnée

L'application actuelle utilise un format de données Geopackage pour stocker toutes les informations recueillies par les utilisateurs. En outre, ce dernier peut utilisé dans n'importe quel logiciel SIG tel que QGIS, ESRI ArcGIS ou ESRI Desktop Pro.

Environnement de développement

Plateforme Windows universelle (PWU), Visual studio 2016-2024

Contacts

Gabriel Huot-Vézina: [email protected]

Étienne Girard: [email protected]

Comment contribuer

Voir CONTRIBUTING.md

Licence

Sauf indication contraire, le code source de ce projet est protégé par le droit d'auteur de la Couronne du gouvernement du Canada et distribué sous la licence MIT.

Le mot-symbole « Canada » et les éléments graphiques connexes liés à cette distribution sont protégés en vertu des lois portant sur les marques de commerce et le droit d'auteur. Aucune autorisation n'est accordée pour leur utilisation à l'extérieur des paramètres du programme de coordination de l'image de marque du gouvernement du Canada. Pour obtenir davantage de renseignements à ce sujet, veuillez consulter les Exigences pour l'image de marque.

Ressources naturelles Canada, Commission géologique du Canada.

© Sa Majesté le Roi du Chef tu Canada représenté par le ministre des Ressources naturelles, 2024.

gsc-field-application's People

Contributors

eygirard avatar ghuotvez avatar jameljoseph avatar rcocking avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

nrcan

gsc-field-application's Issues

M_Dictionnary Update

Lorsque je load une BD "backupée" dans ma BD master, le M_dictionnary ne se met pas à jour

Michel a fait des modifications dans ses picklists cela n'a pas été sauvegardé dans le dictionnaire de la base de données master

Missing struc picklists

Reported by Annick.

Some picklist seems to be missing in the struc dialog. A fold hinge should have a younging picklist associated with it.


gabriel.huot-vezina
commented May 27

Asked to Étienne and Pierre about it. They are on the case. On hold for now.

gabriel.huot-vezina
commented May 27

(edited)
select * from M_DICTIONARY WHERE CODETHEME = 'STRUCYOUNGING'


After entering a new Station, that Station is not "selected" in the Field Notes view automatically.

After adding in a new Station, when the app goes to the Field Notes page the new Station is not "selected" by default. I had to manually select it in the Field Notes page to then add the related record.

Actually, in Field Notes page it is defaulting to the last record when I switch dates, is this the cause? I thought I took a photo for a station but ended up having the photo related to the last record which was a "waypoint" that was listed at the end.


https://gsc-datacollection.visualstudio.com/Mockup1/_workitems/edit/472

gabriel.huot-vezina
commented Tuesday

Good!👍

kaz.shimamura
commented Tuesday

Then we should take the path of least resistance for now and I agree that we may implement for next version with a config. By default then we should just have both Station and Waypoint ordered in Field Notes in the order of dates entered. For now the labels are good enough. Not sure how many waypoints are used in a typical traverse, not thinking it would be big.

gabriel.huot-vezina
commented Tuesday

But also, renaming them with the geolcode like Jamel did, makes them more visually accessible in the station list. That kind of half solve the problem when we have done this.

gabriel.huot-vezina
commented Tuesday

I think it's too much work for this year, this is why I proposed having them filtered by type, because in fact it is a station, it's only a given type of. I like Étikenne's idea which is a config to filter by type or by time.

kaz.shimamura
commented Tuesday

(edited)
Ahh, I see. I'm really thinking we should decouple "waypoints" from STATION header and into a new header? At the bottom just above LOCATION header? What do you think? Bring it up at the meeting? Wait ... waypoint is a Station type right - doh I almost forgot!!!

gabriel.huot-vezina
commented Tuesday

This is why I was waiting to fix this. I wanted to be sure to implement the right thing. If we revert to an ordered list of station based on time instead of type, then I don't have to make the fix, if we keep the current setup then I'll fix the issue 😜

kaz.shimamura
commented Tuesday

The core problem is when the Field Notes page is displayed the last record is selected. I thought after adding a station I assume that I can carry out my observation entry in Field Notes page but if a user wasn't aware that it defaulted to the last record, in this case a waypoint, and not manually selecting the proper station then it would lead to data entry errors. Waypoints are troubling...what do you think?

gabriel.huot-vezina
commented Tuesday

This comes down to the email I've sent everyone last week:

"
Hey guys!

I got a good question here from Annick about the waypoints. We are not showing them all at the bottom of the list of stations in the field note page. That way we can with the blink of eye see them all without searching for them. It seems though, that there was also good points by having them shown in the order they were taken. That way the user can know which waypoints falls between what stations for planification purposes and for validation and to be coherent with the other themes in the notes.

What are your thoughts about it. I think she has a good point

Cheers,

"

Entity Framework with SQLite

Do some test whether it could be possible to work with EntityFramework. it would prevent us from hardcoding the tables and fields names inside classes.

Found a blog that could help with this task: https://erazerbrecht.wordpress.com/2015/06/11/sqlite-entityframework-6-tutorial/

http://stackoverflow.com/questions/33169352/how-to-use-sqlite-with-entity-framework-6-on-uwp

Found something on Microsoft website: https://blogs.windows.com/buildingapps/2016/05/03/data-access-in-universal-windows-platform-uwp-apps/#EX9Pl5LQqem7FHQE.97
The problem is, they say install EntityFramework.Sqlite from nuget and to get it as a pre-release version, even with the option checked, the package can't be found anywhere...


https://gsc-datacollection.visualstudio.com/Mockup1/_workitems/edit/90

Layer visibility gets reset each time app is closed/open

Copied from Repro Steps when changed from Bug to Feature
From an angry scientist.

This really bugged him big time.


https://gsc-datacollection.visualstudio.com/Mockup1/_workitems/edit/444
gabriel.huot-vezina
commented Dec 12, 2018

In fact it was never coded, it's more a feature then a bug. The user think the app is like an ArcMap MXD.

gabriel.huot-vezina
commented Dec 12, 2018

The latest changesets took Stephen's approach and nothing is reset anymore each time a user navigate from notes to map or settings, only navigation to existing pages occurs. Still the layer visibility must be keep after closing the app.

kaz.shimamura
commented Oct 24, 2018

I believe Steve was working on having the map page "remember" the last "view" instead of resetting? Steve any news or updates on that? By default didn't it zoom to the center of the current GPS location?

gabriel.huot-vezina
commented Oct 24, 2018

Do we keep current setup or we revert to what it used to be when we were keeping visibility in the settings? @stephen.williams @kaz.shimamura

gabriel.huot-vezina
commented Oct 24, 2018

I used to keep this as an internal setting so each time the app is opened the last saved layer visibility was set back, but for some reason it seems to have disapeared at some time.

Note Page header visibility setting gets resets

Reported by Annick.

Changing header visibility in config page, like disabling fossil and paleoflow, then going on working on something else, then going back onto the config page reset to the last preset all header visibility toggles erasing what has just been done by the user.

Get rid of small GUID in all ID calculation

Calculated ID are all made shorter. I don't remember why I did this the first time. I don't think it was a field length restriction. Maybe I was trying to get shorter ID to get people less scared about them...anyway it doesn't make sense anymore.

"Backup" label on Navigation pane to be clarified?

The "Backup" label on the Navigation pane is for quick backup of only the geologists field data's observations and measurements, and does not backup any photo's taken within the device or the TPK. Full backup is located in the FieldBook Project page's Full Backup menu item. However, the user may not immediately know that by looking at the "Backup" label in the Nav Pane. Should it be relabeled as "Quick backup"? or something else that's helps differentiate between this and the full backp?

Spatial Lite embedded resource

Since there is still no library in UWP for Spatial Lite, so I tried different avenues.
In QGIS, it's pretty easy to convert our Sqlite database into a spatialite one.
Need to install Spatialite GUI pluggin (QSpatialite)
Connect to the database and the GUI will detect it isn't a spatialite db and will add the proper tables and functions to it.
In QGIS, it's also pretty easy to convert F_LOCATION into a point feature
https://pvanb.wordpress.com/2012/07/30/from-xy-table-to-spatial-table-in-spatialite/
From the same above link, importing lat/long coordinates into the geometry field is quick.
Unfortunately, the added geometry field is linked to some triggers and functions that aren't activated once in DataCollector app, giving an error when trying to add a record. I was planning on adding a record then updating the geometry field with a sql query, but the first step doesn't work. From what I've read, we need to activate spatial lite extension in order to use the functions, when not used in QGIS or other made up spatial lite GUI.

Once all of this is done, it's quite quick to create some spatial views from location and make visibile sample, earthmats and other stations on a map. Again all in QGIS. The good thing is, when created those spatial views can also be viewable in Arc.


For field trips, I guess we could write some python scripts for QGIS that could batch recreate those spatial views and convert F_LOCATION each time a user needs it.

Spatial views:
https://www.gaia-gis.it/gaia-sins/spatialite-cookbook/html/sp-view.html

Since we are now dealing with a spatialite database with the python tools, I tested again and also since we are renaming features differently against table, it works well in the application. Even the views that are created for earthmat, sample and structures gets updates dynamically. If we could find a way of having spatial views that could be great.

Embedding the spatialite version with all preset feature could impact the python tools by removing 2 of them.

Earth Material - Adding fossil from inside the form

Reported by Étienne from a course given in Calgary 2018. A paleontologist doesn't get why the fossil has been extruded from the earthmat when those two are unseperatable.

Suggestion by Étienne. Maybe fossil could be treated like the mineral, we can add records directly inside the earhtmat dialog but the edition will happen in it's own.


From Kaz

So the paleontologist would like fossils as part of a descriptor for the rock just like "textures", "fabric" in EarthMaterial - like how we had it originally in GanFeld! How we have minerals implemented in two interfaces is cause for concern in terms of complexity - we should consider re-thinking how our geologic entities are abstracted into our data model - topic for our workshop?


https://gsc-datacollection.visualstudio.com/Mockup1/_workitems/edit/373

Schema Location Update

Will need these edits in the schema so the new location dialog works better for manual data entry, see #7.

  • - Add a picklist of datum selection (WGS 84 and NAD83 for now).
  • - Send EPGS field from F_METADATA to F_LOCATION
  • - Set new version in F_METADATA to 1.44
  • - Add picklist value of "Manual" in ENTRYTYPE codetheme.

Naming Convention - Custom or preset

When the user sets up the App with their name, GSC officer code, project type, they can also set their naming scheme for StationID, EarthMatID, SampleID.

One option is to select from a ComboBox preset conventions

StationID, EarthMatID, Sample/MeasurementID:

  1. YYGSCxxx, YYGSCxxxA, YYGSCxxxA-01
  2. YYGSCxxx, YYGSCxxx, YYGSCx (increments for the duration of the app, not reset by new station)
  3. YYGSCxxxx (four digits --> asked by Michel Houle)
  4. YYGSC --> without 0s anywhere

Will need to get feedback on what formats make sense for geologists and all other stakeholders involved, including the Collections group and SMS that may be impacted.

Kathleen and Pierre told me to have at least the YY and GSC codes, that's a must. The proposed calculation are fine with that rule.

This could be added to the setting page. By default the old naming conventions will be selected with a new project, but if a user wants to change it, he can go in the settings.


https://gsc-datacollection.visualstudio.com/Mockup1/_workitems/edit/47

Bd sqlite dans le menu Layers

Lorsque je load une bd sql lite pour visualiser dans un projet déja existant, impossible de la tourner à "off" dans le menu "Layers". Je dois l'effacer pour qu'elle disparaisse.

App crash with earthmat and structure

Again Annick found another little bug regarding the structures. She took a struc, played a bit with the picklist for a planar structure, but didn't select anything particular for those (attitude, youging, etc), stayed empty. When going back to the note page and selecting the related earthmat, the whole app crash.

She'll send me the database shortly to investigate.

Navigate from Field Note Station to Map page

Suggested by Stephen

We currently have the ability to go from a selected station on the map, to the corresponding entry on the field note page. Would there be any use in having the opposite as well - select a station on the field note page and go to that location on the map page?

Language set to french by default...

Reported by Robert when installing the app on a new laptop.

Install app
Open, and it was set in french.


https://gsc-datacollection.visualstudio.com/Mockup1/_workitems/edit/342
gabriel.huot-vezina
commented Dec 20, 2018

can't reproduce this anywhere.

stephen.williams
commented Jun 4, 2018

On my desktop (1709 16299.431) and my tablet (1709 16299.461) with build 509 of the app, the two buttons on the bottom of the sematic zoom control (found in Earth material and Structure) are defaulting to French while all other controls are English. I have tried changing the language settings on both devices, restarting the devices, reinstalling the app but so far nothing has resolved the issue.

gabriel.huot-vezina
commented Jun 4, 2018

Stephen had the same problem with this Build - 1709 Version - 16299.461

gabriel.huot-vezina
commented Apr 3, 2018

On my side after installation on a laptop, 2 desktop, 2 phones and many tablets, never seen this problem. In the code if my memory is good, the default for the app is english, for all case that is not french, so even if the device is in japanese the app should show in english...

TPK disapears when app closes and reload

For example, loading multiple tpks works fine. Then setting some on/off, opacity and order of the tpks, then closing the app and opening it up again makes them disapear. None if visible or available.

Reported by @AnnickMorin and I was able to replicate it on another tablet.

Missing french translations

Some bits of the app aren't translated in french.

  • Field book dialog missing french for first name, middle name and last name of project leader and geologist.

  • Localisation should be Positionnement, inside localisation warning. Review pop-up text too.

  • Map Page, upper left text still shows location and accuracy instead of Position and Précision.

  • Map page quick waypoint isn't translated.

  • Config page, Other tab, default photo mode is still written default instead of De Base or something else.

  • Map Page layer flyout menu, shows french text for visibility over the opacity bar.

TPKs problem are on/off

We got the same tpks issues, even though I fixed them, on the tablets. Sometimes it's impossible to load any tpk, other times opacity, ordering and visibility aren't kept in memory but some other times they are. I thought first that it could be related to windows version or build but it doesn't seem like it.

Tested on W10 1809 and 1803 versions of tablets.

Loading picklist values adds the stations to the map page.

Reported by Annick.

When loading the picklist values from another database, the stations were added to the map page, but not the field note page.

As for my own testing when I did that, it crashed the app. When I opened back the application the loaded database stations were still in the map page.

Map Page Layers Problems

Found by Annick Morin.

  • Layer transparency level label gets stock on the map page some times.
  • Changing layers ordering crashes the app, sometimes.
  • Disabling layer keeps them on the map, but at the same time when that happens, the layer transparency level label also gets stock on the map page. It seems like a refreshing problem.

Soft mandatory structure fields

Reported by Annick.

Some of her users took quick structures and forgot to enter the type. At the end of day they all show up with a small red square but it's sometime hard for them to remember what was the structure planar or linear and sometimes it's not possible to know it with the data recorded.

Suggestion by Annick would be to show a pop-up to inform user that he knows what he's doing by not entering anything in the mandatory field. For earthmat that's fine but for structure it's kind of problematic afterward.

NOTE: Could it be a setting, user sets hard mandatory fields when in a form, or soft one. Hard fields would prevent user from closing any form without filling mandatory fields, soft would be like it is right now. Note that hard mandatory field wouldn't be a problem with quick buttons in map page, earthmat would still be created without any litho. That hard/soft feature would be visible only when inside a given form.

https://gsc-datacollection.visualstudio.com/Mockup1/_workitems/edit/434

Minerals - Users don't get why we can add minerals in two places

Some user misunderstand a bit the fact that it's possible to add a quick mineral entry in the earthmat dialog but then it needs to be edited in it's own form.

This behavior cause me some trouble while coding because a user adds mineral to a list box, which then shows a trash can to delete the values from, but I removed the can when the earthmat is in edit mode, because I didn't want the user to delete a full mineral record. Trash can are made available only before their records exists, that is when someone takes a new earthmat.

This is related to backlog #356 #373


https://gsc-datacollection.visualstudio.com/Mockup1/_workitems/edit/374

Map Page: Spinning circle and "Acquiring current location ... wait a bit ..." persistent display, even with GPS off.

From @gisgorilla
When I have the Map page open (in the office) and the spinning circle and "Acquiring current location ... wait a bit ..." displays, so knowing I'm in the office I turn the GPS off, and the GPS appears to be off in the Windows 10 system tray below. But in the app the spinning circle and "Acquiriing ..." message still persists on the Map Page.

https://gsc-datacollection.visualstudio.com/Mockup1/_workitems/edit/473

New Field Books keeps last FB tpks

The fix for issue #44, introduced yet another bug. Any new field book will keep in memory all the tpks of the previous one...can't add anything into them...

Lithology semantic zoom

Instead of duplicating first lithology order beside all second level, add an indentation instead?

@AnnickMorin on behalf of Michel.

hydrothermal
hydrotherm - void fill

could look like

hydrothermal
-----void fill

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.