Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 18 additions & 16 deletions autotest/pst_from_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,13 @@ def freyberg_test():
use_cols=sfr_use, prefix='sfr',
ofile_skip=4, ofile_sep=' ', use_rows=np.arange(0, 50))
# check obs set up
sfrobs = pf.obs_dfs[-1]
sfrobs[['col'] + sfr_idx] = sfrobs.obsnme.apply(
lambda x: pd.Series([s.split(':')[1] for s in x.split('_') if ':' in s]))
sfrobs = pf.obs_dfs[-1].copy()
sfrobs[['usecol'] + sfr_idx] = sfrobs.obsnme.apply(
lambda x: pd.Series(
dict([s.split(':') for s in x.split('_') if ':' in s])))
sfrobs.loc[:, sfr_idx] = sfrobs.loc[:, sfr_idx].astype(int)
sfrobs_p = sfrobs.pivot_table(index=sfr_idx,
columns=['col'], values='obsval')
columns=['usecol'], values='obsval')
sfodf_c = sfodf.set_index(sfr_idx).sort_index()
sfodf_c.columns = sfodf_c.columns.str.lower()
assert (sfrobs_p == sfodf_c.loc[sfrobs_p.index,
Expand Down Expand Up @@ -150,12 +151,13 @@ def freyberg_test():
ofile_sep=',', obsgp=['qaquifer', 'qout', "width"],
use_rows=np.arange(50, 101))
# check obs set up
sfrobs = pf.obs_dfs[-1]
sfrobs[['col'] + sfr_idx] = sfrobs.obsnme.apply(
lambda x: pd.Series([s.split(':')[1] for s in x.split('_') if ':' in s]))
sfrobs = pf.obs_dfs[-1].copy()
sfrobs[['usecol'] + sfr_idx] = sfrobs.obsnme.apply(
lambda x: pd.Series(
dict([s.split(':') for s in x.split('_') if ':' in s])))
sfrobs.loc[:, sfr_idx] = sfrobs.loc[:, sfr_idx].astype(int)
sfrobs_p = sfrobs.pivot_table(index=sfr_idx,
columns=['col'], values='obsval')
columns=['usecol'], values='obsval')
sfodf_c = sfodf.set_index(sfr_idx).sort_index()
sfodf_c.columns = sfodf_c.columns.str.lower()
assert (sfrobs_p == sfodf_c.loc[sfrobs_p.index,
Expand Down Expand Up @@ -709,7 +711,7 @@ def mf6_freyberg_test():
pars.loc[sfr_pars, 'parval1'] = np.random.random(len(sfr_pars)) * 10

sfr_pars = pars.loc[sfr_pars].copy()
sfr_pars[['inst', 'col', '#rno']] = sfr_pars.parnme.apply(
sfr_pars[['inst', 'usecol', '#rno']] = sfr_pars.parnme.apply(
lambda x: pd.DataFrame([s.split(':') for s in x.split('_')
if ':' in s]).set_index(0)[1])
sfr_pars['#rno'] = sfr_pars['#rno'] .astype(int)
Expand Down Expand Up @@ -1067,7 +1069,7 @@ def mf6_freyberg_da_test():
if ib[i,j] < 1:
f.write(" -1.0e+30 ")
else:
pname = "hds_use_col:trgw_{0}_{1}_{2}_time:31.0".format(k,i,j)
pname = "hds_usecol:trgw_{0}_{1}_{2}_time:31.0".format(k,i,j)
if pname not in hobs_set and ib[i,j] > 0:
print(k,i,j,pname,ib[i,j])
f.write(" ~ {0} ~".format(pname))
Expand Down Expand Up @@ -1295,9 +1297,9 @@ def mf6_freyberg_direct_test():
raise Exception("recharge too diff")

if __name__ == "__main__":
#freyberg_test()
#freyberg_prior_build_test()
#mf6_freyberg_test()
#mf6_freyberg_shortnames_test()
#mf6_freyberg_da_test()
mf6_freyberg_direct_test()
freyberg_test()
freyberg_prior_build_test()
mf6_freyberg_test()
mf6_freyberg_shortnames_test()
mf6_freyberg_da_test()
mf6_freyberg_direct_test()
12 changes: 6 additions & 6 deletions pyemu/prototypes/pst_from.py
Original file line number Diff line number Diff line change
Expand Up @@ -1878,7 +1878,7 @@ def _write_direct_df_tpl(in_filename, tpl_filename,df,name,index_cols,typ,use_co
if typ == "constant":
# one par for entire use_col column
if longnames:
df_ti.loc[:, use_col] = "{0}_use_col:{1}_{2}".format(
df_ti.loc[:, use_col] = "{0}_usecol:{1}_{2}".format(
nname, use_col, "direct")
if suffix != '':
df_ti.loc[:, use_col] += "_{0}".format(suffix)
Expand All @@ -1893,7 +1893,7 @@ def _write_direct_df_tpl(in_filename, tpl_filename,df,name,index_cols,typ,use_co
elif typ == "zone":
# one par for each zone
if longnames:
df_ti.loc[:, use_col] = "{0}_use_col:{1}_{2}".format(
df_ti.loc[:, use_col] = "{0}_usecol:{1}_{2}".format(
nname, use_col, "direct")
if zone_array is not None:
df_ti.loc[:, use_col] += df_ti.zval.apply(
Expand All @@ -1912,7 +1912,7 @@ def _write_direct_df_tpl(in_filename, tpl_filename,df,name,index_cols,typ,use_co
elif typ == "grid":
# one par for each index
if longnames:
df_ti.loc[:, use_col] = "{0}_use_col:{1}_{2}".format(
df_ti.loc[:, use_col] = "{0}_usecol:{1}_{2}".format(
nname, use_col, "direct")
if zone_array is not None:
df_ti.loc[:, use_col] += df_ti.zval.apply(
Expand Down Expand Up @@ -2075,7 +2075,7 @@ def _get_tpl_or_ins_df(filenames, dfs, name, index_cols, typ, use_cols=None,
if typ == "constant":
# one par for entire use_col column
if longnames:
df_ti.loc[:, use_col] = "{0}_use_col:{1}".format(
df_ti.loc[:, use_col] = "{0}_usecol:{1}".format(
nname, use_col)
if suffix != '':
df_ti.loc[:, use_col] += "_{0}".format(suffix)
Expand All @@ -2087,7 +2087,7 @@ def _get_tpl_or_ins_df(filenames, dfs, name, index_cols, typ, use_cols=None,
elif typ == "zone":
# one par for each zone
if longnames:
df_ti.loc[:, use_col] = "{0}_use_col:{1}".format(
df_ti.loc[:, use_col] = "{0}_usecol:{1}".format(
nname, use_col)
if zone_array is not None:
df_ti.loc[:, use_col] += df_ti.zval.apply(
Expand All @@ -2102,7 +2102,7 @@ def _get_tpl_or_ins_df(filenames, dfs, name, index_cols, typ, use_cols=None,
elif typ == "grid":
# one par for each index
if longnames:
df_ti.loc[:, use_col] = "{0}_use_col:{1}".format(
df_ti.loc[:, use_col] = "{0}_usecol:{1}".format(
nname, use_col)
if zone_array is not None:
df_ti.loc[:, use_col] += df_ti.zval.apply(
Expand Down
10 changes: 7 additions & 3 deletions pyemu/pst/pst_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -861,12 +861,16 @@ def csv_to_ins_file(csv_filename,ins_filename=None,only_cols=None,only_rows=None
if c_count < len(only_clabels): # if we haven't yet set up all obs
if rlabel in only_rlabels and clabel in only_clabels:
# define obs names
if not isinstance(prefix, str):
nprefix = prefix[c_count]
else:
nprefix = prefix
if longnames:
nname = "{0}_use_col:{1}".format(prefix, clabel)
nname = "{0}_usecol:{1}".format(nprefix, clabel)
oname = "{0}_{1}".format(nname, rlabel)
else:
nname = prefix+clabel
oname = prefix+rlabel+"_"+clabel
nname = nprefix+clabel
oname = nprefix+rlabel+"_"+clabel
onames.append(oname) # append list of obs
ovals.append(df.iloc[i, j]) # store current obs val
# defin group name
Expand Down