Goldberg, M., Griffin, C., & Reich, S., Processors, LLC.
MITgcm allows users to compare data with model equivalent information, often for the purpose of optimization of a misfit. There are three primary packages used to accomplish this task:
pkg/ecco
: Used for gridded data, i.e. datasets that have been mapped to a MITgcm model gridpkg/profiles
: Used for ungridded profile data. When dealing with sparse ctd data, embedding profiles into gridded fields a lapkg.ecco
results in needlessly sparse fields. To lessen the memory burden,pkg/profiles
was developed to interpolate profiles or vertical columns of data into the model grid for model-data comparisonpkg/obsfit
: In the case in which the user wants to compare pointwise ungridded observational data defined by their latitude, longitude, and depth, it may be wasteful to use profiles.pkg/obsfit
was created for these cases.
Name | Personal goals | Can help with | Role |
---|---|---|---|
Caeli G. | Increase Python confidence | Reading/translating MATLAB scripts | Project Lead |
Matthew G. | Write modular open source code | Providing template routines to build off of | Project Lead |
Shoshi R. | Project Lead |
Presently, there are no known (to the authors) publicly available preprocessing routines for pkg/profiles
and pkg/obsfit
written in python. Gael F. has a public set of routines in MATLAB, which serve as inspiration for this project. Given that the ECCO community has embraced python in recent years, in particular harnassing xarray
, we see the addition of a python data preprocessing module to be an attractive contribution to the community.
- Produce a new python package to preprocess profiles and obsfit data
- Create jupyter notebooks demonstrating different uses of the package, examining different routines within the package
- Write module
obsprep
to prepareobsfit
andprofiles
objects, assembling interp information (includinggrid='llc'
) - Investigate nearest neighbor methods --
KDtree
is not innately aware of spherical geometry -- usepyresample
- Finish documentation, tests & installation scripts
- Set
pkg='profiles'
defaultprof_interp_weights
to be given by bilinear interpolation coefficients following Gael's routine. In summary: final nearest interp points using new sphere-aware search viapyresample
. Map interp points from spherical->cartesian, orthogonalize grid cells, then compute coefficients. - Default for
interp_weights
forpkg='obsfit'
should be trilinear, following a similar routine.
- Interpolation:
profiles
by default does bilinear interpolation, computing the model equivalent to an ungridded observation as a weighted average of its four neighbors, from wikipedia).
- Put nearest neighbors search mapping ungridded -> gridded inside MITgcm
Examine treacherous interpolation at the poles