kinverarity1 / lasio

Python library for reading and writing well data using Log ASCII Standard (LAS) files
https://lasio.readthedocs.io/en/latest/
MIT License
344 stars 151 forks source link

Converting to a different index/depth unit is weird and undocumented #407

Open kinverarity1 opened 4 years ago

kinverarity1 commented 4 years ago

Feels to me like this should be easier to achieve.

See below for what I guess is close to a minimal working example of how to change a LAS file from index units of centimetres to metres:

image

dcslagel commented 4 years ago

One possible solution would be to create a unit conversion module or class with a generic function: convert_unit(las, from, to) or method: las.converter.convert_unit(from, to) that:

The conversion formulas could be written in Lasio and/or a unit conversion package could be added as a dependency or optional dependency to do the actual conversions. I lean toward writing the popular conversions in Lasio. I think there is some existing conversion code already in Lasio. That should be considered in code organization decisions.

Then, as a later iteration/enhancement, add a unit conversion package as an option dependency. If a user has the optional package installed then Lasio would use that instead of the internal conversions.

Here is an incomplete list of actively managed unit conversion packages. If one has popular usage in the general LAS community, that is probably the one to consider.

Is this a good approach? Are there other approaches that are of interest?

kinverarity1 commented 3 years ago

I think the idea of a generic function is an excellent approach, and I think we should keep the unit conversion code written in lasio for now. I would prefer to avoid any additional dependencies unless they add a lot of functionality.

Let's also keep the list of units fairly short - whatever is currently in there, like meter, foot, inch, and any others.