-
Notifications
You must be signed in to change notification settings - Fork 45
Description
A few weeks ago i had the opportunity to teach students how to use Melodies-Monet in the context of a University class called Atmospheric Modelling. They were ALL really interested in using the tool for their classwork, but when it came time to create .yaml file they didn't really manage to do it.
For context, this are GeoPhysics students, and therefore the majority had only taken one programming course called Introduction to Programming. They knew how to execute scripts, edit files, etc. But didn't understand the code or error messages that displayed a line of code with the error.
There were two classes. The first was just theory and installing MM, and the second one was practice. I think a mistake i made was giving them too much freedom in the practice class, because i gave them a .yaml file with all the possible options so they could erase what they didn't need and leave only what they needed.
The biggest problems encountered were the following:
- Unhandled error messages from external libraries. They didn't really know how to deal with them.
- YAML syntax in general. Especially how some blocks of data have to adhere to predefined labels (model, analysis, obs,etc) and others are named by the user, like the model name and obs name.
- Domain definition. This was hard to explain but they did end up grasping it.
- There are a lot of options.
I think that's mainly it. I didn't list any errors with respect to the plots and stats creation because they didn't get to that part. No one managed to create a .yaml file, but to be fair they didn't have a lot of time. We are going to have another class next week where i plan to give them an already created .yaml that works for their use case (creating timeseries and spatial_overlay for a chimere model and obs) that they can edit to load their own files.
In the case of the domain definitions, i think that adding a section to the control files for domain definition and then using the domains as variables could reduce the size and complexity of yaml files. I also think that domains could be represented internally by a Domain class with a filter or apply method. That way, a single domain instance could easily be applied to more than one dataset.