Hello DAS World #7
d-chambers
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Intro
We are pleased to share this new python project called unidas, a small compatibility package which makes the open-source DAS libraries written in Python more interoperable. We discussed this at AGU in 2024, and now we have a working prototype. The purpose and basic use of the project is explained in the readme. Essentially, we want to make it easy for users of any of the main DAS libraries to use features of the other libraries.
We would like to invite people outside of those already involved in DASDAE to help develop and test unidas. Specifically, we would like to add at least one person from each of the major DAS libraries as core developers of unidas. The core developers will help make sure conversions work well and are kept up-to-date as the libraries evolve. If you are interested in being a core developer for one of the projects included or in a new project to include, please reach out to us through a GitHub Discussion.
Design
There are two main components of the library. An internal data model and the converter logic.
Internal data model
The current data model, called
BaseDAS
is most similar to theDataArray
(xdas) andPatch
(dascore) which are based on xarray'sDataArray
. This was the most natural choice since they are a super set of theSection
(daspy) andBlast
(lightguide).BaseDAS
includes a concept of coordinates, dimensions, and attributes.The implementation of the data model at the time of writing can be found here. There is still more work to do, especially on the coordinates, but we think this is a first step in the right direction.
Converters
In order to implement a new data structure, a
Converter
subclass is created. This class defines methods for converting from the associated data structure to other data structures. Internally, the parent class keeps a record of each subclass and automatically creates a graph describing the connection between the converters. The conversion involves finding the shortest path from one converter to the target converter then sequentially applying the conversions. For each library, the only required methods are to convert to and fromBaseDAS
, then all other conversions should work through theBaseDAS
path.Currently we can convert between the
Blast
(lightguide),Section
(daspy),DataArray
(xdas), andPatch
(dascore) throughBaseDAS
.Related Projects
DASCore: @ahmadtourei, @eileenrmartin, @jinwar, @ariellellouch, @aaronjgirard, @aissah, @danesnick, @Nik-P2, @Shihao-Yuan, @SeunghooKim, @JacksonZhu90, @shawnboltz, @SeisMatt, @code-cullison, @quasiStellar45
DASpy: @HMZ-03, @Shr1988
XDAS: @atrabattoni, @marbail, @martijnende, @dianerivet, @ClaudioStrumia, @Marieb689
Lightguide: @miili, @emolch
Others who might be interested
@Haipeng-ustc, @yetinam, @jingxiaoliu, @TomSHudson, @biondiettore, @aissah, @niyiyu, @mdenolle, @espentj, @ingeknudsen, @petterkc, @lindvarl, @chad-earthscope, @nlscelli, @zackspica, @vhlai-seis, @andreas-wuestefeld, @ntaverna
We look forward to receiving feedback and hope this project leads to more collaboration in the future.
Beta Was this translation helpful? Give feedback.
All reactions