-
Notifications
You must be signed in to change notification settings - Fork 169
Open
Description
I've been testing the Parcels v4 kernel migration within the VirtualShip framework and wanted to share some early feedback. This is based on updating the instrument kernels and doesn't yet include changes to the fieldsets.
Here are a few points I've noted, which are minor and potentially subjective (or indeed already being worked on). I appreciate some of these touch on themes which are somewhat inevitable when migrating to a new version, but I thought they might be worth raising:
- The new recommended
np.where()logic for kernels is powerful and simple enough to implement for someone with medium or above numpy knowledge. However, I think it does require a higher level of coding knowledge and a solid grasp of array dimensionality compared to the previous if statement approach. Whilst this might be a non-issue for Parcels' parimary audience of advanced users, it could be helpful to include links to external guides on understanding this change in the documentation and tutorials? Boolean masking is raised as a clean and efficient alternative in Benchmark use ofnp.where()versus boolean masking in Parcels kernels and interpolators #2197 as well, but I still think there's a chance some users aren't used to thinking from a 'vectorised point of view'. - A potential point of confusion could arise with kernels that have multiple 'stages', such as the nested functions for different Argo Float phases (e.g., Updating Argo tutorial to v4 #2199). This is a shift in approach, and users might need extra time to adjust their understanding.
- The need to convert
dtto seconds at the start of most kernels feels a bit repetitive. Though I think there could already be plans to address this?
Thanks for all your hard work on Parcels v4! This is just some initial feedback, and I hope it's helpful.
Metadata
Metadata
Assignees
Type
Projects
Status
Backlog
Status
Backlog