ArtesiaWater / hydropandas

Module for loading observation data into custom DataFrames
https://hydropandas.readthedocs.io
MIT License
52 stars 11 forks source link

Create Obs object from another Obs object #110

Closed OnnoEbbens closed 1 year ago

OnnoEbbens commented 1 year ago

Sometimes I want to create an Obs object from another Obs object. For example I want a GroundwaterObs object from a WaterlvlObs object.

# create WaterlvlObs
df = pd.DataFrame({'measurements':np.random.randint(0,10,5)}, index=pd.date_range('2020-1-1', '2020-1-5'))
o_wl = hpd.WaterlvlObs(df, name='obs',x=0, y=0, source='my fantasy', meta={'place':'Winterfell'})

# This is what I want to do, but now I will lose all metadata
o_gw = hpd.GroundwaterObs(o_wl)

# This is what I have to do now to keep all metadata
o_gw = hpd.GroundwaterObs(o_wl, name=o_wl.name,
                                               x=o_wl.x, y=o_wl.y,
                                               source=o_wl.source,
                                               filename=o_wl.filename,
                                               monitoring_well=o_wl.monitoring_well,
                                               metadata_available=o_wl.metadata_available,
                                               unit=o_wl.unit)