From 1d900c485ba23258d9bf60e90335f0b2a09d4268 Mon Sep 17 00:00:00 2001 From: wpbonelli Date: Mon, 5 Oct 2026 18:36:55 -0700 Subject: [PATCH 1/3] feat(dfns): add observation types to components utl-obs's id/id2 union doesn't say which kind of id an observation takes; MF6 decides per observation type and parent. Components accepting an OBS file now list their observation types in `observations`, each narrowing id/id2 to some of the union's arms, with an optional fk for an index. The table is transcribed from each package's id processor in the MF6 Fortran, which covers obstypes the docs omit (API, SWF-family packages) and corrects one they get wrong (GWE LKE's lke takes no ID2). Co-Authored-By: Claude Opus 5.5 --- .../__snapshots__/v2.0.0.dev3/chf-cdb.json | 18 + .../__snapshots__/v2.0.0.dev3/chf-cdb.toml | 12 + .../__snapshots__/v2.0.0.dev3/chf-cdb.yaml | 11 + .../__snapshots__/v2.0.0.dev3/chf-chd.json | 10 + .../__snapshots__/v2.0.0.dev3/chf-chd.toml | 6 + .../__snapshots__/v2.0.0.dev3/chf-chd.yaml | 6 + .../__snapshots__/v2.0.0.dev3/chf-dfw.json | 10 + .../__snapshots__/v2.0.0.dev3/chf-dfw.toml | 6 + .../__snapshots__/v2.0.0.dev3/chf-dfw.yaml | 6 + .../__snapshots__/v2.0.0.dev3/chf-evp.json | 10 + .../__snapshots__/v2.0.0.dev3/chf-evp.toml | 6 + .../__snapshots__/v2.0.0.dev3/chf-evp.yaml | 6 + .../__snapshots__/v2.0.0.dev3/chf-flw.json | 18 + .../__snapshots__/v2.0.0.dev3/chf-flw.toml | 12 + .../__snapshots__/v2.0.0.dev3/chf-flw.yaml | 11 + .../__snapshots__/v2.0.0.dev3/chf-nam.json | 21 ++ .../__snapshots__/v2.0.0.dev3/chf-nam.toml | 15 + .../__snapshots__/v2.0.0.dev3/chf-nam.yaml | 12 + .../__snapshots__/v2.0.0.dev3/chf-pcp.json | 10 + .../__snapshots__/v2.0.0.dev3/chf-pcp.toml | 6 + .../__snapshots__/v2.0.0.dev3/chf-pcp.yaml | 6 + .../__snapshots__/v2.0.0.dev3/chf-zdg.json | 18 + .../__snapshots__/v2.0.0.dev3/chf-zdg.toml | 12 + .../__snapshots__/v2.0.0.dev3/chf-zdg.yaml | 11 + .../__snapshots__/v2.0.0.dev3/exg-gwegwe.json | 10 + .../__snapshots__/v2.0.0.dev3/exg-gwegwe.toml | 6 + .../__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml | 6 + .../__snapshots__/v2.0.0.dev3/exg-gwfgwf.json | 10 + .../__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml | 6 + .../__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml | 6 + .../__snapshots__/v2.0.0.dev3/exg-gwtgwt.json | 10 + .../__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml | 6 + .../__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml | 6 + .../__snapshots__/v2.0.0.dev3/gwe-ctp.json | 10 + .../__snapshots__/v2.0.0.dev3/gwe-ctp.toml | 6 + .../__snapshots__/v2.0.0.dev3/gwe-ctp.yaml | 6 + .../__snapshots__/v2.0.0.dev3/gwe-esl.json | 18 + .../__snapshots__/v2.0.0.dev3/gwe-esl.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwe-esl.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwe-lke.json | 125 +++++++ .../__snapshots__/v2.0.0.dev3/gwe-lke.toml | 97 ++++++ .../__snapshots__/v2.0.0.dev3/gwe-lke.yaml | 83 +++++ .../__snapshots__/v2.0.0.dev3/gwe-mwe.json | 89 +++++ .../__snapshots__/v2.0.0.dev3/gwe-mwe.toml | 69 ++++ .../__snapshots__/v2.0.0.dev3/gwe-mwe.yaml | 59 ++++ .../__snapshots__/v2.0.0.dev3/gwe-nam.json | 21 ++ .../__snapshots__/v2.0.0.dev3/gwe-nam.toml | 15 + .../__snapshots__/v2.0.0.dev3/gwe-nam.yaml | 12 + .../__snapshots__/v2.0.0.dev3/gwe-sfe.json | 125 +++++++ .../__snapshots__/v2.0.0.dev3/gwe-sfe.toml | 97 ++++++ .../__snapshots__/v2.0.0.dev3/gwe-sfe.yaml | 83 +++++ .../__snapshots__/v2.0.0.dev3/gwe-uze.json | 107 ++++++ .../__snapshots__/v2.0.0.dev3/gwe-uze.toml | 83 +++++ .../__snapshots__/v2.0.0.dev3/gwe-uze.yaml | 71 ++++ .../__snapshots__/v2.0.0.dev3/gwf-api.json | 18 + .../__snapshots__/v2.0.0.dev3/gwf-api.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwf-api.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwf-chd.json | 10 + .../__snapshots__/v2.0.0.dev3/gwf-chd.toml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-chd.yaml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-chdg.json | 10 + .../__snapshots__/v2.0.0.dev3/gwf-chdg.toml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-chdg.yaml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-csub.json | 321 ++++++++++++++++++ .../__snapshots__/v2.0.0.dev3/gwf-csub.toml | 247 ++++++++++++++ .../__snapshots__/v2.0.0.dev3/gwf-csub.yaml | 198 +++++++++++ .../__snapshots__/v2.0.0.dev3/gwf-drn.json | 18 + .../__snapshots__/v2.0.0.dev3/gwf-drn.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwf-drn.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwf-drng.json | 18 + .../__snapshots__/v2.0.0.dev3/gwf-drng.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwf-drng.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwf-evt.json | 10 + .../__snapshots__/v2.0.0.dev3/gwf-evt.toml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-evt.yaml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-evta.json | 10 + .../__snapshots__/v2.0.0.dev3/gwf-evta.toml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-evta.yaml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-ghb.json | 18 + .../__snapshots__/v2.0.0.dev3/gwf-ghb.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwf-ghb.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwf-ghbg.json | 18 + .../__snapshots__/v2.0.0.dev3/gwf-ghbg.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwf-lak.json | 191 +++++++++++ .../__snapshots__/v2.0.0.dev3/gwf-lak.toml | 151 ++++++++ .../__snapshots__/v2.0.0.dev3/gwf-lak.yaml | 127 +++++++ .../__snapshots__/v2.0.0.dev3/gwf-maw.json | 113 ++++++ .../__snapshots__/v2.0.0.dev3/gwf-maw.toml | 89 +++++ .../__snapshots__/v2.0.0.dev3/gwf-maw.yaml | 75 ++++ .../__snapshots__/v2.0.0.dev3/gwf-nam.json | 28 ++ .../__snapshots__/v2.0.0.dev3/gwf-nam.toml | 20 ++ .../__snapshots__/v2.0.0.dev3/gwf-nam.yaml | 16 + .../__snapshots__/v2.0.0.dev3/gwf-rch.json | 10 + .../__snapshots__/v2.0.0.dev3/gwf-rch.toml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-rch.yaml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-rcha.json | 10 + .../__snapshots__/v2.0.0.dev3/gwf-rcha.toml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-rcha.yaml | 6 + .../__snapshots__/v2.0.0.dev3/gwf-riv.json | 18 + .../__snapshots__/v2.0.0.dev3/gwf-riv.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwf-riv.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwf-rivg.json | 18 + .../__snapshots__/v2.0.0.dev3/gwf-rivg.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwf-rivg.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwf-sfr.json | 155 +++++++++ .../__snapshots__/v2.0.0.dev3/gwf-sfr.toml | 119 +++++++ .../__snapshots__/v2.0.0.dev3/gwf-sfr.yaml | 103 ++++++ .../__snapshots__/v2.0.0.dev3/gwf-uzf.json | 115 +++++++ .../__snapshots__/v2.0.0.dev3/gwf-uzf.toml | 89 +++++ .../__snapshots__/v2.0.0.dev3/gwf-uzf.yaml | 77 +++++ .../__snapshots__/v2.0.0.dev3/gwf-wel.json | 26 ++ .../__snapshots__/v2.0.0.dev3/gwf-wel.toml | 18 + .../__snapshots__/v2.0.0.dev3/gwf-wel.yaml | 16 + .../__snapshots__/v2.0.0.dev3/gwf-welg.json | 26 ++ .../__snapshots__/v2.0.0.dev3/gwf-welg.toml | 18 + .../__snapshots__/v2.0.0.dev3/gwf-welg.yaml | 16 + .../__snapshots__/v2.0.0.dev3/gwt-api.json | 18 + .../__snapshots__/v2.0.0.dev3/gwt-api.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwt-api.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwt-cnc.json | 10 + .../__snapshots__/v2.0.0.dev3/gwt-cnc.toml | 6 + .../__snapshots__/v2.0.0.dev3/gwt-cnc.yaml | 6 + .../__snapshots__/v2.0.0.dev3/gwt-lkt.json | 131 +++++++ .../__snapshots__/v2.0.0.dev3/gwt-lkt.toml | 103 ++++++ .../__snapshots__/v2.0.0.dev3/gwt-lkt.yaml | 87 +++++ .../__snapshots__/v2.0.0.dev3/gwt-mwt.json | 89 +++++ .../__snapshots__/v2.0.0.dev3/gwt-mwt.toml | 69 ++++ .../__snapshots__/v2.0.0.dev3/gwt-mwt.yaml | 59 ++++ .../__snapshots__/v2.0.0.dev3/gwt-nam.json | 21 ++ .../__snapshots__/v2.0.0.dev3/gwt-nam.toml | 15 + .../__snapshots__/v2.0.0.dev3/gwt-nam.yaml | 12 + .../__snapshots__/v2.0.0.dev3/gwt-sft.json | 116 +++++++ .../__snapshots__/v2.0.0.dev3/gwt-sft.toml | 90 +++++ .../__snapshots__/v2.0.0.dev3/gwt-sft.yaml | 77 +++++ .../__snapshots__/v2.0.0.dev3/gwt-src.json | 18 + .../__snapshots__/v2.0.0.dev3/gwt-src.toml | 12 + .../__snapshots__/v2.0.0.dev3/gwt-src.yaml | 11 + .../__snapshots__/v2.0.0.dev3/gwt-uzt.json | 98 ++++++ .../__snapshots__/v2.0.0.dev3/gwt-uzt.toml | 76 +++++ .../__snapshots__/v2.0.0.dev3/gwt-uzt.yaml | 65 ++++ .../__snapshots__/v2.0.0.dev3/olf-cdb.json | 18 + .../__snapshots__/v2.0.0.dev3/olf-cdb.toml | 12 + .../__snapshots__/v2.0.0.dev3/olf-cdb.yaml | 11 + .../__snapshots__/v2.0.0.dev3/olf-chd.json | 10 + .../__snapshots__/v2.0.0.dev3/olf-chd.toml | 6 + .../__snapshots__/v2.0.0.dev3/olf-chd.yaml | 6 + .../__snapshots__/v2.0.0.dev3/olf-dfw.json | 10 + .../__snapshots__/v2.0.0.dev3/olf-dfw.toml | 6 + .../__snapshots__/v2.0.0.dev3/olf-dfw.yaml | 6 + .../__snapshots__/v2.0.0.dev3/olf-evp.json | 10 + .../__snapshots__/v2.0.0.dev3/olf-evp.toml | 6 + .../__snapshots__/v2.0.0.dev3/olf-evp.yaml | 6 + .../__snapshots__/v2.0.0.dev3/olf-flw.json | 18 + .../__snapshots__/v2.0.0.dev3/olf-flw.toml | 12 + .../__snapshots__/v2.0.0.dev3/olf-flw.yaml | 11 + .../__snapshots__/v2.0.0.dev3/olf-nam.json | 21 ++ .../__snapshots__/v2.0.0.dev3/olf-nam.toml | 15 + .../__snapshots__/v2.0.0.dev3/olf-nam.yaml | 12 + .../__snapshots__/v2.0.0.dev3/olf-pcp.json | 10 + .../__snapshots__/v2.0.0.dev3/olf-pcp.toml | 6 + .../__snapshots__/v2.0.0.dev3/olf-pcp.yaml | 6 + .../__snapshots__/v2.0.0.dev3/olf-zdg.json | 18 + .../__snapshots__/v2.0.0.dev3/olf-zdg.toml | 12 + .../__snapshots__/v2.0.0.dev3/olf-zdg.yaml | 11 + .../__snapshots__/v2.0.0.dev3/swf-cdb.json | 18 + .../__snapshots__/v2.0.0.dev3/swf-cdb.toml | 12 + .../__snapshots__/v2.0.0.dev3/swf-cdb.yaml | 11 + .../__snapshots__/v2.0.0.dev3/swf-chd.json | 10 + .../__snapshots__/v2.0.0.dev3/swf-chd.toml | 6 + .../__snapshots__/v2.0.0.dev3/swf-chd.yaml | 6 + .../__snapshots__/v2.0.0.dev3/swf-dfw.json | 10 + .../__snapshots__/v2.0.0.dev3/swf-dfw.toml | 6 + .../__snapshots__/v2.0.0.dev3/swf-dfw.yaml | 6 + .../__snapshots__/v2.0.0.dev3/swf-evp.json | 10 + .../__snapshots__/v2.0.0.dev3/swf-evp.toml | 6 + .../__snapshots__/v2.0.0.dev3/swf-evp.yaml | 6 + .../__snapshots__/v2.0.0.dev3/swf-flw.json | 18 + .../__snapshots__/v2.0.0.dev3/swf-flw.toml | 12 + .../__snapshots__/v2.0.0.dev3/swf-flw.yaml | 11 + .../__snapshots__/v2.0.0.dev3/swf-nam.json | 21 ++ .../__snapshots__/v2.0.0.dev3/swf-nam.toml | 15 + .../__snapshots__/v2.0.0.dev3/swf-nam.yaml | 12 + .../__snapshots__/v2.0.0.dev3/swf-pcp.json | 10 + .../__snapshots__/v2.0.0.dev3/swf-pcp.toml | 6 + .../__snapshots__/v2.0.0.dev3/swf-pcp.yaml | 6 + .../__snapshots__/v2.0.0.dev3/swf-zdg.json | 18 + .../__snapshots__/v2.0.0.dev3/swf-zdg.toml | 12 + .../__snapshots__/v2.0.0.dev3/swf-zdg.yaml | 11 + autotest/dfns/test_migrate.py | 68 ++++ autotest/dfns/test_schema_relations.py | 80 +++++ docs/md/dfnspec.md | 54 ++- .../dfns/migrate_to_v2_0_0_dev3.py | 6 + modflow_devtools/dfns/observations.py | 311 +++++++++++++++++ modflow_devtools/dfns/schema.json | 138 ++++++++ modflow_devtools/dfns/schema.py | 88 +++++ 196 files changed, 6771 insertions(+), 1 deletion(-) create mode 100644 modflow_devtools/dfns/observations.py diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.json index d9463636..525d85f7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.json @@ -289,5 +289,23 @@ "naux" ] } + }, + "observations": { + "cdb": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.toml index 560541d1..b5c57aed 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.toml @@ -265,3 +265,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.cdb.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.yaml index 566631bb..f2591573 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.yaml @@ -265,3 +265,14 @@ memory: dtype: string shape: - naux +observations: + cdb: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.json index cce45ccf..864ceb64 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.json @@ -297,5 +297,15 @@ "nbound" ] } + }, + "observations": { + "chd": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.toml index 0c55331f..236418ab 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.toml @@ -271,3 +271,9 @@ shape = [ "naux", "nbound", ] + +[observations.chd.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.yaml index d01dc122..0c76ff82 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.yaml @@ -268,3 +268,9 @@ memory: shape: - naux - nbound +observations: + chd: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.json index eda9b60d..d282d2b1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.json @@ -168,5 +168,15 @@ "nodes" ] } + }, + "observations": { + "ext-outflow": { + "id": { + "name": "node", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.toml index 913c558a..5b73d6f2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.toml @@ -152,3 +152,9 @@ dtype = "integer" shape = [ "nodes", ] + +[observations.ext-outflow.id] +name = "node" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.yaml index 90f9d757..131a679a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.yaml @@ -157,3 +157,9 @@ memory: dtype: integer shape: - nodes +observations: + ext-outflow: + id: + name: node + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.json index dbfce3c7..b9c079f5 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.json @@ -307,5 +307,15 @@ "naux" ] } + }, + "observations": { + "evp": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.toml index c4db8416..907e07fe 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.toml @@ -281,3 +281,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.evp.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.yaml index 7693aa32..949cead0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.yaml @@ -278,3 +278,9 @@ memory: dtype: string shape: - naux +observations: + evp: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.json index b726ce41..eaba3800 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.json @@ -299,5 +299,23 @@ "nbound" ] } + }, + "observations": { + "flw": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.toml index e058ac60..a3c46484 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.toml @@ -273,3 +273,15 @@ shape = [ "naux", "nbound", ] + +[observations.flw.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.yaml index 40bef500..a430f93f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.yaml @@ -270,3 +270,14 @@ memory: shape: - naux - nbound +observations: + flw: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.json index c97cb30b..5dec7718 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.json @@ -166,5 +166,26 @@ "nja" ] } + }, + "observations": { + "stage": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "flow-ja-face": { + "id": { + "arms": [ + "cellid" + ] + }, + "id2": { + "arms": [ + "cellid" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.toml index 43db7e90..51a92062 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.toml @@ -148,3 +148,18 @@ dtype = "integer" shape = [ "nja", ] + +[observations.stage.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id2] +arms = [ + "cellid", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.yaml index 7138080e..449e402b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.yaml @@ -160,3 +160,15 @@ memory: dtype: integer shape: - nja +observations: + stage: + id: + arms: + - cellid + flow-ja-face: + id: + arms: + - cellid + id2: + arms: + - cellid diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.json index 3f561a46..5d23571a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.json @@ -307,5 +307,15 @@ "naux" ] } + }, + "observations": { + "pcp": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.toml index f940eb04..bf7383ae 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.toml @@ -281,3 +281,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.pcp.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.yaml index c249ff5c..78788f61 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.yaml @@ -278,3 +278,9 @@ memory: dtype: string shape: - naux +observations: + pcp: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.json index 763473c4..90c68db7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.json @@ -325,5 +325,23 @@ "naux" ] } + }, + "observations": { + "zdg": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.toml index 593b6bb9..9702a2a2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.toml @@ -299,3 +299,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.zdg.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.yaml index f32d23d3..f6c909da 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.yaml @@ -305,3 +305,14 @@ memory: dtype: string shape: - naux +observations: + zdg: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.json index ef48370b..6d6e05b1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.json @@ -335,5 +335,15 @@ "naux" ] } + }, + "observations": { + "flow-ja-face": { + "id": { + "arms": [ + "index", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.toml index cd0fc48b..2429e83d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.toml @@ -311,3 +311,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.flow-ja-face.id] +arms = [ + "index", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml index 57cbcb72..0053970d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml @@ -312,3 +312,9 @@ memory: dtype: string shape: - naux +observations: + flow-ja-face: + id: + arms: + - index + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.json index 4d920e2f..89528e8f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.json @@ -363,5 +363,15 @@ "naux" ] } + }, + "observations": { + "flow-ja-face": { + "id": { + "arms": [ + "index", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml index 9e862441..ffe9bb0a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml @@ -335,3 +335,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.flow-ja-face.id] +arms = [ + "index", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml index 3d1716a7..550f210d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml @@ -358,3 +358,9 @@ memory: dtype: string shape: - naux +observations: + flow-ja-face: + id: + arms: + - index + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.json index f3e52343..4c730c19 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.json @@ -335,5 +335,15 @@ "naux" ] } + }, + "observations": { + "flow-ja-face": { + "id": { + "arms": [ + "index", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml index 5e68a92e..f4b9a2e8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml @@ -311,3 +311,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.flow-ja-face.id] +arms = [ + "index", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml index 8774294f..2417eb49 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml @@ -310,3 +310,9 @@ memory: dtype: string shape: - naux +observations: + flow-ja-face: + id: + arms: + - index + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.json index 93389f7e..59dd54b8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.json @@ -312,5 +312,15 @@ "naux" ] } + }, + "observations": { + "ctp": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.toml index b34c3bae..c2a51722 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.toml @@ -286,3 +286,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.ctp.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.yaml index d89c9f09..1c6117c9 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.yaml @@ -280,3 +280,9 @@ memory: dtype: string shape: - naux +observations: + ctp: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.json index 35ab8587..153f63c7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.json @@ -309,5 +309,23 @@ "naux" ] } + }, + "observations": { + "esl": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.toml index 822c6cb0..dab9273b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.toml @@ -283,3 +283,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.esl.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.yaml index d9a0b92c..622902e4 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.yaml @@ -279,3 +279,14 @@ memory: dtype: string shape: - naux +observations: + esl: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.json index d104907e..c95fc47e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.json @@ -435,5 +435,130 @@ "ncv" ] } + }, + "observations": { + "temperature": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "lke": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rainfall": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "evaporation": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "runoff": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-inflow": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "withdrawal": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-outflow": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + } + }, + "flow-ja-face": { + "id": { + "fk": "packagedata.lakeno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "fk": "packagedata.lakeno", + "arms": [ + "index" + ] + } + }, + "to-mvr": { + "id": { + "name": "outletno", + "arms": [ + "index", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.toml index b7cfcd55..b86c5bf3 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.toml @@ -397,3 +397,100 @@ dtype = "double" shape = [ "ncv", ] + +[observations.temperature.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.lke.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.rainfall.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.evaporation.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.runoff.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.ext-inflow.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.withdrawal.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.ext-outflow.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id] +fk = "packagedata.lakeno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id2] +fk = "packagedata.lakeno" +arms = [ + "index", +] + +[observations.to-mvr.id] +name = "outletno" +arms = [ + "index", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.yaml index 6c6f303f..81265711 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.yaml @@ -422,3 +422,86 @@ memory: dtype: double shape: - ncv +observations: + temperature: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + storage: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + constant: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + lke: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + rainfall: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + evaporation: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + runoff: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + ext-inflow: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + withdrawal: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + ext-outflow: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + flow-ja-face: + id: + fk: packagedata.lakeno + arms: + - index + - boundname + id2: + fk: packagedata.lakeno + arms: + - index + to-mvr: + id: + name: outletno + arms: + - index + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.json index e205d93e..a8844e5b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.json @@ -390,5 +390,94 @@ "ncv" ] } + }, + "observations": { + "temperature": { + "id": { + "fk": "packagedata.mawno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.mawno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.mawno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.mawno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rate": { + "id": { + "fk": "packagedata.mawno", + "arms": [ + "index", + "boundname" + ] + } + }, + "fw-rate": { + "id": { + "fk": "packagedata.mawno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rate-to-mvr": { + "id": { + "fk": "packagedata.mawno", + "arms": [ + "index", + "boundname" + ] + } + }, + "fw-rate-to-mvr": { + "id": { + "fk": "packagedata.mawno", + "arms": [ + "index", + "boundname" + ] + } + }, + "mwe": { + "id": { + "fk": "packagedata.mawno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "name": "iconn", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.toml index a9502f4c..1a7a9929 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.toml @@ -352,3 +352,72 @@ dtype = "double" shape = [ "ncv", ] + +[observations.temperature.id] +fk = "packagedata.mawno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.mawno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.mawno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.mawno" +arms = [ + "index", + "boundname", +] + +[observations.rate.id] +fk = "packagedata.mawno" +arms = [ + "index", + "boundname", +] + +[observations.fw-rate.id] +fk = "packagedata.mawno" +arms = [ + "index", + "boundname", +] + +[observations.rate-to-mvr.id] +fk = "packagedata.mawno" +arms = [ + "index", + "boundname", +] + +[observations.fw-rate-to-mvr.id] +fk = "packagedata.mawno" +arms = [ + "index", + "boundname", +] + +[observations.mwe.id] +fk = "packagedata.mawno" +arms = [ + "index", + "boundname", +] + +[observations.mwe.id2] +name = "iconn" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.yaml index 2154e425..1978f79f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.yaml @@ -375,3 +375,62 @@ memory: dtype: double shape: - ncv +observations: + temperature: + id: + fk: packagedata.mawno + arms: + - index + - boundname + storage: + id: + fk: packagedata.mawno + arms: + - index + - boundname + constant: + id: + fk: packagedata.mawno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.mawno + arms: + - index + - boundname + rate: + id: + fk: packagedata.mawno + arms: + - index + - boundname + fw-rate: + id: + fk: packagedata.mawno + arms: + - index + - boundname + rate-to-mvr: + id: + fk: packagedata.mawno + arms: + - index + - boundname + fw-rate-to-mvr: + id: + fk: packagedata.mawno + arms: + - index + - boundname + mwe: + id: + fk: packagedata.mawno + arms: + - index + - boundname + id2: + name: iconn + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.json index 2224ea12..ebf72b36 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.json @@ -225,5 +225,26 @@ "nja" ] } + }, + "observations": { + "temperature": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "flow-ja-face": { + "id": { + "arms": [ + "cellid" + ] + }, + "id2": { + "arms": [ + "cellid" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.toml index fa7543f3..94ffddac 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.toml @@ -203,3 +203,18 @@ dtype = "integer" shape = [ "nja", ] + +[observations.temperature.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id2] +arms = [ + "cellid", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.yaml index 36534a95..dc241903 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.yaml @@ -203,3 +203,15 @@ memory: dtype: integer shape: - nja +observations: + temperature: + id: + arms: + - cellid + flow-ja-face: + id: + arms: + - cellid + id2: + arms: + - cellid diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.json index a0df9c2f..ebfb225c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.json @@ -455,5 +455,130 @@ "ncv" ] } + }, + "observations": { + "temperature": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "sfe": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "strmbd-cond": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rainfall": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "evaporation": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "runoff": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-inflow": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-outflow": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + } + }, + "flow-ja-face": { + "id": { + "fk": "packagedata.rno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "fk": "packagedata.rno", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.toml index 497d0364..e4d47d17 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.toml @@ -417,3 +417,100 @@ dtype = "double" shape = [ "ncv", ] + +[observations.temperature.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.sfe.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.strmbd-cond.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.to-mvr.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.rainfall.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.evaporation.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.runoff.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.ext-inflow.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.ext-outflow.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id] +fk = "packagedata.rno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id2] +fk = "packagedata.rno" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.yaml index 1acb015e..46c659b8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.yaml @@ -438,3 +438,86 @@ memory: dtype: double shape: - ncv +observations: + temperature: + id: + fk: packagedata.rno + arms: + - index + - boundname + storage: + id: + fk: packagedata.rno + arms: + - index + - boundname + constant: + id: + fk: packagedata.rno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.rno + arms: + - index + - boundname + sfe: + id: + fk: packagedata.rno + arms: + - index + - boundname + strmbd-cond: + id: + fk: packagedata.rno + arms: + - index + - boundname + to-mvr: + id: + fk: packagedata.rno + arms: + - index + - boundname + rainfall: + id: + fk: packagedata.rno + arms: + - index + - boundname + evaporation: + id: + fk: packagedata.rno + arms: + - index + - boundname + runoff: + id: + fk: packagedata.rno + arms: + - index + - boundname + ext-inflow: + id: + fk: packagedata.rno + arms: + - index + - boundname + ext-outflow: + id: + fk: packagedata.rno + arms: + - index + - boundname + flow-ja-face: + id: + fk: packagedata.rno + arms: + - index + - boundname + id2: + fk: packagedata.rno + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.json index 34e4922d..d95d84d7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.json @@ -373,5 +373,112 @@ "ncv" ] } + }, + "observations": { + "temperature": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "uze": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "thermal-equil": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "infiltration": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rej-inf": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "uzet": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rej-inf-to-mvr": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + } + }, + "flow-ja-face": { + "id": { + "fk": "packagedata.uzfno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "fk": "packagedata.uzfno", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.toml index 8ad3f953..c9325463 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.toml @@ -335,3 +335,86 @@ dtype = "double" shape = [ "ncv", ] + +[observations.temperature.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.uze.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.thermal-equil.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.infiltration.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.rej-inf.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.uzet.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.rej-inf-to-mvr.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id] +fk = "packagedata.uzfno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id2] +fk = "packagedata.uzfno" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.yaml index 52bed8ff..0c2a4186 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.yaml @@ -364,3 +364,74 @@ memory: dtype: double shape: - ncv +observations: + temperature: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + storage: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + constant: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + uze: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + thermal-equil: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + infiltration: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + rej-inf: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + uzet: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + rej-inf-to-mvr: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + flow-ja-face: + id: + fk: packagedata.uzfno + arms: + - index + - boundname + id2: + fk: packagedata.uzfno + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.json index 235535cc..80ba6273 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.json @@ -93,5 +93,23 @@ "source": "maxbound", "type": "integer" } + }, + "observations": { + "api": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.toml index 23bc645a..8a007dd2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.toml @@ -77,3 +77,15 @@ type = "integer" set_in = "ar" source = "maxbound" type = "integer" + +[observations.api.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.yaml index d52574b7..84777456 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.yaml @@ -82,3 +82,14 @@ memory: set_in: ar source: maxbound type: integer +observations: + api: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.json index e8bafef8..d45268d6 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.json @@ -319,5 +319,15 @@ "naux" ] } + }, + "observations": { + "chd": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.toml index 0ddc9b70..4dfa45f4 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.toml @@ -293,3 +293,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.chd.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.yaml index d526faad..d2520332 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.yaml @@ -286,3 +286,9 @@ memory: dtype: string shape: - naux +observations: + chd: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.json index 21ef3126..c04b7fee 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.json @@ -305,5 +305,15 @@ "naux" ] } + }, + "observations": { + "chd": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.toml index 1a864549..45b6c825 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.toml @@ -281,3 +281,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.chd.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.yaml index 02b278e9..476fb9b0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.yaml @@ -271,3 +271,9 @@ memory: dtype: string shape: - naux +observations: + chd: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.json index 1716a9c2..aacac923 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.json @@ -700,5 +700,326 @@ "nodes" ] } + }, + "observations": { + "csub": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index", + "boundname" + ] + } + }, + "inelastic-csub": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index", + "boundname" + ] + } + }, + "elastic-csub": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index", + "boundname" + ] + } + }, + "delay-flowtop": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index", + "boundname" + ] + } + }, + "delay-flowbot": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index", + "boundname" + ] + } + }, + "sk": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + } + }, + "ske": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + } + }, + "theta": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + } + }, + "thickness": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + } + }, + "interbed-compaction": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + } + }, + "interbed-compaction-pct": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + } + }, + "inelastic-compaction": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + } + }, + "elastic-compaction": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + } + }, + "delay-head": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + }, + "id2": { + "name": "idcellno", + "arms": [ + "index" + ] + } + }, + "delay-gstress": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + }, + "id2": { + "name": "idcellno", + "arms": [ + "index" + ] + } + }, + "delay-estress": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + }, + "id2": { + "name": "idcellno", + "arms": [ + "index" + ] + } + }, + "delay-preconstress": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + }, + "id2": { + "name": "idcellno", + "arms": [ + "index" + ] + } + }, + "delay-compaction": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + }, + "id2": { + "name": "idcellno", + "arms": [ + "index" + ] + } + }, + "delay-thickness": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + }, + "id2": { + "name": "idcellno", + "arms": [ + "index" + ] + } + }, + "delay-theta": { + "id": { + "fk": "packagedata.icsubno", + "arms": [ + "index" + ] + }, + "id2": { + "name": "idcellno", + "arms": [ + "index" + ] + } + }, + "coarse-csub": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "csub-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "wcomp-csub-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "sk-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "ske-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "estress-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "gstress-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "preconstress-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "coarse-compaction": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "compaction-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "inelastic-compaction-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "elastic-compaction-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "coarse-thickness": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "thickness-cell": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "coarse-theta": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "theta-cell": { + "id": { + "arms": [ + "cellid" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.toml index 612eca81..a2255815 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.toml @@ -646,3 +646,250 @@ dtype = "double" shape = [ "nodes", ] + +[observations.csub.id] +fk = "packagedata.icsubno" +arms = [ + "index", + "boundname", +] + +[observations.inelastic-csub.id] +fk = "packagedata.icsubno" +arms = [ + "index", + "boundname", +] + +[observations.elastic-csub.id] +fk = "packagedata.icsubno" +arms = [ + "index", + "boundname", +] + +[observations.delay-flowtop.id] +fk = "packagedata.icsubno" +arms = [ + "index", + "boundname", +] + +[observations.delay-flowbot.id] +fk = "packagedata.icsubno" +arms = [ + "index", + "boundname", +] + +[observations.sk.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.ske.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.theta.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.thickness.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.interbed-compaction.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.interbed-compaction-pct.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.inelastic-compaction.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.elastic-compaction.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.delay-head.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.delay-head.id2] +name = "idcellno" +arms = [ + "index", +] + +[observations.delay-gstress.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.delay-gstress.id2] +name = "idcellno" +arms = [ + "index", +] + +[observations.delay-estress.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.delay-estress.id2] +name = "idcellno" +arms = [ + "index", +] + +[observations.delay-preconstress.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.delay-preconstress.id2] +name = "idcellno" +arms = [ + "index", +] + +[observations.delay-compaction.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.delay-compaction.id2] +name = "idcellno" +arms = [ + "index", +] + +[observations.delay-thickness.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.delay-thickness.id2] +name = "idcellno" +arms = [ + "index", +] + +[observations.delay-theta.id] +fk = "packagedata.icsubno" +arms = [ + "index", +] + +[observations.delay-theta.id2] +name = "idcellno" +arms = [ + "index", +] + +[observations.coarse-csub.id] +arms = [ + "cellid", +] + +[observations.csub-cell.id] +arms = [ + "cellid", +] + +[observations.wcomp-csub-cell.id] +arms = [ + "cellid", +] + +[observations.sk-cell.id] +arms = [ + "cellid", +] + +[observations.ske-cell.id] +arms = [ + "cellid", +] + +[observations.estress-cell.id] +arms = [ + "cellid", +] + +[observations.gstress-cell.id] +arms = [ + "cellid", +] + +[observations.preconstress-cell.id] +arms = [ + "cellid", +] + +[observations.coarse-compaction.id] +arms = [ + "cellid", +] + +[observations.compaction-cell.id] +arms = [ + "cellid", +] + +[observations.inelastic-compaction-cell.id] +arms = [ + "cellid", +] + +[observations.elastic-compaction-cell.id] +arms = [ + "cellid", +] + +[observations.coarse-thickness.id] +arms = [ + "cellid", +] + +[observations.thickness-cell.id] +arms = [ + "cellid", +] + +[observations.coarse-theta.id] +arms = [ + "cellid", +] + +[observations.theta-cell.id] +arms = [ + "cellid", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.yaml index e0ebbab2..b08f79c2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.yaml @@ -658,3 +658,201 @@ memory: dtype: double shape: - nodes +observations: + csub: + id: + fk: packagedata.icsubno + arms: + - index + - boundname + inelastic-csub: + id: + fk: packagedata.icsubno + arms: + - index + - boundname + elastic-csub: + id: + fk: packagedata.icsubno + arms: + - index + - boundname + delay-flowtop: + id: + fk: packagedata.icsubno + arms: + - index + - boundname + delay-flowbot: + id: + fk: packagedata.icsubno + arms: + - index + - boundname + sk: + id: + fk: packagedata.icsubno + arms: + - index + ske: + id: + fk: packagedata.icsubno + arms: + - index + theta: + id: + fk: packagedata.icsubno + arms: + - index + thickness: + id: + fk: packagedata.icsubno + arms: + - index + interbed-compaction: + id: + fk: packagedata.icsubno + arms: + - index + interbed-compaction-pct: + id: + fk: packagedata.icsubno + arms: + - index + inelastic-compaction: + id: + fk: packagedata.icsubno + arms: + - index + elastic-compaction: + id: + fk: packagedata.icsubno + arms: + - index + delay-head: + id: + fk: packagedata.icsubno + arms: + - index + id2: + name: idcellno + arms: + - index + delay-gstress: + id: + fk: packagedata.icsubno + arms: + - index + id2: + name: idcellno + arms: + - index + delay-estress: + id: + fk: packagedata.icsubno + arms: + - index + id2: + name: idcellno + arms: + - index + delay-preconstress: + id: + fk: packagedata.icsubno + arms: + - index + id2: + name: idcellno + arms: + - index + delay-compaction: + id: + fk: packagedata.icsubno + arms: + - index + id2: + name: idcellno + arms: + - index + delay-thickness: + id: + fk: packagedata.icsubno + arms: + - index + id2: + name: idcellno + arms: + - index + delay-theta: + id: + fk: packagedata.icsubno + arms: + - index + id2: + name: idcellno + arms: + - index + coarse-csub: + id: + arms: + - cellid + csub-cell: + id: + arms: + - cellid + wcomp-csub-cell: + id: + arms: + - cellid + sk-cell: + id: + arms: + - cellid + ske-cell: + id: + arms: + - cellid + estress-cell: + id: + arms: + - cellid + gstress-cell: + id: + arms: + - cellid + preconstress-cell: + id: + arms: + - cellid + coarse-compaction: + id: + arms: + - cellid + compaction-cell: + id: + arms: + - cellid + inelastic-compaction-cell: + id: + arms: + - cellid + elastic-compaction-cell: + id: + arms: + - cellid + coarse-thickness: + id: + arms: + - cellid + thickness-cell: + id: + arms: + - cellid + coarse-theta: + id: + arms: + - cellid + theta-cell: + id: + arms: + - cellid diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.json index efb00ac2..48bfa638 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.json @@ -339,5 +339,23 @@ "naux" ] } + }, + "observations": { + "drn": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.toml index f5a3a2d8..169df73e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.toml @@ -313,3 +313,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.drn.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.yaml index 834f46ad..bb60b857 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.yaml @@ -315,3 +315,14 @@ memory: dtype: string shape: - naux +observations: + drn: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.json index c3aa4c66..7f74cff5 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.json @@ -330,5 +330,23 @@ "naux" ] } + }, + "observations": { + "drn": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.toml index 9e59d1ed..b56f5857 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.toml @@ -306,3 +306,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.drn.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.yaml index 3f50220e..10d7afc6 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.yaml @@ -302,3 +302,14 @@ memory: dtype: string shape: - naux +observations: + drn: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.json index 64bb8377..ccf58cc3 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.json @@ -383,5 +383,15 @@ "naux" ] } + }, + "observations": { + "evt": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.toml index 69e10ecf..0f59ad88 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.toml @@ -357,3 +357,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.evt.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.yaml index 3e31b32f..ae2c31a9 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.yaml @@ -361,3 +361,9 @@ memory: dtype: string shape: - naux +observations: + evt: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.json index 5f517620..4c34ff91 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.json @@ -341,5 +341,15 @@ "naux" ] } + }, + "observations": { + "evt": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.toml index 1193a834..e85598b2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.toml @@ -319,3 +319,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.evt.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.yaml index 8b3203db..77163fea 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.yaml @@ -307,3 +307,9 @@ memory: dtype: string shape: - naux +observations: + evt: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.json index 5f6e6d9e..44b7b8dd 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.json @@ -321,5 +321,23 @@ "naux" ] } + }, + "observations": { + "ghb": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.toml index 3dd305d8..9b552f82 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.toml @@ -295,3 +295,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.ghb.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.yaml index 29c410dd..07aaf199 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.yaml @@ -293,3 +293,14 @@ memory: dtype: string shape: - naux +observations: + ghb: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.json index 4501d814..c6825637 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.json @@ -312,5 +312,23 @@ "naux" ] } + }, + "observations": { + "ghb": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.toml index 1ee3341f..78a567d1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.toml @@ -288,3 +288,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.ghb.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml index a96ae5b9..ddebc348 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml @@ -280,3 +280,14 @@ memory: dtype: string shape: - naux +observations: + ghb: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.json index ef6ea488..baddb1cd 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.json @@ -774,5 +774,196 @@ "source": "ntables", "type": "integer" } + }, + "observations": { + "stage": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-inflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "outlet-inflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "inflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rainfall": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "runoff": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "withdrawal": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "evaporation": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "volume": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "surface-area": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "lak": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "name": "iconn", + "arms": [ + "index" + ] + } + }, + "wetted-area": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "name": "iconn", + "arms": [ + "index" + ] + } + }, + "conductance": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "name": "iconn", + "arms": [ + "index" + ] + } + }, + "ext-outflow": { + "id": { + "fk": "outlets.outletno", + "arms": [ + "index", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "fk": "outlets.outletno", + "arms": [ + "index", + "boundname" + ] + } + }, + "outlet": { + "id": { + "fk": "outlets.outletno", + "arms": [ + "index", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.toml index 09eadcf6..5e53554f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.toml @@ -690,3 +690,154 @@ type = "integer" set_in = "ar" source = "ntables" type = "integer" + +[observations.stage.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.ext-inflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.outlet-inflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.inflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rainfall.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.runoff.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.withdrawal.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.evaporation.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.volume.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.surface-area.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.lak.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.lak.id2] +name = "iconn" +arms = [ + "index", +] + +[observations.wetted-area.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.wetted-area.id2] +name = "iconn" +arms = [ + "index", +] + +[observations.conductance.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.conductance.id2] +name = "iconn" +arms = [ + "index", +] + +[observations.ext-outflow.id] +fk = "outlets.outletno" +arms = [ + "index", + "boundname", +] + +[observations.to-mvr.id] +fk = "outlets.outletno" +arms = [ + "index", + "boundname", +] + +[observations.outlet.id] +fk = "outlets.outletno" +arms = [ + "index", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.yaml index decf60fb..ebc56b98 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.yaml @@ -836,3 +836,130 @@ memory: set_in: ar source: ntables type: integer +observations: + stage: + id: + fk: packagedata.ifno + arms: + - index + - boundname + ext-inflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + outlet-inflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + inflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rainfall: + id: + fk: packagedata.ifno + arms: + - index + - boundname + runoff: + id: + fk: packagedata.ifno + arms: + - index + - boundname + withdrawal: + id: + fk: packagedata.ifno + arms: + - index + - boundname + evaporation: + id: + fk: packagedata.ifno + arms: + - index + - boundname + storage: + id: + fk: packagedata.ifno + arms: + - index + - boundname + constant: + id: + fk: packagedata.ifno + arms: + - index + - boundname + volume: + id: + fk: packagedata.ifno + arms: + - index + - boundname + surface-area: + id: + fk: packagedata.ifno + arms: + - index + - boundname + lak: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + name: iconn + arms: + - index + wetted-area: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + name: iconn + arms: + - index + conductance: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + name: iconn + arms: + - index + ext-outflow: + id: + fk: outlets.outletno + arms: + - index + - boundname + to-mvr: + id: + fk: outlets.outletno + arms: + - index + - boundname + outlet: + id: + fk: outlets.outletno + arms: + - index + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.json index b5c07be7..4df37b2d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.json @@ -504,5 +504,118 @@ "source": "nmawwells", "type": "integer" } + }, + "observations": { + "head": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rate": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rate-to-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "fw-rate": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "fw-to-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "fw-conductance": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "maw": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "name": "icon", + "arms": [ + "index" + ] + } + }, + "conductance": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "name": "icon", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.toml index e633003f..0d4175c0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.toml @@ -450,3 +450,92 @@ tagged = false set_in = "ar" source = "nmawwells" type = "integer" + +[observations.head.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rate.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rate-to-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.fw-rate.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.fw-to-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.fw-conductance.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.maw.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.maw.id2] +name = "icon" +arms = [ + "index", +] + +[observations.conductance.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.conductance.id2] +name = "icon" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.yaml index 40738e1a..ab9b63e3 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.yaml @@ -580,3 +580,78 @@ memory: set_in: ar source: nmawwells type: integer +observations: + head: + id: + fk: packagedata.ifno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rate: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rate-to-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + fw-rate: + id: + fk: packagedata.ifno + arms: + - index + - boundname + fw-to-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + storage: + id: + fk: packagedata.ifno + arms: + - index + - boundname + constant: + id: + fk: packagedata.ifno + arms: + - index + - boundname + fw-conductance: + id: + fk: packagedata.ifno + arms: + - index + - boundname + maw: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + name: icon + arms: + - index + conductance: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + name: icon + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.json index 1fb07bd7..612ad9ec 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.json @@ -233,5 +233,33 @@ "nja" ] } + }, + "observations": { + "head": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "drawdown": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "flow-ja-face": { + "id": { + "arms": [ + "cellid" + ] + }, + "id2": { + "arms": [ + "cellid" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.toml index c2ff48a4..890193b7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.toml @@ -209,3 +209,23 @@ dtype = "integer" shape = [ "nja", ] + +[observations.head.id] +arms = [ + "cellid", +] + +[observations.drawdown.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id2] +arms = [ + "cellid", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.yaml index ab17a4da..e5d20f44 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.yaml @@ -213,3 +213,19 @@ memory: dtype: integer shape: - nja +observations: + head: + id: + arms: + - cellid + drawdown: + id: + arms: + - cellid + flow-ja-face: + id: + arms: + - cellid + id2: + arms: + - cellid diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.json index 291c2c89..c07b9846 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.json @@ -313,5 +313,15 @@ "naux" ] } + }, + "observations": { + "rch": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.toml index 3c23d0cd..f7b45957 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.toml @@ -287,3 +287,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.rch.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.yaml index acc180cc..8a06807e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.yaml @@ -284,3 +284,9 @@ memory: dtype: string shape: - naux +observations: + rch: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.json index fff530d7..336dec70 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.json @@ -319,5 +319,15 @@ "naux" ] } + }, + "observations": { + "rch": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.toml index e015fb54..5536bbc8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.toml @@ -297,3 +297,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.rch.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.yaml index 67f1f062..56c7f447 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.yaml @@ -291,3 +291,9 @@ memory: dtype: string shape: - naux +observations: + rch: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.json index 1cafa539..6c918ed7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.json @@ -328,5 +328,23 @@ "naux" ] } + }, + "observations": { + "riv": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.toml index 14d31586..6e330a2c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.toml @@ -302,3 +302,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.riv.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.yaml index dd530ee2..992f0cb7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.yaml @@ -300,3 +300,14 @@ memory: dtype: string shape: - naux +observations: + riv: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.json index e3f96fb6..54f89979 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.json @@ -324,5 +324,23 @@ "naux" ] } + }, + "observations": { + "riv": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.toml index cffe3dfc..5322f5e5 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.toml @@ -300,3 +300,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.riv.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.yaml index 7be0aa41..3e667fd2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.yaml @@ -289,3 +289,14 @@ memory: dtype: string shape: - naux +observations: + riv: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.json index dcbb6720..08a2b269 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.json @@ -755,5 +755,160 @@ "maxbound" ] } + }, + "observations": { + "stage": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-inflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "inflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rainfall": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "runoff": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "sfr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "evaporation": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "outflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-outflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "upstream-flow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "downstream-flow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "depth": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "wet-perimeter": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "wet-area": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "wet-width": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.toml index 1f50922f..963a5d3e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.toml @@ -683,3 +683,122 @@ dtype = "integer" shape = [ "maxbound", ] + +[observations.stage.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.ext-inflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.inflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rainfall.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.runoff.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.sfr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.evaporation.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.outflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.ext-outflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.to-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.upstream-flow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.downstream-flow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.depth.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.wet-perimeter.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.wet-area.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.wet-width.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.yaml index f0f98ec5..ff41c450 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.yaml @@ -801,3 +801,106 @@ memory: dtype: integer shape: - maxbound +observations: + stage: + id: + fk: packagedata.ifno + arms: + - index + - boundname + ext-inflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + inflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rainfall: + id: + fk: packagedata.ifno + arms: + - index + - boundname + runoff: + id: + fk: packagedata.ifno + arms: + - index + - boundname + sfr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + evaporation: + id: + fk: packagedata.ifno + arms: + - index + - boundname + outflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + ext-outflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + to-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + upstream-flow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + downstream-flow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + depth: + id: + fk: packagedata.ifno + arms: + - index + - boundname + wet-perimeter: + id: + fk: packagedata.ifno + arms: + - index + - boundname + wet-area: + id: + fk: packagedata.ifno + arms: + - index + - boundname + wet-width: + id: + fk: packagedata.ifno + arms: + - index + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.json index 60a27947..7e70914b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.json @@ -436,5 +436,120 @@ "source": "nwavesets", "type": "integer" } + }, + "observations": { + "uzf-gwrch": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "uzf-gwd": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "uzf-gwd-to-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "uzf-gwet": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "infiltration": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rej-inf": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rej-inf-to-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "uzet": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "net-infiltration": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "water-content": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "type": "double", + "name": "depth", + "with_boundname": true + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.toml index 2d48df10..f02a0659 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.toml @@ -398,3 +398,92 @@ type = "integer" set_in = "ar" source = "nwavesets" type = "integer" + +[observations.uzf-gwrch.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.uzf-gwd.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.uzf-gwd-to-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.uzf-gwet.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.infiltration.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rej-inf.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rej-inf-to-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.uzet.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.net-infiltration.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.water-content.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.water-content.id2] +type = "double" +name = "depth" +with_boundname = true diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.yaml index ad89b5b0..914560d6 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.yaml @@ -460,3 +460,80 @@ memory: set_in: ar source: nwavesets type: integer +observations: + uzf-gwrch: + id: + fk: packagedata.ifno + arms: + - index + - boundname + uzf-gwd: + id: + fk: packagedata.ifno + arms: + - index + - boundname + uzf-gwd-to-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + uzf-gwet: + id: + fk: packagedata.ifno + arms: + - index + - boundname + infiltration: + id: + fk: packagedata.ifno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rej-inf: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rej-inf-to-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + uzet: + id: + fk: packagedata.ifno + arms: + - index + - boundname + storage: + id: + fk: packagedata.ifno + arms: + - index + - boundname + net-infiltration: + id: + fk: packagedata.ifno + arms: + - index + - boundname + water-content: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + type: double + name: depth + with_boundname: true diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.json index 67b8f92a..3f78f05f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.json @@ -359,5 +359,31 @@ "naux" ] } + }, + "observations": { + "wel": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "wel-reduction": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.toml index 1c5d9589..067b1b37 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.toml @@ -331,3 +331,21 @@ dtype = "string" shape = [ "naux", ] + +[observations.wel.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] + +[observations.wel-reduction.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.yaml index cca0a0a4..75cd5ecc 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.yaml @@ -336,3 +336,19 @@ memory: dtype: string shape: - naux +observations: + wel: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname + wel-reduction: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.json index 6750148e..fbf58a11 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.json @@ -345,5 +345,31 @@ "naux" ] } + }, + "observations": { + "wel": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "wel-reduction": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.toml index f0c5489f..5546c93a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.toml @@ -319,3 +319,21 @@ dtype = "string" shape = [ "naux", ] + +[observations.wel.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] + +[observations.wel-reduction.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.yaml index 3272797d..7d0b9339 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.yaml @@ -322,3 +322,19 @@ memory: dtype: string shape: - naux +observations: + wel: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname + wel-reduction: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.json index 1d6c1def..46ac5feb 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.json @@ -93,5 +93,23 @@ "source": "maxbound", "type": "integer" } + }, + "observations": { + "api": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.toml index 58b0483d..6793e444 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.toml @@ -77,3 +77,15 @@ type = "integer" set_in = "ar" source = "maxbound" type = "integer" + +[observations.api.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.yaml index 94997ac8..090bab2a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.yaml @@ -82,3 +82,14 @@ memory: set_in: ar source: maxbound type: integer +observations: + api: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.json index 17da5f4b..70fa73f6 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.json @@ -312,5 +312,15 @@ "naux" ] } + }, + "observations": { + "cnc": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.toml index b28213c5..d3efe583 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.toml @@ -286,3 +286,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.cnc.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.yaml index 2d206a27..c5f8a858 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.yaml @@ -280,3 +280,9 @@ memory: dtype: string shape: - naux +observations: + cnc: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.json index 365a6eb8..93517a2a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.json @@ -403,5 +403,136 @@ "ncv" ] } + }, + "observations": { + "concentration": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rainfall": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "evaporation": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "runoff": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-inflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "withdrawal": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-outflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "flow-ja-face": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "fk": "packagedata.ifno", + "arms": [ + "index" + ] + } + }, + "to-mvr": { + "id": { + "name": "outletno", + "arms": [ + "index", + "boundname" + ] + } + }, + "lkt": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "name": "iconn", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.toml index 315ff2e4..e845fece 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.toml @@ -365,3 +365,106 @@ dtype = "double" shape = [ "ncv", ] + +[observations.concentration.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rainfall.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.evaporation.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.runoff.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.ext-inflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.withdrawal.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.ext-outflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id2] +fk = "packagedata.ifno" +arms = [ + "index", +] + +[observations.to-mvr.id] +name = "outletno" +arms = [ + "index", + "boundname", +] + +[observations.lkt.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.lkt.id2] +name = "iconn" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.yaml index f042f9df..67d5f244 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.yaml @@ -395,3 +395,90 @@ memory: dtype: double shape: - ncv +observations: + concentration: + id: + fk: packagedata.ifno + arms: + - index + - boundname + storage: + id: + fk: packagedata.ifno + arms: + - index + - boundname + constant: + id: + fk: packagedata.ifno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rainfall: + id: + fk: packagedata.ifno + arms: + - index + - boundname + evaporation: + id: + fk: packagedata.ifno + arms: + - index + - boundname + runoff: + id: + fk: packagedata.ifno + arms: + - index + - boundname + ext-inflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + withdrawal: + id: + fk: packagedata.ifno + arms: + - index + - boundname + ext-outflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + flow-ja-face: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + fk: packagedata.ifno + arms: + - index + to-mvr: + id: + name: outletno + arms: + - index + - boundname + lkt: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + name: iconn + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.json index 28970c7b..7099eb2d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.json @@ -358,5 +358,94 @@ "ncv" ] } + }, + "observations": { + "concentration": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rate": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "fw-rate": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rate-to-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "fw-rate-to-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "mwt": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "name": "iconn", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.toml index 2f20d3b7..e14eed4f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.toml @@ -320,3 +320,72 @@ dtype = "double" shape = [ "ncv", ] + +[observations.concentration.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rate.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.fw-rate.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rate-to-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.fw-rate-to-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.mwt.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.mwt.id2] +name = "iconn" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.yaml index 1639a729..d127da5f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.yaml @@ -347,3 +347,62 @@ memory: dtype: double shape: - ncv +observations: + concentration: + id: + fk: packagedata.ifno + arms: + - index + - boundname + storage: + id: + fk: packagedata.ifno + arms: + - index + - boundname + constant: + id: + fk: packagedata.ifno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rate: + id: + fk: packagedata.ifno + arms: + - index + - boundname + fw-rate: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rate-to-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + fw-rate-to-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + mwt: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + name: iconn + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.json index f0ff3d3b..02690c1b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.json @@ -225,5 +225,26 @@ "nja" ] } + }, + "observations": { + "concentration": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "flow-ja-face": { + "id": { + "arms": [ + "cellid" + ] + }, + "id2": { + "arms": [ + "cellid" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.toml index 4f4aacdd..0ed5b02f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.toml @@ -203,3 +203,18 @@ dtype = "integer" shape = [ "nja", ] + +[observations.concentration.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id2] +arms = [ + "cellid", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.yaml index 6eddd197..57667d68 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.yaml @@ -203,3 +203,15 @@ memory: dtype: integer shape: - nja +observations: + concentration: + id: + arms: + - cellid + flow-ja-face: + id: + arms: + - cellid + id2: + arms: + - cellid diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.json index a847b037..08615d24 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.json @@ -423,5 +423,121 @@ "ncv" ] } + }, + "observations": { + "concentration": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "sft": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rainfall": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "evaporation": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "runoff": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-inflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "ext-outflow": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "flow-ja-face": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "fk": "packagedata.ifno", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.toml index a0342685..de1c0d7c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.toml @@ -385,3 +385,93 @@ dtype = "double" shape = [ "ncv", ] + +[observations.concentration.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.sft.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.to-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rainfall.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.evaporation.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.runoff.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.ext-inflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.ext-outflow.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id2] +fk = "packagedata.ifno" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.yaml index 13bbac1b..2574a856 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.yaml @@ -409,3 +409,80 @@ memory: dtype: double shape: - ncv +observations: + concentration: + id: + fk: packagedata.ifno + arms: + - index + - boundname + storage: + id: + fk: packagedata.ifno + arms: + - index + - boundname + constant: + id: + fk: packagedata.ifno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + sft: + id: + fk: packagedata.ifno + arms: + - index + - boundname + to-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rainfall: + id: + fk: packagedata.ifno + arms: + - index + - boundname + evaporation: + id: + fk: packagedata.ifno + arms: + - index + - boundname + runoff: + id: + fk: packagedata.ifno + arms: + - index + - boundname + ext-inflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + ext-outflow: + id: + fk: packagedata.ifno + arms: + - index + - boundname + flow-ja-face: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + fk: packagedata.ifno + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.json index a84aeba6..26a2c85e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.json @@ -320,5 +320,23 @@ "naux" ] } + }, + "observations": { + "src": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.toml index 57078a9b..f3097d7d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.toml @@ -294,3 +294,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.src.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.yaml index 4958eba1..d2dd7410 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.yaml @@ -298,3 +298,14 @@ memory: dtype: string shape: - naux +observations: + src: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.json index feac2831..eb3bc3bb 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.json @@ -373,5 +373,103 @@ "ncv" ] } + }, + "observations": { + "concentration": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "storage": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "constant": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "from-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "uzt": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "infiltration": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rej-inf": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "uzet": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "rej-inf-to-mvr": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + } + }, + "flow-ja-face": { + "id": { + "fk": "packagedata.ifno", + "arms": [ + "index", + "boundname" + ] + }, + "id2": { + "fk": "packagedata.ifno", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.toml index 016434a0..40ddadab 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.toml @@ -335,3 +335,79 @@ dtype = "double" shape = [ "ncv", ] + +[observations.concentration.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.storage.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.constant.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.from-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.uzt.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.infiltration.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rej-inf.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.uzet.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.rej-inf-to-mvr.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id] +fk = "packagedata.ifno" +arms = [ + "index", + "boundname", +] + +[observations.flow-ja-face.id2] +fk = "packagedata.ifno" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.yaml index ba0ea976..e0b823e9 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.yaml @@ -365,3 +365,68 @@ memory: dtype: double shape: - ncv +observations: + concentration: + id: + fk: packagedata.ifno + arms: + - index + - boundname + storage: + id: + fk: packagedata.ifno + arms: + - index + - boundname + constant: + id: + fk: packagedata.ifno + arms: + - index + - boundname + from-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + uzt: + id: + fk: packagedata.ifno + arms: + - index + - boundname + infiltration: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rej-inf: + id: + fk: packagedata.ifno + arms: + - index + - boundname + uzet: + id: + fk: packagedata.ifno + arms: + - index + - boundname + rej-inf-to-mvr: + id: + fk: packagedata.ifno + arms: + - index + - boundname + flow-ja-face: + id: + fk: packagedata.ifno + arms: + - index + - boundname + id2: + fk: packagedata.ifno + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.json index 90d5aa62..9362ae2c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.json @@ -288,5 +288,23 @@ "naux" ] } + }, + "observations": { + "cdb": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.toml index 4a48d23a..f4d00d80 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.toml @@ -264,3 +264,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.cdb.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.yaml index 3499950a..0e97c83c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.yaml @@ -264,3 +264,14 @@ memory: dtype: string shape: - naux +observations: + cdb: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.json index 95515e97..cb1f3d3b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.json @@ -297,5 +297,15 @@ "nbound" ] } + }, + "observations": { + "chd": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.toml index db75bfbb..8c943975 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.toml @@ -271,3 +271,9 @@ shape = [ "naux", "nbound", ] + +[observations.chd.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.yaml index c2fd4928..9d619aab 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.yaml @@ -268,3 +268,9 @@ memory: shape: - naux - nbound +observations: + chd: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.json index 8899ec4a..162f9cea 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.json @@ -168,5 +168,15 @@ "nodes" ] } + }, + "observations": { + "ext-outflow": { + "id": { + "name": "node", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.toml index 6e0e358e..85fe430b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.toml @@ -152,3 +152,9 @@ dtype = "integer" shape = [ "nodes", ] + +[observations.ext-outflow.id] +name = "node" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.yaml index 5bf91695..bb121727 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.yaml @@ -157,3 +157,9 @@ memory: dtype: integer shape: - nodes +observations: + ext-outflow: + id: + name: node + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.json index ea878c70..41a1e863 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.json @@ -307,5 +307,15 @@ "naux" ] } + }, + "observations": { + "evp": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.toml index 0134f246..f73e724f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.toml @@ -281,3 +281,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.evp.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.yaml index b9f89752..6fe48427 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.yaml @@ -278,3 +278,9 @@ memory: dtype: string shape: - naux +observations: + evp: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.json index 38a83789..2648cb38 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.json @@ -299,5 +299,23 @@ "nbound" ] } + }, + "observations": { + "flw": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.toml index e46420e1..1e6a748f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.toml @@ -273,3 +273,15 @@ shape = [ "naux", "nbound", ] + +[observations.flw.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.yaml index e39a7d2e..e314732d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.yaml @@ -270,3 +270,14 @@ memory: shape: - naux - nbound +observations: + flw: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.json index 0cf9a043..feedc4da 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.json @@ -166,5 +166,26 @@ "nja" ] } + }, + "observations": { + "stage": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "flow-ja-face": { + "id": { + "arms": [ + "cellid" + ] + }, + "id2": { + "arms": [ + "cellid" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.toml index 94a6ee57..5b665f43 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.toml @@ -148,3 +148,18 @@ dtype = "integer" shape = [ "nja", ] + +[observations.stage.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id2] +arms = [ + "cellid", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.yaml index 23b48774..101a49e8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.yaml @@ -160,3 +160,15 @@ memory: dtype: integer shape: - nja +observations: + stage: + id: + arms: + - cellid + flow-ja-face: + id: + arms: + - cellid + id2: + arms: + - cellid diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.json index 1ec3996d..8f0d6893 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.json @@ -307,5 +307,15 @@ "naux" ] } + }, + "observations": { + "pcp": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.toml index 1ffaa5e8..2452a9dd 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.toml @@ -281,3 +281,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.pcp.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.yaml index 656ad9ea..a7740a73 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.yaml @@ -278,3 +278,9 @@ memory: dtype: string shape: - naux +observations: + pcp: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.json index e064745d..68434d4e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.json @@ -325,5 +325,23 @@ "naux" ] } + }, + "observations": { + "zdg": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.toml index 233c0814..c264f0f5 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.toml @@ -299,3 +299,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.zdg.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.yaml index b03ad3de..1e2e204f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.yaml @@ -305,3 +305,14 @@ memory: dtype: string shape: - naux +observations: + zdg: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.json index dfeb9664..ac2ef27f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.json @@ -288,5 +288,23 @@ "naux" ] } + }, + "observations": { + "cdb": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.toml index 1220aa15..1c3fd6d4 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.toml @@ -264,3 +264,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.cdb.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.yaml index f942f99d..db88ea62 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.yaml @@ -265,3 +265,14 @@ memory: dtype: string shape: - naux +observations: + cdb: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.json index 641f064b..b7117795 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.json @@ -297,5 +297,15 @@ "nbound" ] } + }, + "observations": { + "chd": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.toml index 6c6cd57c..4d20ee04 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.toml @@ -271,3 +271,9 @@ shape = [ "naux", "nbound", ] + +[observations.chd.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.yaml index 1e501e3d..64848098 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.yaml @@ -268,3 +268,9 @@ memory: shape: - naux - nbound +observations: + chd: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.json index 86bfa351..a13f8f70 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.json @@ -167,5 +167,15 @@ "nodes" ] } + }, + "observations": { + "ext-outflow": { + "id": { + "name": "node", + "arms": [ + "index" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.toml index 95d4388a..2617bae0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.toml @@ -151,3 +151,9 @@ dtype = "integer" shape = [ "nodes", ] + +[observations.ext-outflow.id] +name = "node" +arms = [ + "index", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.yaml index 5394e32c..8f40193c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.yaml @@ -156,3 +156,9 @@ memory: dtype: integer shape: - nodes +observations: + ext-outflow: + id: + name: node + arms: + - index diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.json index bff332d4..fd2f9249 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.json @@ -307,5 +307,15 @@ "naux" ] } + }, + "observations": { + "evp": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.toml index 2d185536..cad9bf8d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.toml @@ -281,3 +281,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.evp.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.yaml index ec1f9e31..5aa5658a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.yaml @@ -278,3 +278,9 @@ memory: dtype: string shape: - naux +observations: + evp: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.json index 88238f6d..e27a9ed1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.json @@ -299,5 +299,23 @@ "nbound" ] } + }, + "observations": { + "flw": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.toml index bffef9df..c0d139e7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.toml @@ -273,3 +273,15 @@ shape = [ "naux", "nbound", ] + +[observations.flw.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.yaml index db379352..28389849 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.yaml @@ -270,3 +270,14 @@ memory: shape: - naux - nbound +observations: + flw: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.json index 3ea85c7b..70f4de9d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.json @@ -166,5 +166,26 @@ "nja" ] } + }, + "observations": { + "stage": { + "id": { + "arms": [ + "cellid" + ] + } + }, + "flow-ja-face": { + "id": { + "arms": [ + "cellid" + ] + }, + "id2": { + "arms": [ + "cellid" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.toml index 2a720c64..9f06bb64 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.toml @@ -148,3 +148,18 @@ dtype = "integer" shape = [ "nja", ] + +[observations.stage.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id] +arms = [ + "cellid", +] + +[observations.flow-ja-face.id2] +arms = [ + "cellid", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.yaml index 4e56b35f..3644a2c1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.yaml @@ -160,3 +160,15 @@ memory: dtype: integer shape: - nja +observations: + stage: + id: + arms: + - cellid + flow-ja-face: + id: + arms: + - cellid + id2: + arms: + - cellid diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.json index 6eceea29..84f0d871 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.json @@ -307,5 +307,15 @@ "naux" ] } + }, + "observations": { + "pcp": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.toml index b967e0b4..ae887478 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.toml @@ -281,3 +281,9 @@ dtype = "string" shape = [ "naux", ] + +[observations.pcp.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.yaml index efd3cc9b..99487a83 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.yaml @@ -278,3 +278,9 @@ memory: dtype: string shape: - naux +observations: + pcp: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.json index d6f9e958..dfa4c78c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.json @@ -324,5 +324,23 @@ "naux" ] } + }, + "observations": { + "zdg": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + }, + "to-mvr": { + "id": { + "arms": [ + "cellid", + "boundname" + ] + } + } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.toml index 7a5d1c22..c5dc47fa 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.toml @@ -298,3 +298,15 @@ dtype = "string" shape = [ "naux", ] + +[observations.zdg.id] +arms = [ + "cellid", + "boundname", +] + +[observations.to-mvr.id] +arms = [ + "cellid", + "boundname", +] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.yaml index f378b91f..ed79fd25 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.yaml @@ -305,3 +305,14 @@ memory: dtype: string shape: - naux +observations: + zdg: + id: + arms: + - cellid + - boundname + to-mvr: + id: + arms: + - cellid + - boundname diff --git a/autotest/dfns/test_migrate.py b/autotest/dfns/test_migrate.py index 4d4aba6c..18c3d060 100644 --- a/autotest/dfns/test_migrate.py +++ b/autotest/dfns/test_migrate.py @@ -386,6 +386,74 @@ def test_migrate_obs_id_union(dfn_dir, col, optional): assert not any(arm.tagged for arm in field.arms.values()) +def _obs_ids(component: v2.Component, obstype: str) -> tuple: + assert component.observations is not None + obs = component.observations[obstype] + id2 = obs.id2 + return (obs.id.arms, obs.id.fk), None if id2 is None else (id2.arms, id2.type, id2.name) + + +@pytest.mark.parametrize( + "name, obstype, ids", + [ + # CSUB mixes index- and cellid-keyed obstypes, some without boundnames + ("gwf-csub", "csub", ((["index", "boundname"], "packagedata.icsubno"), None)), + ("gwf-csub", "sk", ((["index"], "packagedata.icsubno"), None)), + ("gwf-csub", "csub-cell", ((["cellid"], None), None)), + ( + "gwf-csub", + "delay-head", + ((["index"], "packagedata.icsubno"), (["index"], None, "idcellno")), + ), + # UZF's water-content id2 is a depth, not an id + ( + "gwf-uzf", + "water-content", + ((["index", "boundname"], "packagedata.ifno"), ([], "double", "depth")), + ), + ("gwf-uzf", "uzet", ((["index", "boundname"], "packagedata.ifno"), None)), + ( + "gwf-lak", + "lak", + ((["index", "boundname"], "packagedata.ifno"), (["index"], None, "iconn")), + ), + ("gwf-lak", "outlet", ((["index", "boundname"], "outlets.outletno"), None)), + ( + "gwt-lkt", + "flow-ja-face", + ((["index", "boundname"], "packagedata.ifno"), (["index"], None, None)), + ), + # MF6 reads no id2 for lke, though its docs list one + ("gwe-lke", "lke", ((["index", "boundname"], "packagedata.lakeno"), None)), + ("gwf-wel", "wel", ((["cellid", "boundname"], None), None)), + ("gwf-nam", "flow-ja-face", ((["cellid"], None), (["cellid"], None, None))), + # an exchange id is a row number in exchangedata, which has no pk + ("exg-gwegwe", "flow-ja-face", ((["index", "boundname"], None), None)), + ], +) +def test_migrate_observations(dfn_dir, name, obstype, ids): + assert _obs_ids(_migrate_dev3(dfn_dir, name), obstype) == ids + + +def test_migrate_observations_on_obs_parents(dev3): + """Every component with an OBS file gets observations, except the + SWF-GWF exchanges, which MF6 registers no observation types for.""" + out, _ = dev3 + spec = v2.Dfns.load(out) + obs_parents = { + name + for name, c in spec.components.items() + if isinstance(c, v2.Model) + or any( + getattr(f, "component", None) == "utl-obs" + for f in c.get_fields(recurse=True).values(multi=True) + ) + } + with_obs = {name for name, c in spec.components.items() if c.observations} + assert obs_parents - with_obs == {"exg-chfgwf", "exg-olfgwf", "prt-nam"} + assert with_obs <= obs_parents + + def test_migrate_sfr_ic_is_signed_index(dfn_dir): component = _migrate_dev3(dfn_dir, "gwf-sfr") item = component.blocks["connectiondata"].fields["connectiondata"].item diff --git a/autotest/dfns/test_schema_relations.py b/autotest/dfns/test_schema_relations.py index 039b8601..ba17c0fa 100644 --- a/autotest/dfns/test_schema_relations.py +++ b/autotest/dfns/test_schema_relations.py @@ -13,6 +13,8 @@ Keyword, List, Model, + Observation, + ObservationId, Package, Record, Simulation, @@ -248,6 +250,84 @@ def test_dfns_validate_cellid_outside_list_item(): Dfns(components={"gwf-nam": gwf, "gwf-gnc": pkg}) +# --- observation types --- + + +def _obs_spec(observations: dict, obs_arms: tuple = ("cellid", "index", "boundname")) -> dict: + """gwf-lak with a packagedata list keyed by `ifno`, and utl-obs whose + `id` union has ``obs_arms``.""" + pkg_item = Record(name="item", fields={"ifno": Integer(name="ifno", pk=True)}) + pkg_block = Block( + name="packagedata", fields={"packagedata": List(name="packagedata", item=pkg_item)} + ) + lak = Package( + name="gwf-lak", + parent="gwf-nam", + blocks={"packagedata": pkg_block}, + observations=observations, + ) + arms = {a: Integer(name=a) for a in obs_arms} + obs_item = Record(name="item", fields={"id": Union(name="id", arms=arms)}) + obs_block = Block( + name="continuous", fields={"continuous": List(name="continuous", item=obs_item)} + ) + obs = Package(name="utl-obs", parent="package", blocks={"continuous": obs_block}) + return {"gwf-nam": Model(name="gwf-nam"), "gwf-lak": lak, "utl-obs": obs} + + +def test_dfns_validate_observations(): + observations = { + "lak": Observation( + id=ObservationId(arms=["index", "boundname"], fk="packagedata.ifno"), + id2=ObservationId(arms=["index"], name="iconn"), + ), + } + spec = Dfns(components=_obs_spec(observations)) + assert spec.components["gwf-lak"].observations == observations + + +def test_dfns_validate_observations_unknown_arm(): + observations = {"stage": Observation(id=ObservationId(arms=["index", "boundname"]))} + with pytest.raises(ValueError, match=r"\['boundname'\] are not utl-obs id arms"): + Dfns(components=_obs_spec(observations, obs_arms=("cellid", "index"))) + + +@pytest.mark.parametrize("fk", ["packagedata.nosuch", "nosuch.ifno"]) +def test_dfns_validate_observations_unresolved_fk(fk): + observations = {"stage": Observation(id=ObservationId(arms=["index"], fk=fk))} + with pytest.raises(ValueError, match="is not a pk column in this component"): + Dfns(components=_obs_spec(observations)) + + +def test_dfns_validate_observations_lower_case(): + observations = {"STAGE": Observation(id=ObservationId(arms=["index"]))} + with pytest.raises(ValueError, match="must be lower case"): + Dfns(components=_obs_spec(observations)) + + +@pytest.mark.parametrize( + "kwargs, match", + [ + ({}, "exactly one of arms or type"), + ({"arms": ["index"], "type": "double"}, "exactly one of arms or type"), + ({"arms": ["cellid"], "fk": "packagedata.ifno"}, "requires the 'index' arm"), + ], +) +def test_observation_id_invalid(kwargs, match): + with pytest.raises(ValueError, match=match): + ObservationId(**kwargs) + + +def test_observation_with_boundname_only_on_id2(): + with pytest.raises(ValueError, match="applies only to id2"): + Observation(id=ObservationId(arms=["index", "boundname"], with_boundname=True)) + with pytest.raises(ValueError, match="requires id to admit a boundname"): + Observation( + id=ObservationId(arms=["index"]), + id2=ObservationId(type="double", with_boundname=True), + ) + + # --- file links (File.component / component_ftype) --- diff --git a/docs/md/dfnspec.md b/docs/md/dfnspec.md index b3ce2a8f..624660be 100644 --- a/docs/md/dfnspec.md +++ b/docs/md/dfnspec.md @@ -13,6 +13,7 @@ This document describes the MODFLOW 6 component definition (DFN) system. This sy - [`schema_version`](#schema_version) - [`dims`](#dims) - [`memory`](#memory) + - [`observations`](#observations) - [Component types](#component-types) - [Simulation](#simulation) - [Model](#model) @@ -100,6 +101,10 @@ This document describes the MODFLOW 6 component definition (DFN) system. This sy - [`output`](#output) - [`budget`](#budget) - [`obs_type`](#obs_type) +- [Observation types](#observation-types) + - [Attributes](#attributes-2) + - [`description`](#description-2) + - [`id`, `id2`](#id-id2) ## Overview @@ -122,6 +127,7 @@ Component definitions consist of a number of attributes: - `dims`: named dimensions resolvable from input fields, available for use in array shapes - `runtime_dims`: named dimensions whose value is only known once MODFLOW runs, available for use in memory variable shapes - `memory`: API-accessible runtime variable definitions +- `observations`: the observation types the component accepts in its OBS file Components may refer to, i.e. be constrained by, other components. Cross-component constraints include parent-child relations, model-solution compatibility restrictions, and primary/foreign keys. @@ -184,6 +190,10 @@ A component that other components' input files link (see [File](#file)), such as If a component does not provide a `memory` catalog, all memory-managed variables in the component's runtime context will be readonly by default. To allow MODFLOW API access to runtime variables, they must be defined in the `memory` catalog. +#### `observations` + +`{string: Observation} (default: {})`. The observation types the component accepts in its OBS file, keyed by lower-case name (MF6 matches them case-insensitively). See [Observation types](#observation-types). + ### Component types Three component types can be distinguished: simulation, model, and package. @@ -529,7 +539,7 @@ Type `union`. Sum type. `{string: Scalar | Array | Record}`. Subfields, required. -A union is usually keyword-led: each arm begins with its own keyword, which picks the arm. An untagged union's arms begin with a value instead, and the value alone may not pick the arm. `utl-obs`'s `id` is a cellid, a 1-based index (e.g. a lake number), or a boundname, depending on the parent package and the observation type. As with a runtime-resolved [foreign key](#primary-and-foreign-keys), the codec resolves which arm applies. +A union is usually keyword-led: each arm begins with its own keyword, which picks the arm. An untagged union's arms begin with a value instead, and the value alone may not pick the arm. `utl-obs`'s `id` is a cellid, a 1-based index (e.g. a lake number), or a boundname, depending on the parent package and the observation type. The parent's [observation types](#observation-types) say which arms apply for each observation type. #### List @@ -861,3 +871,45 @@ Allowed values: #### `obs_type` `string | null (default: null)`. The OBS package observation type name for variables observable through the `utl-obs` utility package (e.g., `"HEAD"` on `x`, `"WEL"` on `simvals` in the WEL package). Absent means the variable is not directly observable via OBS. Registers the variable as an output to be returned by [BMI's `get_output_var_names()`](https://bmi.csdms.io/en/stable/bmi.info_funcs.html#get-output-var-names). + +The memory catalog's `obs_type` names the observation type a variable backs. A component's [`observations`](#observation-types) list every observation type it accepts; an `obs_type` matches one of them by name. + +## Observation types + +A component that supports observations lists the observation types it accepts in `observations`. Models list their model-level types (e.g. GWF's `head`, `drawdown` and `flow-ja-face`), since a model is the parent of its OBS file. + +`utl-obs`'s `id` and `id2` are an untagged union of a `cellid`, a 1-based `index` and a `boundname` (see [Union](#union)), and a value alone can't always say which: `3 4` may be one DISV cellid or two indices. Which arms apply depends on the observation type and its parent, so each observation type narrows the union. + +```toml +# gwf-csub +[observations.csub.id] +arms = ["index", "boundname"] +fk = "packagedata.icsubno" + +[observations.csub-cell.id] +arms = ["cellid"] + +[observations.delay-head.id] +arms = ["index"] +fk = "packagedata.icsubno" + +[observations.delay-head.id2] +arms = ["index"] +name = "idcellno" +``` + +### Attributes + +#### `description` + +`string | null (default: null)`. What the observation type observes. + +#### `id`, `id2` + +What the observation's ID and ID2 hold. `id` is required; `id2` absent means the observation type takes no ID2. + +- `arms`: `[string]`. The `utl-obs` id union arms the value may take. +- `type`: `"double" | null`. A plain value instead of an id, e.g. UZF `water-content`'s depth. Exactly one of `arms` and `type` is given. +- `name`: `string | null`. What MF6 calls the value, where `fk` doesn't say, e.g. LAK's connection number `iconn`. +- `fk`: `string | null`. For an `index`, the `"block.field"` [primary key](#primary-and-foreign-keys) column in this component it refers to, e.g. `"packagedata.ifno"`. Absent if the index refers to something without a key column, such as an exchange's `exchangedata` row or a connection number. +- `with_boundname`: `boolean (default: false)`. `id2` only. MF6 reads no ID2 after an ID given as a boundname, since a boundname may name several features; `true` means ID2 is read anyway (UZF's depth). diff --git a/modflow_devtools/dfns/migrate_to_v2_0_0_dev3.py b/modflow_devtools/dfns/migrate_to_v2_0_0_dev3.py index 103c3704..d2ff247c 100644 --- a/modflow_devtools/dfns/migrate_to_v2_0_0_dev3.py +++ b/modflow_devtools/dfns/migrate_to_v2_0_0_dev3.py @@ -18,6 +18,10 @@ Package-specific variables that are not captured by the above (e.g. ``k → k11``, ``condsat``, ``area``) are hardcoded and override any entry with the same name. + +Components that accept an OBS file also get an ``observations`` table, the +observation types they accept and what each one's IDs hold. See +``modflow_devtools.dfns.observations``. """ from collections.abc import Mapping @@ -27,6 +31,7 @@ from modflow_devtools.dfns import schema as v2 from modflow_devtools.dfns.migrate_to_v2_0_0_dev2 import to_v2_0_0_dev2, try_parse_bool +from modflow_devtools.dfns.observations import OBSERVATIONS # --------------------------------------------------------------------------- # dtype translation @@ -1479,6 +1484,7 @@ def to_v2_0_0_dev3( update={ "schema_version": "2.0.0.dev3", "memory": memory or None, + "observations": OBSERVATIONS.get(name), "dims": existing_input_dims or None, "runtime_dims": existing_runtime_dims or None, "blocks": blocks, diff --git a/modflow_devtools/dfns/observations.py b/modflow_devtools/dfns/observations.py new file mode 100644 index 00000000..3646a72e --- /dev/null +++ b/modflow_devtools/dfns/observations.py @@ -0,0 +1,311 @@ +"""Observation types each component accepts in its OBS file. + +Transcribed from MF6: the obstypes each package registers (`StoreObsType`) and +how its id processor reads ID and ID2. Where the docs (`doc/Common/*obs.tex`) +disagree, the Fortran wins (e.g. the docs list an ID2 for GWE LKE's `lke`, +which MF6 doesn't read). + +PRT's PRP registers obstypes but its DFN has no OBS file, so it's left out, as +are the SWF-GWF exchanges, which register none. +""" + +from modflow_devtools.dfns import schema as v2 + + +def _id(*arms: str, fk: str | None = None, name: str | None = None) -> v2.ObservationId: + return v2.ObservationId(arms=list(arms), fk=fk, name=name) + + +def _obs(id: v2.ObservationId, id2: v2.ObservationId | None = None) -> v2.Observation: + return v2.Observation(id=id, id2=id2) + + +def _all(id: v2.ObservationId, *obstypes: str) -> dict[str, v2.Observation]: + """Obstypes that all take the same ID and no ID2.""" + return {o: _obs(id) for o in obstypes} + + +_CELL = _id("cellid") +_CELL_OR_NAME = _id("cellid", "boundname") +_INDEX_OR_NAME = _id("index", "boundname") +# DFW reads a single node number, whatever the grid's cellid width. +_NODE = _id("index", name="node") +_ICONN = _id("index", name="iconn") + + +def _feature(pk: str) -> v2.ObservationId: + return _id("index", "boundname", fk=f"packagedata.{pk}") + + +# Stress packages +_CHD = _all(_CELL_OR_NAME, "chd") +_WEL = _all(_CELL_OR_NAME, "wel", "to-mvr", "wel-reduction") +_DRN = _all(_CELL_OR_NAME, "drn", "to-mvr") +_RIV = _all(_CELL_OR_NAME, "riv", "to-mvr") +_GHB = _all(_CELL_OR_NAME, "ghb", "to-mvr") +_RCH = _all(_CELL_OR_NAME, "rch") +_EVT = _all(_CELL_OR_NAME, "evt") +_API = _all(_CELL_OR_NAME, "api", "to-mvr") +_CNC = _all(_CELL_OR_NAME, "cnc") +_SRC = _all(_CELL_OR_NAME, "src", "to-mvr") +_CTP = _all(_CELL_OR_NAME, "ctp") +_ESL = _all(_CELL_OR_NAME, "esl", "to-mvr") +_CDB = _all(_CELL_OR_NAME, "cdb", "to-mvr") +_FLW = _all(_CELL_OR_NAME, "flw", "to-mvr") +_EVP = _all(_CELL_OR_NAME, "evp") +_PCP = _all(_CELL_OR_NAME, "pcp") +_ZDG = _all(_CELL_OR_NAME, "zdg", "to-mvr") +_DFW = _all(_NODE, "ext-outflow") + + +# Models +def _model(*depvars: str) -> dict[str, v2.Observation]: + return {**_all(_CELL, *depvars), "flow-ja-face": _obs(_CELL, _CELL)} + + +_GWF_MODEL = _model("head", "drawdown") +_GWT_MODEL = _model("concentration") +_GWE_MODEL = _model("temperature") +_SWF_MODEL = _model("stage") + +# Exchanges: an id is a row number in EXCHANGEDATA, which has no pk column. +_EXCHANGE = _all(_INDEX_OR_NAME, "flow-ja-face") + +# CSUB +_ICSUBNO = _id("index", fk="packagedata.icsubno") +_CSUB = { + **_all(_feature("icsubno"), "csub", "inelastic-csub", "elastic-csub"), + **_all(_feature("icsubno"), "delay-flowtop", "delay-flowbot"), + **_all( + _ICSUBNO, + "sk", + "ske", + "theta", + "thickness", + "interbed-compaction", + "interbed-compaction-pct", + "inelastic-compaction", + "elastic-compaction", + ), + **{ + o: _obs(_ICSUBNO, _id("index", name="idcellno")) + for o in ( + "delay-head", + "delay-gstress", + "delay-estress", + "delay-preconstress", + "delay-compaction", + "delay-thickness", + "delay-theta", + ) + }, + **_all( + _CELL, + "coarse-csub", + "csub-cell", + "wcomp-csub-cell", + "sk-cell", + "ske-cell", + "estress-cell", + "gstress-cell", + "preconstress-cell", + "coarse-compaction", + "compaction-cell", + "inelastic-compaction-cell", + "elastic-compaction-cell", + "coarse-thickness", + "thickness-cell", + "coarse-theta", + "theta-cell", + ), +} + +# Advanced flow packages +_LAK_OUTLET = _id("index", "boundname", fk="outlets.outletno") +_LAK = { + **_all( + _feature("ifno"), + "stage", + "ext-inflow", + "outlet-inflow", + "inflow", + "from-mvr", + "rainfall", + "runoff", + "withdrawal", + "evaporation", + "storage", + "constant", + "volume", + "surface-area", + ), + **{o: _obs(_feature("ifno"), _ICONN) for o in ("lak", "wetted-area", "conductance")}, + **_all(_LAK_OUTLET, "ext-outflow", "to-mvr", "outlet"), +} +_MAW = { + **_all( + _feature("ifno"), + "head", + "from-mvr", + "rate", + "rate-to-mvr", + "fw-rate", + "fw-to-mvr", + "storage", + "constant", + "fw-conductance", + ), + **{o: _obs(_feature("ifno"), _id("index", name="icon")) for o in ("maw", "conductance")}, +} +_SFR = _all( + _feature("ifno"), + "stage", + "ext-inflow", + "inflow", + "from-mvr", + "rainfall", + "runoff", + "sfr", + "evaporation", + "outflow", + "ext-outflow", + "to-mvr", + "upstream-flow", + "downstream-flow", + "depth", + "wet-perimeter", + "wet-area", + "wet-width", +) +_UZF = { + **_all( + _feature("ifno"), + "uzf-gwrch", + "uzf-gwd", + "uzf-gwd-to-mvr", + "uzf-gwet", + "infiltration", + "from-mvr", + "rej-inf", + "rej-inf-to-mvr", + "uzet", + "storage", + "net-infiltration", + ), + "water-content": _obs( + _feature("ifno"), + v2.ObservationId(type="double", name="depth", with_boundname=True), + ), +} + + +# Advanced transport packages +def _apt(pk: str, depvar: str, *obstypes: str) -> dict[str, v2.Observation]: + """Obstypes common to every APT package plus ``obstypes``, all keyed by + feature. Those taking an ID2 are added by the caller.""" + return _all(_feature(pk), depvar, "storage", "constant", "from-mvr", *obstypes) + + +def _flow_ja_face(pk: str) -> v2.Observation: + # ID2 is the other feature. + return _obs(_feature(pk), _id("index", fk=f"packagedata.{pk}")) + + +# LKT/LKE's to-mvr is keyed by the flow package's outlet, not in this component. +_FLOW_OUTLET = _id("index", "boundname", name="outletno") +_LAKE_TERMS = ("rainfall", "evaporation", "runoff", "ext-inflow", "withdrawal", "ext-outflow") +_STREAM_TERMS = ("to-mvr", "rainfall", "evaporation", "runoff", "ext-inflow", "ext-outflow") +_WELL_TERMS = ("rate", "fw-rate", "rate-to-mvr", "fw-rate-to-mvr") +_UZ_TERMS = ("infiltration", "rej-inf", "uzet", "rej-inf-to-mvr") + +_LKT = { + **_apt("ifno", "concentration", *_LAKE_TERMS), + "flow-ja-face": _flow_ja_face("ifno"), + "to-mvr": _obs(_FLOW_OUTLET), + "lkt": _obs(_feature("ifno"), _ICONN), +} +_SFT = { + **_apt("ifno", "concentration", "sft", *_STREAM_TERMS), + "flow-ja-face": _flow_ja_face("ifno"), +} +_MWT = { + **_apt("ifno", "concentration", *_WELL_TERMS), + "mwt": _obs(_feature("ifno"), _ICONN), +} +_UZT = { + **_apt("ifno", "concentration", "uzt", *_UZ_TERMS), + "flow-ja-face": _flow_ja_face("ifno"), +} +_LKE = { + **_apt("lakeno", "temperature", "lke", *_LAKE_TERMS), + "flow-ja-face": _flow_ja_face("lakeno"), + "to-mvr": _obs(_FLOW_OUTLET), +} +_SFE = { + **_apt("rno", "temperature", "sfe", "strmbd-cond", *_STREAM_TERMS), + "flow-ja-face": _flow_ja_face("rno"), +} +_MWE = { + **_apt("mawno", "temperature", *_WELL_TERMS), + "mwe": _obs(_feature("mawno"), _ICONN), +} +_UZE = { + **_apt("uzfno", "temperature", "uze", "thermal-equil", *_UZ_TERMS), + "flow-ja-face": _flow_ja_face("uzfno"), +} + +# Observation types by component name. +OBSERVATIONS: dict[str, dict[str, v2.Observation]] = { + **{f"{m}-nam": _SWF_MODEL for m in ("chf", "olf", "swf")}, + **{f"{m}-chd": _CHD for m in ("gwf", "chf", "olf", "swf")}, + **{ + f"{m}-{p}": t + for m in ("chf", "olf", "swf") + for p, t in ( + ("cdb", _CDB), + ("dfw", _DFW), + ("evp", _EVP), + ("flw", _FLW), + ("pcp", _PCP), + ("zdg", _ZDG), + ) + }, + "exg-gwegwe": _EXCHANGE, + "exg-gwfgwf": _EXCHANGE, + "exg-gwtgwt": _EXCHANGE, + "gwe-ctp": _CTP, + "gwe-esl": _ESL, + "gwe-lke": _LKE, + "gwe-mwe": _MWE, + "gwe-nam": _GWE_MODEL, + "gwe-sfe": _SFE, + "gwe-uze": _UZE, + "gwf-api": _API, + "gwf-chdg": _CHD, + "gwf-csub": _CSUB, + "gwf-drn": _DRN, + "gwf-drng": _DRN, + "gwf-evt": _EVT, + "gwf-evta": _EVT, + "gwf-ghb": _GHB, + "gwf-ghbg": _GHB, + "gwf-lak": _LAK, + "gwf-maw": _MAW, + "gwf-nam": _GWF_MODEL, + "gwf-rch": _RCH, + "gwf-rcha": _RCH, + "gwf-riv": _RIV, + "gwf-rivg": _RIV, + "gwf-sfr": _SFR, + "gwf-uzf": _UZF, + "gwf-wel": _WEL, + "gwf-welg": _WEL, + "gwt-api": _API, + "gwt-cnc": _CNC, + "gwt-lkt": _LKT, + "gwt-mwt": _MWT, + "gwt-nam": _GWT_MODEL, + "gwt-sft": _SFT, + "gwt-src": _SRC, + "gwt-uzt": _UZT, +} diff --git a/modflow_devtools/dfns/schema.json b/modflow_devtools/dfns/schema.json index ceb716ad..cc8d4019 100644 --- a/modflow_devtools/dfns/schema.json +++ b/modflow_devtools/dfns/schema.json @@ -1336,6 +1336,21 @@ "default": null, "title": "Memory" }, + "observations": { + "anyOf": [ + { + "additionalProperties": { + "$ref": "#/$defs/Observation" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Observations" + }, "type": { "const": "model", "default": "model", @@ -1379,6 +1394,99 @@ "title": "Model", "type": "object" }, + "Observation": { + "description": "An observation type a component accepts in its OBS file.", + "properties": { + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Description" + }, + "id": { + "$ref": "#/$defs/ObservationId" + }, + "id2": { + "anyOf": [ + { + "$ref": "#/$defs/ObservationId" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "id" + ], + "title": "Observation", + "type": "object" + }, + "ObservationId": { + "description": "What an observation type's ID or ID2 holds: some of `utl-obs`'s id\nunion arms, or (UZF's water-content depth) a plain value instead.", + "properties": { + "arms": { + "default": [], + "items": { + "type": "string" + }, + "title": "Arms", + "type": "array" + }, + "type": { + "anyOf": [ + { + "const": "double", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Type" + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Name" + }, + "fk": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Fk" + }, + "with_boundname": { + "default": false, + "title": "With Boundname", + "type": "boolean" + } + }, + "title": "ObservationId", + "type": "object" + }, "Package": { "properties": { "schema_version": { @@ -1504,6 +1612,21 @@ "default": null, "title": "Memory" }, + "observations": { + "anyOf": [ + { + "additionalProperties": { + "$ref": "#/$defs/Observation" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Observations" + }, "type": { "const": "package", "default": "package", @@ -1842,6 +1965,21 @@ "default": null, "title": "Memory" }, + "observations": { + "anyOf": [ + { + "additionalProperties": { + "$ref": "#/$defs/Observation" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Observations" + }, "type": { "const": "simulation", "default": "simulation", diff --git a/modflow_devtools/dfns/schema.py b/modflow_devtools/dfns/schema.py index 50bed4ba..52f51b68 100644 --- a/modflow_devtools/dfns/schema.py +++ b/modflow_devtools/dfns/schema.py @@ -922,6 +922,51 @@ def _serialize(self, handler: Any, info: SerializationInfo) -> dict[str, Any]: ] +# The arms of `utl-obs`'s `id`/`id2` union, used when the corpus has no utl-obs. +_OBS_ID_ARMS = ("cellid", "index", "boundname") + + +class ObservationId(BaseModel): + """What an observation type's ID or ID2 holds: some of `utl-obs`'s id + union arms, or (UZF's water-content depth) a plain value instead.""" + + arms: list[str] = [] + type: Literal["double"] | None = None + # What MF6 calls the value, where it isn't evident from `fk` (e.g. LAK's + # `iconn`, UZF's `depth`). + name: str | None = None + # For an index, the "block.field" pk it refers to. + fk: str | None = None + # ID2 only: whether ID2 still follows an ID given as a boundname. MF6 + # otherwise reads no ID2 after a boundname. + with_boundname: bool = False + + @model_validator(mode="after") + def _check(self) -> "ObservationId": + if bool(self.arms) == (self.type is not None): + raise ValueError("observation id needs exactly one of arms or type") + if self.fk is not None and "index" not in self.arms: + raise ValueError(f"observation id fk={self.fk!r} requires the 'index' arm") + return self + + +class Observation(BaseModel): + """An observation type a component accepts in its OBS file.""" + + description: str | None = None + id: ObservationId + # Absent if the observation type takes no ID2. + id2: ObservationId | None = None + + @model_validator(mode="after") + def _check(self) -> "Observation": + if self.id.with_boundname: + raise ValueError("with_boundname applies only to id2") + if self.id2 is not None and self.id2.with_boundname and "boundname" not in self.id.arms: + raise ValueError("id2 with_boundname requires id to admit a boundname") + return self + + class ComponentBase(BaseModel): schema_version: str | None = None name: str @@ -935,6 +980,9 @@ class ComponentBase(BaseModel): runtime_dims: dict[str, RuntimeDim] | None = None blocks: dict[str, Block] | None = None memory: dict[str, MemoryVariable] | None = None + # Observation types this component accepts in its OBS file, keyed by + # (lower-case) name. See `Observation`. + observations: dict[str, Observation] | None = None @model_serializer(mode="wrap") def _serialize(self, handler: Any) -> dict[str, Any]: @@ -1411,6 +1459,44 @@ def _check(field: "InputField", in_item: bool) -> None: _check(field, False) +def _obs_id_arms(spec: "Dfns") -> set[str]: + """The arms of `utl-obs`'s `id` union, or `_OBS_ID_ARMS` without utl-obs.""" + obs = spec.components.get("utl-obs") + item = getattr(_find_list_in_block(obs, "continuous"), "item", None) if obs else None + id_field = item.fields.get("id") if isinstance(item, Record) else None + if isinstance(id_field, Union): + return set(id_field.arms) + return set(_OBS_ID_ARMS) + + +def _validate_observations(component: "ComponentBase", spec: "Dfns") -> None: + """ + Each observation id's arms must be arms of `utl-obs`'s id union, and an + `fk` ("block.field") must name the pk column of a list in this component. + """ + if not component.observations: + return + valid_arms = _obs_id_arms(spec) + for obstype, obs in component.observations.items(): + if obstype != obstype.lower(): + raise ValueError(f"Observation {obstype!r}: name must be lower case") + for col, obs_id in (("id", obs.id), ("id2", obs.id2)): + if obs_id is None: + continue + where = f"Observation {obstype!r} {col}" + unknown = sorted(set(obs_id.arms) - valid_arms) + if unknown: + raise ValueError(f"{where}: {unknown} are not utl-obs id arms") + if obs_id.fk is None: + continue + block_name, _, pk_name = obs_id.fk.partition(".") + list_field = _find_list_in_block(component, block_name) + item = list_field.item if list_field else None + pk = item.fields.get(pk_name) if isinstance(item, Record) else None + if not getattr(pk, "pk", False): + raise ValueError(f"{where}: fk={obs_id.fk!r} is not a pk column in this component") + + def _validate_array_shapes( component: "ComponentBase", component_name: str, @@ -1735,6 +1821,8 @@ def _validate_relations(self) -> "Dfns": _validate_file_links(component, self) for name, component in self.components.items(): _validate_cellid_fields(component) + for name, component in self.components.items(): + _validate_observations(component, self) for name, component in self.components.items(): _validate_array_shapes(component, name, self) for name, component in self.components.items(): From b60d40dd7a38d0ddd59421ae3dbfb911d67df2bc Mon Sep 17 00:00:00 2001 From: wpbonelli Date: Mon, 5 Oct 2026 18:43:16 -0700 Subject: [PATCH 2/3] refactor(dfns): type observations with input fields Each observation type is now an untagged input field giving what follows it on an observation line, instead of a separate id/id2 vocabulary. A record's first field fills utl-obs's id and its second id2; a union's arms are alternatives. This expresses an id2 that only follows an index (LAK's iconn) or follows a boundname too (UZF's depth) without special cases, and reuses the existing fk and cellid validation. Co-Authored-By: Claude Opus 5.5 --- .../__snapshots__/v2.0.0.dev3/chf-cdb.json | 44 +- .../__snapshots__/v2.0.0.dev3/chf-cdb.toml | 40 +- .../__snapshots__/v2.0.0.dev3/chf-cdb.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/chf-chd.json | 22 +- .../__snapshots__/v2.0.0.dev3/chf-chd.toml | 20 +- .../__snapshots__/v2.0.0.dev3/chf-chd.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/chf-dfw.json | 9 +- .../__snapshots__/v2.0.0.dev3/chf-dfw.toml | 9 +- .../__snapshots__/v2.0.0.dev3/chf-dfw.yaml | 7 +- .../__snapshots__/v2.0.0.dev3/chf-evp.json | 22 +- .../__snapshots__/v2.0.0.dev3/chf-evp.toml | 20 +- .../__snapshots__/v2.0.0.dev3/chf-evp.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/chf-flw.json | 44 +- .../__snapshots__/v2.0.0.dev3/chf-flw.toml | 40 +- .../__snapshots__/v2.0.0.dev3/chf-flw.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/chf-nam.json | 45 +- .../__snapshots__/v2.0.0.dev3/chf-nam.toml | 37 +- .../__snapshots__/v2.0.0.dev3/chf-nam.yaml | 35 +- .../__snapshots__/v2.0.0.dev3/chf-pcp.json | 22 +- .../__snapshots__/v2.0.0.dev3/chf-pcp.toml | 20 +- .../__snapshots__/v2.0.0.dev3/chf-pcp.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/chf-zdg.json | 44 +- .../__snapshots__/v2.0.0.dev3/chf-zdg.toml | 40 +- .../__snapshots__/v2.0.0.dev3/chf-zdg.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/exg-gwegwe.json | 17 +- .../__snapshots__/v2.0.0.dev3/exg-gwegwe.toml | 17 +- .../__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml | 14 +- .../__snapshots__/v2.0.0.dev3/exg-gwfgwf.json | 17 +- .../__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml | 17 +- .../__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml | 14 +- .../__snapshots__/v2.0.0.dev3/exg-gwtgwt.json | 17 +- .../__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml | 17 +- .../__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml | 14 +- .../__snapshots__/v2.0.0.dev3/gwe-ctp.json | 22 +- .../__snapshots__/v2.0.0.dev3/gwe-ctp.toml | 20 +- .../__snapshots__/v2.0.0.dev3/gwe-ctp.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/gwe-esl.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwe-esl.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwe-esl.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwe-lke.json | 264 ++++++--- .../__snapshots__/v2.0.0.dev3/gwe-lke.toml | 234 +++++--- .../__snapshots__/v2.0.0.dev3/gwe-lke.yaml | 220 ++++--- .../__snapshots__/v2.0.0.dev3/gwe-mwe.json | 188 ++++-- .../__snapshots__/v2.0.0.dev3/gwe-mwe.toml | 166 ++++-- .../__snapshots__/v2.0.0.dev3/gwe-mwe.yaml | 156 +++-- .../__snapshots__/v2.0.0.dev3/gwe-nam.json | 45 +- .../__snapshots__/v2.0.0.dev3/gwe-nam.toml | 37 +- .../__snapshots__/v2.0.0.dev3/gwe-nam.yaml | 35 +- .../__snapshots__/v2.0.0.dev3/gwe-sfe.json | 265 ++++++--- .../__snapshots__/v2.0.0.dev3/gwe-sfe.toml | 233 +++++--- .../__snapshots__/v2.0.0.dev3/gwe-sfe.yaml | 221 ++++--- .../__snapshots__/v2.0.0.dev3/gwe-uze.json | 227 ++++--- .../__snapshots__/v2.0.0.dev3/gwe-uze.toml | 199 +++++-- .../__snapshots__/v2.0.0.dev3/gwe-uze.yaml | 189 ++++-- .../__snapshots__/v2.0.0.dev3/gwf-api.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwf-api.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwf-api.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwf-chd.json | 22 +- .../__snapshots__/v2.0.0.dev3/gwf-chd.toml | 20 +- .../__snapshots__/v2.0.0.dev3/gwf-chd.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/gwf-chdg.json | 22 +- .../__snapshots__/v2.0.0.dev3/gwf-chdg.toml | 20 +- .../__snapshots__/v2.0.0.dev3/gwf-chdg.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/gwf-csub.json | 558 ++++++++++-------- .../__snapshots__/v2.0.0.dev3/gwf-csub.toml | 472 +++++++++------ .../__snapshots__/v2.0.0.dev3/gwf-csub.yaml | 444 +++++++++----- .../__snapshots__/v2.0.0.dev3/gwf-drn.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwf-drn.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwf-drn.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwf-drng.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwf-drng.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwf-drng.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwf-evt.json | 22 +- .../__snapshots__/v2.0.0.dev3/gwf-evt.toml | 20 +- .../__snapshots__/v2.0.0.dev3/gwf-evt.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/gwf-evta.json | 22 +- .../__snapshots__/v2.0.0.dev3/gwf-evta.toml | 20 +- .../__snapshots__/v2.0.0.dev3/gwf-evta.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/gwf-ghb.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwf-ghb.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwf-ghb.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwf-ghbg.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwf-ghbg.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwf-lak.json | 412 ++++++++----- .../__snapshots__/v2.0.0.dev3/gwf-lak.toml | 362 ++++++++---- .../__snapshots__/v2.0.0.dev3/gwf-lak.yaml | 340 +++++++---- .../__snapshots__/v2.0.0.dev3/gwf-maw.json | 243 +++++--- .../__snapshots__/v2.0.0.dev3/gwf-maw.toml | 213 +++++-- .../__snapshots__/v2.0.0.dev3/gwf-maw.yaml | 200 +++++-- .../__snapshots__/v2.0.0.dev3/gwf-nam.json | 58 +- .../__snapshots__/v2.0.0.dev3/gwf-nam.toml | 48 +- .../__snapshots__/v2.0.0.dev3/gwf-nam.yaml | 45 +- .../__snapshots__/v2.0.0.dev3/gwf-rch.json | 22 +- .../__snapshots__/v2.0.0.dev3/gwf-rch.toml | 20 +- .../__snapshots__/v2.0.0.dev3/gwf-rch.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/gwf-rcha.json | 22 +- .../__snapshots__/v2.0.0.dev3/gwf-rcha.toml | 20 +- .../__snapshots__/v2.0.0.dev3/gwf-rcha.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/gwf-riv.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwf-riv.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwf-riv.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwf-rivg.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwf-rivg.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwf-rivg.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwf-sfr.json | 323 ++++++---- .../__snapshots__/v2.0.0.dev3/gwf-sfr.toml | 289 ++++++--- .../__snapshots__/v2.0.0.dev3/gwf-sfr.yaml | 272 ++++++--- .../__snapshots__/v2.0.0.dev3/gwf-uzf.json | 243 +++++--- .../__snapshots__/v2.0.0.dev3/gwf-uzf.toml | 213 +++++-- .../__snapshots__/v2.0.0.dev3/gwf-uzf.yaml | 203 +++++-- .../__snapshots__/v2.0.0.dev3/gwf-wel.json | 66 ++- .../__snapshots__/v2.0.0.dev3/gwf-wel.toml | 60 +- .../__snapshots__/v2.0.0.dev3/gwf-wel.yaml | 54 +- .../__snapshots__/v2.0.0.dev3/gwf-welg.json | 66 ++- .../__snapshots__/v2.0.0.dev3/gwf-welg.toml | 60 +- .../__snapshots__/v2.0.0.dev3/gwf-welg.yaml | 54 +- .../__snapshots__/v2.0.0.dev3/gwt-api.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwt-api.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwt-api.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwt-cnc.json | 22 +- .../__snapshots__/v2.0.0.dev3/gwt-cnc.toml | 20 +- .../__snapshots__/v2.0.0.dev3/gwt-cnc.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/gwt-lkt.json | 281 ++++++--- .../__snapshots__/v2.0.0.dev3/gwt-lkt.toml | 247 +++++--- .../__snapshots__/v2.0.0.dev3/gwt-lkt.yaml | 232 +++++--- .../__snapshots__/v2.0.0.dev3/gwt-mwt.json | 188 ++++-- .../__snapshots__/v2.0.0.dev3/gwt-mwt.toml | 166 ++++-- .../__snapshots__/v2.0.0.dev3/gwt-mwt.yaml | 156 +++-- .../__snapshots__/v2.0.0.dev3/gwt-nam.json | 45 +- .../__snapshots__/v2.0.0.dev3/gwt-nam.toml | 37 +- .../__snapshots__/v2.0.0.dev3/gwt-nam.yaml | 35 +- .../__snapshots__/v2.0.0.dev3/gwt-sft.json | 246 +++++--- .../__snapshots__/v2.0.0.dev3/gwt-sft.toml | 216 +++++-- .../__snapshots__/v2.0.0.dev3/gwt-sft.yaml | 205 +++++-- .../__snapshots__/v2.0.0.dev3/gwt-src.json | 44 +- .../__snapshots__/v2.0.0.dev3/gwt-src.toml | 40 +- .../__snapshots__/v2.0.0.dev3/gwt-src.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/gwt-uzt.json | 208 ++++--- .../__snapshots__/v2.0.0.dev3/gwt-uzt.toml | 182 ++++-- .../__snapshots__/v2.0.0.dev3/gwt-uzt.yaml | 173 ++++-- .../__snapshots__/v2.0.0.dev3/olf-cdb.json | 44 +- .../__snapshots__/v2.0.0.dev3/olf-cdb.toml | 40 +- .../__snapshots__/v2.0.0.dev3/olf-cdb.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/olf-chd.json | 22 +- .../__snapshots__/v2.0.0.dev3/olf-chd.toml | 20 +- .../__snapshots__/v2.0.0.dev3/olf-chd.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/olf-dfw.json | 9 +- .../__snapshots__/v2.0.0.dev3/olf-dfw.toml | 9 +- .../__snapshots__/v2.0.0.dev3/olf-dfw.yaml | 7 +- .../__snapshots__/v2.0.0.dev3/olf-evp.json | 22 +- .../__snapshots__/v2.0.0.dev3/olf-evp.toml | 20 +- .../__snapshots__/v2.0.0.dev3/olf-evp.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/olf-flw.json | 44 +- .../__snapshots__/v2.0.0.dev3/olf-flw.toml | 40 +- .../__snapshots__/v2.0.0.dev3/olf-flw.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/olf-nam.json | 45 +- .../__snapshots__/v2.0.0.dev3/olf-nam.toml | 37 +- .../__snapshots__/v2.0.0.dev3/olf-nam.yaml | 35 +- .../__snapshots__/v2.0.0.dev3/olf-pcp.json | 22 +- .../__snapshots__/v2.0.0.dev3/olf-pcp.toml | 20 +- .../__snapshots__/v2.0.0.dev3/olf-pcp.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/olf-zdg.json | 44 +- .../__snapshots__/v2.0.0.dev3/olf-zdg.toml | 40 +- .../__snapshots__/v2.0.0.dev3/olf-zdg.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/swf-cdb.json | 44 +- .../__snapshots__/v2.0.0.dev3/swf-cdb.toml | 40 +- .../__snapshots__/v2.0.0.dev3/swf-cdb.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/swf-chd.json | 22 +- .../__snapshots__/v2.0.0.dev3/swf-chd.toml | 20 +- .../__snapshots__/v2.0.0.dev3/swf-chd.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/swf-dfw.json | 9 +- .../__snapshots__/v2.0.0.dev3/swf-dfw.toml | 9 +- .../__snapshots__/v2.0.0.dev3/swf-dfw.yaml | 7 +- .../__snapshots__/v2.0.0.dev3/swf-evp.json | 22 +- .../__snapshots__/v2.0.0.dev3/swf-evp.toml | 20 +- .../__snapshots__/v2.0.0.dev3/swf-evp.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/swf-flw.json | 44 +- .../__snapshots__/v2.0.0.dev3/swf-flw.toml | 40 +- .../__snapshots__/v2.0.0.dev3/swf-flw.yaml | 36 +- .../__snapshots__/v2.0.0.dev3/swf-nam.json | 45 +- .../__snapshots__/v2.0.0.dev3/swf-nam.toml | 37 +- .../__snapshots__/v2.0.0.dev3/swf-nam.yaml | 35 +- .../__snapshots__/v2.0.0.dev3/swf-pcp.json | 22 +- .../__snapshots__/v2.0.0.dev3/swf-pcp.toml | 20 +- .../__snapshots__/v2.0.0.dev3/swf-pcp.yaml | 18 +- .../__snapshots__/v2.0.0.dev3/swf-zdg.json | 44 +- .../__snapshots__/v2.0.0.dev3/swf-zdg.toml | 40 +- .../__snapshots__/v2.0.0.dev3/swf-zdg.yaml | 36 +- autotest/dfns/test_migrate.py | 74 ++- autotest/dfns/test_schema_relations.py | 83 ++- docs/md/dfnspec.md | 62 +- modflow_devtools/dfns/observations.py | 98 +-- modflow_devtools/dfns/schema.json | 189 +++--- modflow_devtools/dfns/schema.py | 131 ++-- 195 files changed, 10518 insertions(+), 4583 deletions(-) diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.json index 525d85f7..66c92118 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.json @@ -292,19 +292,43 @@ }, "observations": { "cdb": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.toml index b5c57aed..3086eb16 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.toml @@ -266,14 +266,38 @@ shape = [ "naux", ] -[observations.cdb.id] -arms = [ - "cellid", - "boundname", +[observations.cdb] +type = "union" +tagged = false + +[observations.cdb.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.cdb.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.yaml index f2591573..02d59d97 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-cdb.yaml @@ -267,12 +267,32 @@ memory: - naux observations: cdb: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.json index 864ceb64..232e5833 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.json @@ -300,11 +300,23 @@ }, "observations": { "chd": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.toml index 236418ab..20106d4a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.toml @@ -272,8 +272,20 @@ shape = [ "nbound", ] -[observations.chd.id] -arms = [ - "cellid", - "boundname", +[observations.chd] +type = "union" +tagged = false + +[observations.chd.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.chd.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.yaml index 0c76ff82..7fb6e247 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-chd.yaml @@ -270,7 +270,17 @@ memory: - nbound observations: chd: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.json index d282d2b1..133dd4f1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.json @@ -171,12 +171,9 @@ }, "observations": { "ext-outflow": { - "id": { - "name": "node", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.toml index 5b73d6f2..1e28ffd2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.toml @@ -153,8 +153,7 @@ shape = [ "nodes", ] -[observations.ext-outflow.id] -name = "node" -arms = [ - "index", -] +[observations.ext-outflow] +type = "integer" +tagged = false +index = true diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.yaml index 131a679a..741c85d5 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-dfw.yaml @@ -159,7 +159,6 @@ memory: - nodes observations: ext-outflow: - id: - name: node - arms: - - index + type: integer + tagged: false + index: true diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.json index b9c079f5..f2aa0fa9 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.json @@ -310,11 +310,23 @@ }, "observations": { "evp": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.toml index 907e07fe..a79ff873 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.toml @@ -282,8 +282,20 @@ shape = [ "naux", ] -[observations.evp.id] -arms = [ - "cellid", - "boundname", +[observations.evp] +type = "union" +tagged = false + +[observations.evp.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.evp.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.yaml index 949cead0..cfec83f2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-evp.yaml @@ -280,7 +280,17 @@ memory: - naux observations: evp: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.json index eaba3800..d5d658f4 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.json @@ -302,19 +302,43 @@ }, "observations": { "flw": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.toml index a3c46484..ae492a41 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.toml @@ -274,14 +274,38 @@ shape = [ "nbound", ] -[observations.flw.id] -arms = [ - "cellid", - "boundname", +[observations.flw] +type = "union" +tagged = false + +[observations.flw.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.flw.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.yaml index a430f93f..c35449f4 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-flw.yaml @@ -272,12 +272,32 @@ memory: - nbound observations: flw: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.json index 5dec7718..520e4fc1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.json @@ -169,22 +169,39 @@ }, "observations": { "stage": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "flow-ja-face": { - "id": { - "arms": [ - "cellid" - ] - }, - "id2": { - "arms": [ - "cellid" - ] + "type": "record", + "tagged": false, + "fields": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "cellid2": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.toml index 51a92062..9093ff1d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.toml @@ -149,17 +149,36 @@ shape = [ "nja", ] -[observations.stage.id] -arms = [ - "cellid", +[observations.stage] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id] -arms = [ - "cellid", +[observations.flow-ja-face] +type = "record" +tagged = false + +[observations.flow-ja-face.fields.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id2] -arms = [ - "cellid", +[observations.flow-ja-face.fields.cellid2] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.yaml index 449e402b..df4a87b0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-nam.yaml @@ -162,13 +162,30 @@ memory: - nja observations: stage: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim flow-ja-face: - id: - arms: - - cellid - id2: - arms: - - cellid + type: record + tagged: false + fields: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + cellid2: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.json index 5d23571a..cc24e5fc 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.json @@ -310,11 +310,23 @@ }, "observations": { "pcp": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.toml index bf7383ae..6ebca60f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.toml @@ -282,8 +282,20 @@ shape = [ "naux", ] -[observations.pcp.id] -arms = [ - "cellid", - "boundname", +[observations.pcp] +type = "union" +tagged = false + +[observations.pcp.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.pcp.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.yaml index 78788f61..9cb5c5af 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-pcp.yaml @@ -280,7 +280,17 @@ memory: - naux observations: pcp: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.json index 90c68db7..efce3597 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.json @@ -328,19 +328,43 @@ }, "observations": { "zdg": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.toml index 9702a2a2..50be67ab 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.toml @@ -300,14 +300,38 @@ shape = [ "naux", ] -[observations.zdg.id] -arms = [ - "cellid", - "boundname", +[observations.zdg] +type = "union" +tagged = false + +[observations.zdg.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.zdg.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.yaml index f6c909da..fe966815 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/chf-zdg.yaml @@ -307,12 +307,32 @@ memory: - naux observations: zdg: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.json index 6d6e05b1..2bc969fb 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.json @@ -338,11 +338,18 @@ }, "observations": { "flow-ja-face": { - "id": { - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "iexg": { + "type": "integer", + "tagged": false, + "index": true + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.toml index 2429e83d..fe6e6498 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.toml @@ -312,8 +312,15 @@ shape = [ "naux", ] -[observations.flow-ja-face.id] -arms = [ - "index", - "boundname", -] +[observations.flow-ja-face] +type = "union" +tagged = false + +[observations.flow-ja-face.arms.iexg] +type = "integer" +tagged = false +index = true + +[observations.flow-ja-face.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml index 0053970d..89ceecc5 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwegwe.yaml @@ -314,7 +314,13 @@ memory: - naux observations: flow-ja-face: - id: - arms: - - index - - boundname + type: union + tagged: false + arms: + iexg: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.json index 89528e8f..6d95f77c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.json @@ -366,11 +366,18 @@ }, "observations": { "flow-ja-face": { - "id": { - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "iexg": { + "type": "integer", + "tagged": false, + "index": true + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml index ffe9bb0a..f282d378 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.toml @@ -336,8 +336,15 @@ shape = [ "naux", ] -[observations.flow-ja-face.id] -arms = [ - "index", - "boundname", -] +[observations.flow-ja-face] +type = "union" +tagged = false + +[observations.flow-ja-face.arms.iexg] +type = "integer" +tagged = false +index = true + +[observations.flow-ja-face.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml index 550f210d..9b757442 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwfgwf.yaml @@ -360,7 +360,13 @@ memory: - naux observations: flow-ja-face: - id: - arms: - - index - - boundname + type: union + tagged: false + arms: + iexg: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.json index 4c730c19..2019d0e9 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.json @@ -338,11 +338,18 @@ }, "observations": { "flow-ja-face": { - "id": { - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "iexg": { + "type": "integer", + "tagged": false, + "index": true + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml index f4b9a2e8..7daa1957 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.toml @@ -312,8 +312,15 @@ shape = [ "naux", ] -[observations.flow-ja-face.id] -arms = [ - "index", - "boundname", -] +[observations.flow-ja-face] +type = "union" +tagged = false + +[observations.flow-ja-face.arms.iexg] +type = "integer" +tagged = false +index = true + +[observations.flow-ja-face.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml index 2417eb49..64dd63ee 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/exg-gwtgwt.yaml @@ -312,7 +312,13 @@ memory: - naux observations: flow-ja-face: - id: - arms: - - index - - boundname + type: union + tagged: false + arms: + iexg: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.json index 59dd54b8..2b31497e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.json @@ -315,11 +315,23 @@ }, "observations": { "ctp": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.toml index c2a51722..b4cc807e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.toml @@ -287,8 +287,20 @@ shape = [ "naux", ] -[observations.ctp.id] -arms = [ - "cellid", - "boundname", +[observations.ctp] +type = "union" +tagged = false + +[observations.ctp.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.ctp.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.yaml index 1c6117c9..048558b1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-ctp.yaml @@ -282,7 +282,17 @@ memory: - naux observations: ctp: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.json index 153f63c7..125e84e0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.json @@ -312,19 +312,43 @@ }, "observations": { "esl": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.toml index dab9273b..6f91f2be 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.toml @@ -284,14 +284,38 @@ shape = [ "naux", ] -[observations.esl.id] -arms = [ - "cellid", - "boundname", +[observations.esl] +type = "union" +tagged = false + +[observations.esl.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.esl.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.yaml index 622902e4..5bc7a18d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-esl.yaml @@ -281,12 +281,32 @@ memory: - naux observations: esl: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.json index c95fc47e..2ceff9e9 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.json @@ -438,126 +438,222 @@ }, "observations": { "temperature": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "lke": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rainfall": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "evaporation": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "runoff": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-inflow": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "withdrawal": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-outflow": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "flow-ja-face": { - "id": { - "fk": "packagedata.lakeno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "fk": "packagedata.lakeno", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "lakeno": { + "type": "record", + "tagged": false, + "fields": { + "lakeno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + }, + "lakeno2": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.lakeno" + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "name": "outletno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "outletno": { + "type": "integer", + "tagged": false, + "index": true + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.toml index b86c5bf3..ec244cf2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.toml @@ -398,99 +398,193 @@ shape = [ "ncv", ] -[observations.temperature.id] +[observations.temperature] +type = "union" +tagged = false + +[observations.temperature.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.temperature.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.lke.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.lke] +type = "union" +tagged = false + +[observations.lke.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.rainfall.id] +[observations.lke.arms.boundname] +type = "string" +tagged = false + +[observations.rainfall] +type = "union" +tagged = false + +[observations.rainfall.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.evaporation.id] +[observations.rainfall.arms.boundname] +type = "string" +tagged = false + +[observations.evaporation] +type = "union" +tagged = false + +[observations.evaporation.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.runoff.id] +[observations.evaporation.arms.boundname] +type = "string" +tagged = false + +[observations.runoff] +type = "union" +tagged = false + +[observations.runoff.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.ext-inflow.id] +[observations.runoff.arms.boundname] +type = "string" +tagged = false + +[observations.ext-inflow] +type = "union" +tagged = false + +[observations.ext-inflow.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.withdrawal.id] +[observations.ext-inflow.arms.boundname] +type = "string" +tagged = false + +[observations.withdrawal] +type = "union" +tagged = false + +[observations.withdrawal.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.ext-outflow.id] +[observations.withdrawal.arms.boundname] +type = "string" +tagged = false + +[observations.ext-outflow] +type = "union" +tagged = false + +[observations.ext-outflow.arms.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id] +[observations.ext-outflow.arms.boundname] +type = "string" +tagged = false + +[observations.flow-ja-face] +type = "union" +tagged = false + +[observations.flow-ja-face.arms.lakeno] +type = "record" +tagged = false + +[observations.flow-ja-face.arms.lakeno.fields.lakeno] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id2] +[observations.flow-ja-face.arms.lakeno.fields.lakeno2] +type = "integer" +tagged = false +index = true fk = "packagedata.lakeno" -arms = [ - "index", -] -[observations.to-mvr.id] -name = "outletno" -arms = [ - "index", - "boundname", -] +[observations.flow-ja-face.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.outletno] +type = "integer" +tagged = false +index = true + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.yaml index 81265711..c1dfec06 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-lke.yaml @@ -424,84 +424,166 @@ memory: - ncv observations: temperature: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false lke: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false rainfall: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false evaporation: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false runoff: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false ext-inflow: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false withdrawal: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false ext-outflow: - id: - fk: packagedata.lakeno - arms: - - index - - boundname + type: union + tagged: false + arms: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false flow-ja-face: - id: - fk: packagedata.lakeno - arms: - - index - - boundname - id2: - fk: packagedata.lakeno - arms: - - index + type: union + tagged: false + arms: + lakeno: + type: record + tagged: false + fields: + lakeno: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + lakeno2: + type: integer + tagged: false + index: true + fk: packagedata.lakeno + boundname: + type: string + tagged: false to-mvr: - id: - name: outletno - arms: - - index - - boundname + type: union + tagged: false + arms: + outletno: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.json index a8844e5b..b93610b7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.json @@ -393,90 +393,158 @@ }, "observations": { "temperature": { - "id": { - "fk": "packagedata.mawno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "mawno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.mawno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.mawno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "mawno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.mawno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.mawno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "mawno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.mawno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.mawno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "mawno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.mawno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rate": { - "id": { - "fk": "packagedata.mawno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "mawno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.mawno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "fw-rate": { - "id": { - "fk": "packagedata.mawno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "mawno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.mawno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rate-to-mvr": { - "id": { - "fk": "packagedata.mawno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "mawno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.mawno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "fw-rate-to-mvr": { - "id": { - "fk": "packagedata.mawno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "mawno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.mawno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "mwe": { - "id": { - "fk": "packagedata.mawno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "name": "iconn", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "mawno": { + "type": "record", + "tagged": false, + "fields": { + "mawno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.mawno" + }, + "iconn": { + "type": "integer", + "tagged": false, + "index": true + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.toml index 1a7a9929..fcf1f3f0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.toml @@ -353,71 +353,137 @@ shape = [ "ncv", ] -[observations.temperature.id] +[observations.temperature] +type = "union" +tagged = false + +[observations.temperature.arms.mawno] +type = "integer" +tagged = false +index = true fk = "packagedata.mawno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.temperature.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.mawno] +type = "integer" +tagged = false +index = true fk = "packagedata.mawno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.mawno] +type = "integer" +tagged = false +index = true fk = "packagedata.mawno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.mawno] +type = "integer" +tagged = false +index = true fk = "packagedata.mawno" -arms = [ - "index", - "boundname", -] -[observations.rate.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.rate] +type = "union" +tagged = false + +[observations.rate.arms.mawno] +type = "integer" +tagged = false +index = true fk = "packagedata.mawno" -arms = [ - "index", - "boundname", -] -[observations.fw-rate.id] +[observations.rate.arms.boundname] +type = "string" +tagged = false + +[observations.fw-rate] +type = "union" +tagged = false + +[observations.fw-rate.arms.mawno] +type = "integer" +tagged = false +index = true fk = "packagedata.mawno" -arms = [ - "index", - "boundname", -] -[observations.rate-to-mvr.id] +[observations.fw-rate.arms.boundname] +type = "string" +tagged = false + +[observations.rate-to-mvr] +type = "union" +tagged = false + +[observations.rate-to-mvr.arms.mawno] +type = "integer" +tagged = false +index = true fk = "packagedata.mawno" -arms = [ - "index", - "boundname", -] -[observations.fw-rate-to-mvr.id] +[observations.rate-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.fw-rate-to-mvr] +type = "union" +tagged = false + +[observations.fw-rate-to-mvr.arms.mawno] +type = "integer" +tagged = false +index = true fk = "packagedata.mawno" -arms = [ - "index", - "boundname", -] -[observations.mwe.id] +[observations.fw-rate-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.mwe] +type = "union" +tagged = false + +[observations.mwe.arms.mawno] +type = "record" +tagged = false + +[observations.mwe.arms.mawno.fields.mawno] +type = "integer" +tagged = false +index = true fk = "packagedata.mawno" -arms = [ - "index", - "boundname", -] -[observations.mwe.id2] -name = "iconn" -arms = [ - "index", -] +[observations.mwe.arms.mawno.fields.iconn] +type = "integer" +tagged = false +index = true + +[observations.mwe.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.yaml index 1978f79f..9b4c5ce3 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-mwe.yaml @@ -377,60 +377,118 @@ memory: - ncv observations: temperature: - id: - fk: packagedata.mawno - arms: - - index - - boundname + type: union + tagged: false + arms: + mawno: + type: integer + tagged: false + index: true + fk: packagedata.mawno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.mawno - arms: - - index - - boundname + type: union + tagged: false + arms: + mawno: + type: integer + tagged: false + index: true + fk: packagedata.mawno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.mawno - arms: - - index - - boundname + type: union + tagged: false + arms: + mawno: + type: integer + tagged: false + index: true + fk: packagedata.mawno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.mawno - arms: - - index - - boundname + type: union + tagged: false + arms: + mawno: + type: integer + tagged: false + index: true + fk: packagedata.mawno + boundname: + type: string + tagged: false rate: - id: - fk: packagedata.mawno - arms: - - index - - boundname + type: union + tagged: false + arms: + mawno: + type: integer + tagged: false + index: true + fk: packagedata.mawno + boundname: + type: string + tagged: false fw-rate: - id: - fk: packagedata.mawno - arms: - - index - - boundname + type: union + tagged: false + arms: + mawno: + type: integer + tagged: false + index: true + fk: packagedata.mawno + boundname: + type: string + tagged: false rate-to-mvr: - id: - fk: packagedata.mawno - arms: - - index - - boundname + type: union + tagged: false + arms: + mawno: + type: integer + tagged: false + index: true + fk: packagedata.mawno + boundname: + type: string + tagged: false fw-rate-to-mvr: - id: - fk: packagedata.mawno - arms: - - index - - boundname + type: union + tagged: false + arms: + mawno: + type: integer + tagged: false + index: true + fk: packagedata.mawno + boundname: + type: string + tagged: false mwe: - id: - fk: packagedata.mawno - arms: - - index - - boundname - id2: - name: iconn - arms: - - index + type: union + tagged: false + arms: + mawno: + type: record + tagged: false + fields: + mawno: + type: integer + tagged: false + index: true + fk: packagedata.mawno + iconn: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.json index ebf72b36..26347315 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.json @@ -228,22 +228,39 @@ }, "observations": { "temperature": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "flow-ja-face": { - "id": { - "arms": [ - "cellid" - ] - }, - "id2": { - "arms": [ - "cellid" - ] + "type": "record", + "tagged": false, + "fields": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "cellid2": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.toml index 94ffddac..858101ae 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.toml @@ -204,17 +204,36 @@ shape = [ "nja", ] -[observations.temperature.id] -arms = [ - "cellid", +[observations.temperature] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id] -arms = [ - "cellid", +[observations.flow-ja-face] +type = "record" +tagged = false + +[observations.flow-ja-face.fields.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id2] -arms = [ - "cellid", +[observations.flow-ja-face.fields.cellid2] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.yaml index dc241903..b7312ba6 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-nam.yaml @@ -205,13 +205,30 @@ memory: - nja observations: temperature: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim flow-ja-face: - id: - arms: - - cellid - id2: - arms: - - cellid + type: record + tagged: false + fields: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + cellid2: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.json index ebfb225c..bab54a85 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.json @@ -458,126 +458,223 @@ }, "observations": { "temperature": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "sfe": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "strmbd-cond": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rainfall": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "evaporation": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "runoff": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-inflow": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-outflow": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "flow-ja-face": { - "id": { - "fk": "packagedata.rno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "fk": "packagedata.rno", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "rno": { + "type": "record", + "tagged": false, + "fields": { + "rno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + }, + "rno2": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.rno" + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.toml index e4d47d17..b2a75ac2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.toml @@ -418,99 +418,194 @@ shape = [ "ncv", ] -[observations.temperature.id] +[observations.temperature] +type = "union" +tagged = false + +[observations.temperature.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.temperature.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.sfe.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.sfe] +type = "union" +tagged = false + +[observations.sfe.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.strmbd-cond.id] +[observations.sfe.arms.boundname] +type = "string" +tagged = false + +[observations.strmbd-cond] +type = "union" +tagged = false + +[observations.strmbd-cond.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.to-mvr.id] +[observations.strmbd-cond.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.rainfall.id] +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.rainfall] +type = "union" +tagged = false + +[observations.rainfall.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.evaporation.id] +[observations.rainfall.arms.boundname] +type = "string" +tagged = false + +[observations.evaporation] +type = "union" +tagged = false + +[observations.evaporation.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.runoff.id] +[observations.evaporation.arms.boundname] +type = "string" +tagged = false + +[observations.runoff] +type = "union" +tagged = false + +[observations.runoff.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.ext-inflow.id] +[observations.runoff.arms.boundname] +type = "string" +tagged = false + +[observations.ext-inflow] +type = "union" +tagged = false + +[observations.ext-inflow.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.ext-outflow.id] +[observations.ext-inflow.arms.boundname] +type = "string" +tagged = false + +[observations.ext-outflow] +type = "union" +tagged = false + +[observations.ext-outflow.arms.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id] +[observations.ext-outflow.arms.boundname] +type = "string" +tagged = false + +[observations.flow-ja-face] +type = "union" +tagged = false + +[observations.flow-ja-face.arms.rno] +type = "record" +tagged = false + +[observations.flow-ja-face.arms.rno.fields.rno] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id2] +[observations.flow-ja-face.arms.rno.fields.rno2] +type = "integer" +tagged = false +index = true fk = "packagedata.rno" -arms = [ - "index", -] + +[observations.flow-ja-face.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.yaml index 46c659b8..b7151809 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-sfe.yaml @@ -440,84 +440,167 @@ memory: - ncv observations: temperature: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false sfe: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false strmbd-cond: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false to-mvr: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false rainfall: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false evaporation: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false runoff: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false ext-inflow: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false ext-outflow: - id: - fk: packagedata.rno - arms: - - index - - boundname + type: union + tagged: false + arms: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false flow-ja-face: - id: - fk: packagedata.rno - arms: - - index - - boundname - id2: - fk: packagedata.rno - arms: - - index + type: union + tagged: false + arms: + rno: + type: record + tagged: false + fields: + rno: + type: integer + tagged: false + index: true + fk: packagedata.rno + rno2: + type: integer + tagged: false + index: true + fk: packagedata.rno + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.json index d95d84d7..24d81d17 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.json @@ -376,108 +376,191 @@ }, "observations": { "temperature": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "uze": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "thermal-equil": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "infiltration": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rej-inf": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "uzet": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rej-inf-to-mvr": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "flow-ja-face": { - "id": { - "fk": "packagedata.uzfno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "fk": "packagedata.uzfno", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "uzfno": { + "type": "record", + "tagged": false, + "fields": { + "uzfno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + }, + "uzfno2": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.uzfno" + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.toml index c9325463..a7098c70 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.toml @@ -336,85 +336,166 @@ shape = [ "ncv", ] -[observations.temperature.id] +[observations.temperature] +type = "union" +tagged = false + +[observations.temperature.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.temperature.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.uze.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.uze] +type = "union" +tagged = false + +[observations.uze.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.thermal-equil.id] +[observations.uze.arms.boundname] +type = "string" +tagged = false + +[observations.thermal-equil] +type = "union" +tagged = false + +[observations.thermal-equil.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.infiltration.id] +[observations.thermal-equil.arms.boundname] +type = "string" +tagged = false + +[observations.infiltration] +type = "union" +tagged = false + +[observations.infiltration.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.rej-inf.id] +[observations.infiltration.arms.boundname] +type = "string" +tagged = false + +[observations.rej-inf] +type = "union" +tagged = false + +[observations.rej-inf.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.uzet.id] +[observations.rej-inf.arms.boundname] +type = "string" +tagged = false + +[observations.uzet] +type = "union" +tagged = false + +[observations.uzet.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.rej-inf-to-mvr.id] +[observations.uzet.arms.boundname] +type = "string" +tagged = false + +[observations.rej-inf-to-mvr] +type = "union" +tagged = false + +[observations.rej-inf-to-mvr.arms.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id] +[observations.rej-inf-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.flow-ja-face] +type = "union" +tagged = false + +[observations.flow-ja-face.arms.uzfno] +type = "record" +tagged = false + +[observations.flow-ja-face.arms.uzfno.fields.uzfno] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id2] +[observations.flow-ja-face.arms.uzfno.fields.uzfno2] +type = "integer" +tagged = false +index = true fk = "packagedata.uzfno" -arms = [ - "index", -] + +[observations.flow-ja-face.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.yaml index 0c2a4186..89967deb 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwe-uze.yaml @@ -366,72 +366,143 @@ memory: - ncv observations: temperature: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false uze: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false thermal-equil: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false infiltration: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false rej-inf: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false uzet: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false rej-inf-to-mvr: - id: - fk: packagedata.uzfno - arms: - - index - - boundname + type: union + tagged: false + arms: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false flow-ja-face: - id: - fk: packagedata.uzfno - arms: - - index - - boundname - id2: - fk: packagedata.uzfno - arms: - - index + type: union + tagged: false + arms: + uzfno: + type: record + tagged: false + fields: + uzfno: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + uzfno2: + type: integer + tagged: false + index: true + fk: packagedata.uzfno + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.json index 80ba6273..ad449532 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.json @@ -96,19 +96,43 @@ }, "observations": { "api": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.toml index 8a007dd2..5e0ea8a7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.toml @@ -78,14 +78,38 @@ set_in = "ar" source = "maxbound" type = "integer" -[observations.api.id] -arms = [ - "cellid", - "boundname", +[observations.api] +type = "union" +tagged = false + +[observations.api.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.api.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.yaml index 84777456..b92d7ed8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-api.yaml @@ -84,12 +84,32 @@ memory: type: integer observations: api: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.json index d45268d6..92265a64 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.json @@ -322,11 +322,23 @@ }, "observations": { "chd": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.toml index 4dfa45f4..fe602a5e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.toml @@ -294,8 +294,20 @@ shape = [ "naux", ] -[observations.chd.id] -arms = [ - "cellid", - "boundname", +[observations.chd] +type = "union" +tagged = false + +[observations.chd.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.chd.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.yaml index d2520332..6f61f82d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chd.yaml @@ -288,7 +288,17 @@ memory: - naux observations: chd: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.json index c04b7fee..3ff56aeb 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.json @@ -308,11 +308,23 @@ }, "observations": { "chd": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.toml index 45b6c825..16d45794 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.toml @@ -282,8 +282,20 @@ shape = [ "naux", ] -[observations.chd.id] -arms = [ - "cellid", - "boundname", +[observations.chd] +type = "union" +tagged = false + +[observations.chd.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.chd.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.yaml index 476fb9b0..d6afb09f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-chdg.yaml @@ -273,7 +273,17 @@ memory: - naux observations: chd: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.json index aacac923..d5efdfbc 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.json @@ -703,323 +703,411 @@ }, "observations": { "csub": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "inelastic-csub": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "elastic-csub": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "delay-flowtop": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "delay-flowbot": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "sk": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" }, "ske": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" }, "theta": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" }, "thickness": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" }, "interbed-compaction": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" }, "interbed-compaction-pct": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" }, "inelastic-compaction": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" }, "elastic-compaction": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" }, "delay-head": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - }, - "id2": { - "name": "idcellno", - "arms": [ - "index" - ] + "type": "record", + "tagged": false, + "fields": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "idcellno": { + "type": "integer", + "tagged": false, + "index": true + } } }, "delay-gstress": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - }, - "id2": { - "name": "idcellno", - "arms": [ - "index" - ] + "type": "record", + "tagged": false, + "fields": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "idcellno": { + "type": "integer", + "tagged": false, + "index": true + } } }, "delay-estress": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - }, - "id2": { - "name": "idcellno", - "arms": [ - "index" - ] + "type": "record", + "tagged": false, + "fields": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "idcellno": { + "type": "integer", + "tagged": false, + "index": true + } } }, "delay-preconstress": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - }, - "id2": { - "name": "idcellno", - "arms": [ - "index" - ] + "type": "record", + "tagged": false, + "fields": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "idcellno": { + "type": "integer", + "tagged": false, + "index": true + } } }, "delay-compaction": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - }, - "id2": { - "name": "idcellno", - "arms": [ - "index" - ] + "type": "record", + "tagged": false, + "fields": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "idcellno": { + "type": "integer", + "tagged": false, + "index": true + } } }, "delay-thickness": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - }, - "id2": { - "name": "idcellno", - "arms": [ - "index" - ] + "type": "record", + "tagged": false, + "fields": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "idcellno": { + "type": "integer", + "tagged": false, + "index": true + } } }, "delay-theta": { - "id": { - "fk": "packagedata.icsubno", - "arms": [ - "index" - ] - }, - "id2": { - "name": "idcellno", - "arms": [ - "index" - ] + "type": "record", + "tagged": false, + "fields": { + "icsubno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.icsubno" + }, + "idcellno": { + "type": "integer", + "tagged": false, + "index": true + } } }, "coarse-csub": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "csub-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "wcomp-csub-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "sk-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "ske-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "estress-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "gstress-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "preconstress-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "coarse-compaction": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "compaction-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "inelastic-compaction-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "elastic-compaction-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "coarse-thickness": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "thickness-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "coarse-theta": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "theta-cell": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.toml index a2255815..08395b4d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.toml @@ -647,249 +647,385 @@ shape = [ "nodes", ] -[observations.csub.id] +[observations.csub] +type = "union" +tagged = false + +[observations.csub.arms.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", - "boundname", -] -[observations.inelastic-csub.id] +[observations.csub.arms.boundname] +type = "string" +tagged = false + +[observations.inelastic-csub] +type = "union" +tagged = false + +[observations.inelastic-csub.arms.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", - "boundname", -] -[observations.elastic-csub.id] +[observations.inelastic-csub.arms.boundname] +type = "string" +tagged = false + +[observations.elastic-csub] +type = "union" +tagged = false + +[observations.elastic-csub.arms.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", - "boundname", -] -[observations.delay-flowtop.id] +[observations.elastic-csub.arms.boundname] +type = "string" +tagged = false + +[observations.delay-flowtop] +type = "union" +tagged = false + +[observations.delay-flowtop.arms.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", - "boundname", -] -[observations.delay-flowbot.id] +[observations.delay-flowtop.arms.boundname] +type = "string" +tagged = false + +[observations.delay-flowbot] +type = "union" +tagged = false + +[observations.delay-flowbot.arms.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", - "boundname", -] -[observations.sk.id] +[observations.delay-flowbot.arms.boundname] +type = "string" +tagged = false + +[observations.sk] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.ske.id] +[observations.ske] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.theta.id] +[observations.theta] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.thickness.id] +[observations.thickness] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.interbed-compaction.id] +[observations.interbed-compaction] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.interbed-compaction-pct.id] +[observations.interbed-compaction-pct] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.inelastic-compaction.id] +[observations.inelastic-compaction] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.elastic-compaction.id] +[observations.elastic-compaction] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.delay-head.id] +[observations.delay-head] +type = "record" +tagged = false + +[observations.delay-head.fields.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.delay-head.id2] -name = "idcellno" -arms = [ - "index", -] +[observations.delay-head.fields.idcellno] +type = "integer" +tagged = false +index = true -[observations.delay-gstress.id] +[observations.delay-gstress] +type = "record" +tagged = false + +[observations.delay-gstress.fields.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.delay-gstress.id2] -name = "idcellno" -arms = [ - "index", -] +[observations.delay-gstress.fields.idcellno] +type = "integer" +tagged = false +index = true + +[observations.delay-estress] +type = "record" +tagged = false -[observations.delay-estress.id] +[observations.delay-estress.fields.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.delay-estress.id2] -name = "idcellno" -arms = [ - "index", -] +[observations.delay-estress.fields.idcellno] +type = "integer" +tagged = false +index = true + +[observations.delay-preconstress] +type = "record" +tagged = false -[observations.delay-preconstress.id] +[observations.delay-preconstress.fields.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.delay-preconstress.id2] -name = "idcellno" -arms = [ - "index", -] +[observations.delay-preconstress.fields.idcellno] +type = "integer" +tagged = false +index = true -[observations.delay-compaction.id] +[observations.delay-compaction] +type = "record" +tagged = false + +[observations.delay-compaction.fields.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.delay-compaction.id2] -name = "idcellno" -arms = [ - "index", -] +[observations.delay-compaction.fields.idcellno] +type = "integer" +tagged = false +index = true + +[observations.delay-thickness] +type = "record" +tagged = false -[observations.delay-thickness.id] +[observations.delay-thickness.fields.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.delay-thickness.id2] -name = "idcellno" -arms = [ - "index", -] +[observations.delay-thickness.fields.idcellno] +type = "integer" +tagged = false +index = true + +[observations.delay-theta] +type = "record" +tagged = false -[observations.delay-theta.id] +[observations.delay-theta.fields.icsubno] +type = "integer" +tagged = false +index = true fk = "packagedata.icsubno" -arms = [ - "index", -] -[observations.delay-theta.id2] -name = "idcellno" -arms = [ - "index", -] +[observations.delay-theta.fields.idcellno] +type = "integer" +tagged = false +index = true -[observations.coarse-csub.id] -arms = [ - "cellid", +[observations.coarse-csub] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.csub-cell.id] -arms = [ - "cellid", +[observations.csub-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.wcomp-csub-cell.id] -arms = [ - "cellid", +[observations.wcomp-csub-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.sk-cell.id] -arms = [ - "cellid", +[observations.sk-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.ske-cell.id] -arms = [ - "cellid", +[observations.ske-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.estress-cell.id] -arms = [ - "cellid", +[observations.estress-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.gstress-cell.id] -arms = [ - "cellid", +[observations.gstress-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.preconstress-cell.id] -arms = [ - "cellid", +[observations.preconstress-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.coarse-compaction.id] -arms = [ - "cellid", +[observations.coarse-compaction] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.compaction-cell.id] -arms = [ - "cellid", +[observations.compaction-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.inelastic-compaction-cell.id] -arms = [ - "cellid", +[observations.inelastic-compaction-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.elastic-compaction-cell.id] -arms = [ - "cellid", +[observations.elastic-compaction-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.coarse-thickness.id] -arms = [ - "cellid", +[observations.coarse-thickness] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.thickness-cell.id] -arms = [ - "cellid", +[observations.thickness-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.coarse-theta.id] -arms = [ - "cellid", +[observations.coarse-theta] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.theta-cell.id] -arms = [ - "cellid", +[observations.theta-cell] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.yaml index b08f79c2..02179c11 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-csub.yaml @@ -660,199 +660,321 @@ memory: - nodes observations: csub: - id: - fk: packagedata.icsubno - arms: - - index - - boundname + type: union + tagged: false + arms: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + boundname: + type: string + tagged: false inelastic-csub: - id: - fk: packagedata.icsubno - arms: - - index - - boundname + type: union + tagged: false + arms: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + boundname: + type: string + tagged: false elastic-csub: - id: - fk: packagedata.icsubno - arms: - - index - - boundname + type: union + tagged: false + arms: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + boundname: + type: string + tagged: false delay-flowtop: - id: - fk: packagedata.icsubno - arms: - - index - - boundname + type: union + tagged: false + arms: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + boundname: + type: string + tagged: false delay-flowbot: - id: - fk: packagedata.icsubno - arms: - - index - - boundname + type: union + tagged: false + arms: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + boundname: + type: string + tagged: false sk: - id: - fk: packagedata.icsubno - arms: - - index + type: integer + tagged: false + index: true + fk: packagedata.icsubno ske: - id: - fk: packagedata.icsubno - arms: - - index + type: integer + tagged: false + index: true + fk: packagedata.icsubno theta: - id: - fk: packagedata.icsubno - arms: - - index + type: integer + tagged: false + index: true + fk: packagedata.icsubno thickness: - id: - fk: packagedata.icsubno - arms: - - index + type: integer + tagged: false + index: true + fk: packagedata.icsubno interbed-compaction: - id: - fk: packagedata.icsubno - arms: - - index + type: integer + tagged: false + index: true + fk: packagedata.icsubno interbed-compaction-pct: - id: - fk: packagedata.icsubno - arms: - - index + type: integer + tagged: false + index: true + fk: packagedata.icsubno inelastic-compaction: - id: - fk: packagedata.icsubno - arms: - - index + type: integer + tagged: false + index: true + fk: packagedata.icsubno elastic-compaction: - id: - fk: packagedata.icsubno - arms: - - index + type: integer + tagged: false + index: true + fk: packagedata.icsubno delay-head: - id: - fk: packagedata.icsubno - arms: - - index - id2: - name: idcellno - arms: - - index + type: record + tagged: false + fields: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + idcellno: + type: integer + tagged: false + index: true delay-gstress: - id: - fk: packagedata.icsubno - arms: - - index - id2: - name: idcellno - arms: - - index + type: record + tagged: false + fields: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + idcellno: + type: integer + tagged: false + index: true delay-estress: - id: - fk: packagedata.icsubno - arms: - - index - id2: - name: idcellno - arms: - - index + type: record + tagged: false + fields: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + idcellno: + type: integer + tagged: false + index: true delay-preconstress: - id: - fk: packagedata.icsubno - arms: - - index - id2: - name: idcellno - arms: - - index + type: record + tagged: false + fields: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + idcellno: + type: integer + tagged: false + index: true delay-compaction: - id: - fk: packagedata.icsubno - arms: - - index - id2: - name: idcellno - arms: - - index + type: record + tagged: false + fields: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + idcellno: + type: integer + tagged: false + index: true delay-thickness: - id: - fk: packagedata.icsubno - arms: - - index - id2: - name: idcellno - arms: - - index + type: record + tagged: false + fields: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + idcellno: + type: integer + tagged: false + index: true delay-theta: - id: - fk: packagedata.icsubno - arms: - - index - id2: - name: idcellno - arms: - - index + type: record + tagged: false + fields: + icsubno: + type: integer + tagged: false + index: true + fk: packagedata.icsubno + idcellno: + type: integer + tagged: false + index: true coarse-csub: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim csub-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim wcomp-csub-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim sk-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim ske-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim estress-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim gstress-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim preconstress-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim coarse-compaction: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim compaction-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim inelastic-compaction-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim elastic-compaction-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim coarse-thickness: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim thickness-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim coarse-theta: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim theta-cell: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.json index 48bfa638..f8b60d41 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.json @@ -342,19 +342,43 @@ }, "observations": { "drn": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.toml index 169df73e..f90b2b08 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.toml @@ -314,14 +314,38 @@ shape = [ "naux", ] -[observations.drn.id] -arms = [ - "cellid", - "boundname", +[observations.drn] +type = "union" +tagged = false + +[observations.drn.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.drn.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.yaml index bb60b857..ebec6d7d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drn.yaml @@ -317,12 +317,32 @@ memory: - naux observations: drn: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.json index 7f74cff5..f1e4c1be 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.json @@ -333,19 +333,43 @@ }, "observations": { "drn": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.toml index b56f5857..d236529c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.toml @@ -307,14 +307,38 @@ shape = [ "naux", ] -[observations.drn.id] -arms = [ - "cellid", - "boundname", +[observations.drn] +type = "union" +tagged = false + +[observations.drn.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.drn.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.yaml index 10d7afc6..281c5cb4 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-drng.yaml @@ -304,12 +304,32 @@ memory: - naux observations: drn: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.json index ccf58cc3..5738a0e0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.json @@ -386,11 +386,23 @@ }, "observations": { "evt": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.toml index 0f59ad88..16e86c6b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.toml @@ -358,8 +358,20 @@ shape = [ "naux", ] -[observations.evt.id] -arms = [ - "cellid", - "boundname", +[observations.evt] +type = "union" +tagged = false + +[observations.evt.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.evt.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.yaml index ae2c31a9..cec70e3c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evt.yaml @@ -363,7 +363,17 @@ memory: - naux observations: evt: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.json index 4c34ff91..a269f6a6 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.json @@ -344,11 +344,23 @@ }, "observations": { "evt": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.toml index e85598b2..d5a6d36f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.toml @@ -320,8 +320,20 @@ shape = [ "naux", ] -[observations.evt.id] -arms = [ - "cellid", - "boundname", +[observations.evt] +type = "union" +tagged = false + +[observations.evt.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.evt.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.yaml index 77163fea..3d93ca77 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-evta.yaml @@ -309,7 +309,17 @@ memory: - naux observations: evt: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.json index 44b7b8dd..a3e0497b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.json @@ -324,19 +324,43 @@ }, "observations": { "ghb": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.toml index 9b552f82..d4b3ed4a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.toml @@ -296,14 +296,38 @@ shape = [ "naux", ] -[observations.ghb.id] -arms = [ - "cellid", - "boundname", +[observations.ghb] +type = "union" +tagged = false + +[observations.ghb.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.ghb.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.yaml index 07aaf199..76d56415 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghb.yaml @@ -295,12 +295,32 @@ memory: - naux observations: ghb: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.json index c6825637..4c0c25b4 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.json @@ -315,19 +315,43 @@ }, "observations": { "ghb": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.toml index 78a567d1..c14a0918 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.toml @@ -289,14 +289,38 @@ shape = [ "naux", ] -[observations.ghb.id] -arms = [ - "cellid", - "boundname", +[observations.ghb] +type = "union" +tagged = false + +[observations.ghb.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.ghb.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml index ddebc348..6b6f8f93 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-ghbg.yaml @@ -282,12 +282,32 @@ memory: - naux observations: ghb: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.json index baddb1cd..f6652ae0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.json @@ -777,192 +777,340 @@ }, "observations": { "stage": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-inflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "outlet-inflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "inflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rainfall": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "runoff": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "withdrawal": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "evaporation": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "volume": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "surface-area": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "lak": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "name": "iconn", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "iconn": { + "type": "integer", + "tagged": false, + "index": true + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "wetted-area": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "name": "iconn", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "iconn": { + "type": "integer", + "tagged": false, + "index": true + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "conductance": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "name": "iconn", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "iconn": { + "type": "integer", + "tagged": false, + "index": true + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-outflow": { - "id": { - "fk": "outlets.outletno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "outletno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "outlets.outletno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "fk": "outlets.outletno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "outletno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "outlets.outletno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "outlet": { - "id": { - "fk": "outlets.outletno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "outletno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "outlets.outletno" + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.toml index 5e53554f..abfb46bb 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.toml @@ -691,153 +691,295 @@ set_in = "ar" source = "ntables" type = "integer" -[observations.stage.id] +[observations.stage] +type = "union" +tagged = false + +[observations.stage.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.ext-inflow.id] +[observations.stage.arms.boundname] +type = "string" +tagged = false + +[observations.ext-inflow] +type = "union" +tagged = false + +[observations.ext-inflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.outlet-inflow.id] +[observations.ext-inflow.arms.boundname] +type = "string" +tagged = false + +[observations.outlet-inflow] +type = "union" +tagged = false + +[observations.outlet-inflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.inflow.id] +[observations.outlet-inflow.arms.boundname] +type = "string" +tagged = false + +[observations.inflow] +type = "union" +tagged = false + +[observations.inflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.inflow.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rainfall.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.rainfall] +type = "union" +tagged = false + +[observations.rainfall.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.runoff.id] +[observations.rainfall.arms.boundname] +type = "string" +tagged = false + +[observations.runoff] +type = "union" +tagged = false + +[observations.runoff.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.withdrawal.id] +[observations.runoff.arms.boundname] +type = "string" +tagged = false + +[observations.withdrawal] +type = "union" +tagged = false + +[observations.withdrawal.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.evaporation.id] +[observations.withdrawal.arms.boundname] +type = "string" +tagged = false + +[observations.evaporation] +type = "union" +tagged = false + +[observations.evaporation.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.evaporation.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.volume.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.volume] +type = "union" +tagged = false + +[observations.volume.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.surface-area.id] +[observations.volume.arms.boundname] +type = "string" +tagged = false + +[observations.surface-area] +type = "union" +tagged = false + +[observations.surface-area.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.lak.id] +[observations.surface-area.arms.boundname] +type = "string" +tagged = false + +[observations.lak] +type = "union" +tagged = false + +[observations.lak.arms.ifno] +type = "record" +tagged = false + +[observations.lak.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.lak.id2] -name = "iconn" -arms = [ - "index", -] +[observations.lak.arms.ifno.fields.iconn] +type = "integer" +tagged = false +index = true + +[observations.lak.arms.boundname] +type = "string" +tagged = false + +[observations.wetted-area] +type = "union" +tagged = false + +[observations.wetted-area.arms.ifno] +type = "record" +tagged = false -[observations.wetted-area.id] +[observations.wetted-area.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.wetted-area.id2] -name = "iconn" -arms = [ - "index", -] +[observations.wetted-area.arms.ifno.fields.iconn] +type = "integer" +tagged = false +index = true -[observations.conductance.id] +[observations.wetted-area.arms.boundname] +type = "string" +tagged = false + +[observations.conductance] +type = "union" +tagged = false + +[observations.conductance.arms.ifno] +type = "record" +tagged = false + +[observations.conductance.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.conductance.id2] -name = "iconn" -arms = [ - "index", -] +[observations.conductance.arms.ifno.fields.iconn] +type = "integer" +tagged = false +index = true -[observations.ext-outflow.id] +[observations.conductance.arms.boundname] +type = "string" +tagged = false + +[observations.ext-outflow] +type = "union" +tagged = false + +[observations.ext-outflow.arms.outletno] +type = "integer" +tagged = false +index = true fk = "outlets.outletno" -arms = [ - "index", - "boundname", -] -[observations.to-mvr.id] +[observations.ext-outflow.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.outletno] +type = "integer" +tagged = false +index = true fk = "outlets.outletno" -arms = [ - "index", - "boundname", -] -[observations.outlet.id] +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.outlet] +type = "union" +tagged = false + +[observations.outlet.arms.outletno] +type = "integer" +tagged = false +index = true fk = "outlets.outletno" -arms = [ - "index", - "boundname", -] + +[observations.outlet.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.yaml index ebc56b98..700388ab 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-lak.yaml @@ -838,128 +838,254 @@ memory: type: integer observations: stage: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false ext-inflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false outlet-inflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false inflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rainfall: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false runoff: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false withdrawal: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false evaporation: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false volume: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false surface-area: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false lak: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - name: iconn - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + iconn: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false wetted-area: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - name: iconn - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + iconn: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false conductance: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - name: iconn - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + iconn: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false ext-outflow: - id: - fk: outlets.outletno - arms: - - index - - boundname + type: union + tagged: false + arms: + outletno: + type: integer + tagged: false + index: true + fk: outlets.outletno + boundname: + type: string + tagged: false to-mvr: - id: - fk: outlets.outletno - arms: - - index - - boundname + type: union + tagged: false + arms: + outletno: + type: integer + tagged: false + index: true + fk: outlets.outletno + boundname: + type: string + tagged: false outlet: - id: - fk: outlets.outletno - arms: - - index - - boundname + type: union + tagged: false + arms: + outletno: + type: integer + tagged: false + index: true + fk: outlets.outletno + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.json index 4df37b2d..4887333c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.json @@ -507,114 +507,201 @@ }, "observations": { "head": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rate": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rate-to-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "fw-rate": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "fw-to-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "fw-conductance": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "maw": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "name": "icon", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "icon": { + "type": "integer", + "tagged": false, + "index": true + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "conductance": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "name": "icon", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "icon": { + "type": "integer", + "tagged": false, + "index": true + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.toml index 0d4175c0..e98cf307 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.toml @@ -451,91 +451,174 @@ set_in = "ar" source = "nmawwells" type = "integer" -[observations.head.id] +[observations.head] +type = "union" +tagged = false + +[observations.head.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.head.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rate.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.rate] +type = "union" +tagged = false + +[observations.rate.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rate-to-mvr.id] +[observations.rate.arms.boundname] +type = "string" +tagged = false + +[observations.rate-to-mvr] +type = "union" +tagged = false + +[observations.rate-to-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.fw-rate.id] +[observations.rate-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.fw-rate] +type = "union" +tagged = false + +[observations.fw-rate.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.fw-to-mvr.id] +[observations.fw-rate.arms.boundname] +type = "string" +tagged = false + +[observations.fw-to-mvr] +type = "union" +tagged = false + +[observations.fw-to-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.fw-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.fw-conductance.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.fw-conductance] +type = "union" +tagged = false + +[observations.fw-conductance.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.maw.id] +[observations.fw-conductance.arms.boundname] +type = "string" +tagged = false + +[observations.maw] +type = "union" +tagged = false + +[observations.maw.arms.ifno] +type = "record" +tagged = false + +[observations.maw.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.maw.id2] -name = "icon" -arms = [ - "index", -] +[observations.maw.arms.ifno.fields.icon] +type = "integer" +tagged = false +index = true + +[observations.maw.arms.boundname] +type = "string" +tagged = false -[observations.conductance.id] +[observations.conductance] +type = "union" +tagged = false + +[observations.conductance.arms.ifno] +type = "record" +tagged = false + +[observations.conductance.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.conductance.id2] -name = "icon" -arms = [ - "index", -] +[observations.conductance.arms.ifno.fields.icon] +type = "integer" +tagged = false +index = true + +[observations.conductance.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.yaml index ab9b63e3..a5530c6a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-maw.yaml @@ -582,76 +582,150 @@ memory: type: integer observations: head: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rate: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rate-to-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false fw-rate: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false fw-to-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false fw-conductance: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false maw: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - name: icon - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + icon: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false conductance: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - name: icon - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + icon: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.json index 612ad9ec..5d4d9240 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.json @@ -236,29 +236,49 @@ }, "observations": { "head": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "drawdown": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "flow-ja-face": { - "id": { - "arms": [ - "cellid" - ] - }, - "id2": { - "arms": [ - "cellid" - ] + "type": "record", + "tagged": false, + "fields": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "cellid2": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.toml index 890193b7..ad0122e4 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.toml @@ -210,22 +210,46 @@ shape = [ "nja", ] -[observations.head.id] -arms = [ - "cellid", +[observations.head] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.drawdown.id] -arms = [ - "cellid", +[observations.drawdown] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id] -arms = [ - "cellid", +[observations.flow-ja-face] +type = "record" +tagged = false + +[observations.flow-ja-face.fields.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id2] -arms = [ - "cellid", +[observations.flow-ja-face.fields.cellid2] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.yaml index e5d20f44..a68de218 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-nam.yaml @@ -215,17 +215,38 @@ memory: - nja observations: head: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim drawdown: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim flow-ja-face: - id: - arms: - - cellid - id2: - arms: - - cellid + type: record + tagged: false + fields: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + cellid2: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.json index c07b9846..f1154601 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.json @@ -316,11 +316,23 @@ }, "observations": { "rch": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.toml index f7b45957..7d882173 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.toml @@ -288,8 +288,20 @@ shape = [ "naux", ] -[observations.rch.id] -arms = [ - "cellid", - "boundname", +[observations.rch] +type = "union" +tagged = false + +[observations.rch.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.rch.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.yaml index 8a06807e..2da81895 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rch.yaml @@ -286,7 +286,17 @@ memory: - naux observations: rch: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.json index 336dec70..a7862c57 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.json @@ -322,11 +322,23 @@ }, "observations": { "rch": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.toml index 5536bbc8..f0e83df1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.toml @@ -298,8 +298,20 @@ shape = [ "naux", ] -[observations.rch.id] -arms = [ - "cellid", - "boundname", +[observations.rch] +type = "union" +tagged = false + +[observations.rch.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.rch.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.yaml index 56c7f447..cf7ccc51 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rcha.yaml @@ -293,7 +293,17 @@ memory: - naux observations: rch: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.json index 6c918ed7..bce0da9e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.json @@ -331,19 +331,43 @@ }, "observations": { "riv": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.toml index 6e330a2c..5f9eed4e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.toml @@ -303,14 +303,38 @@ shape = [ "naux", ] -[observations.riv.id] -arms = [ - "cellid", - "boundname", +[observations.riv] +type = "union" +tagged = false + +[observations.riv.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.riv.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.yaml index 992f0cb7..53df75d1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-riv.yaml @@ -302,12 +302,32 @@ memory: - naux observations: riv: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.json index 54f89979..a2c5b3bb 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.json @@ -327,19 +327,43 @@ }, "observations": { "riv": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.toml index 5322f5e5..a948f3b2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.toml @@ -301,14 +301,38 @@ shape = [ "naux", ] -[observations.riv.id] -arms = [ - "cellid", - "boundname", +[observations.riv] +type = "union" +tagged = false + +[observations.riv.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.riv.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.yaml index 3e667fd2..59ce263e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-rivg.yaml @@ -291,12 +291,32 @@ memory: - naux observations: riv: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.json index 08a2b269..de6f874e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.json @@ -758,156 +758,275 @@ }, "observations": { "stage": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-inflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "inflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rainfall": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "runoff": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "sfr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "evaporation": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "outflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-outflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "upstream-flow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "downstream-flow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "depth": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "wet-perimeter": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "wet-area": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "wet-width": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.toml index 963a5d3e..1c020796 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.toml @@ -684,121 +684,240 @@ shape = [ "maxbound", ] -[observations.stage.id] +[observations.stage] +type = "union" +tagged = false + +[observations.stage.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.ext-inflow.id] +[observations.stage.arms.boundname] +type = "string" +tagged = false + +[observations.ext-inflow] +type = "union" +tagged = false + +[observations.ext-inflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.inflow.id] +[observations.ext-inflow.arms.boundname] +type = "string" +tagged = false + +[observations.inflow] +type = "union" +tagged = false + +[observations.inflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.inflow.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rainfall.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.rainfall] +type = "union" +tagged = false + +[observations.rainfall.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.runoff.id] +[observations.rainfall.arms.boundname] +type = "string" +tagged = false + +[observations.runoff] +type = "union" +tagged = false + +[observations.runoff.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.sfr.id] +[observations.runoff.arms.boundname] +type = "string" +tagged = false + +[observations.sfr] +type = "union" +tagged = false + +[observations.sfr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.evaporation.id] +[observations.sfr.arms.boundname] +type = "string" +tagged = false + +[observations.evaporation] +type = "union" +tagged = false + +[observations.evaporation.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.outflow.id] +[observations.evaporation.arms.boundname] +type = "string" +tagged = false + +[observations.outflow] +type = "union" +tagged = false + +[observations.outflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.ext-outflow.id] +[observations.outflow.arms.boundname] +type = "string" +tagged = false + +[observations.ext-outflow] +type = "union" +tagged = false + +[observations.ext-outflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.to-mvr.id] +[observations.ext-outflow.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.upstream-flow.id] +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.upstream-flow] +type = "union" +tagged = false + +[observations.upstream-flow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.downstream-flow.id] +[observations.upstream-flow.arms.boundname] +type = "string" +tagged = false + +[observations.downstream-flow] +type = "union" +tagged = false + +[observations.downstream-flow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.depth.id] +[observations.downstream-flow.arms.boundname] +type = "string" +tagged = false + +[observations.depth] +type = "union" +tagged = false + +[observations.depth.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.wet-perimeter.id] +[observations.depth.arms.boundname] +type = "string" +tagged = false + +[observations.wet-perimeter] +type = "union" +tagged = false + +[observations.wet-perimeter.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.wet-area.id] +[observations.wet-perimeter.arms.boundname] +type = "string" +tagged = false + +[observations.wet-area] +type = "union" +tagged = false + +[observations.wet-area.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.wet-width.id] +[observations.wet-area.arms.boundname] +type = "string" +tagged = false + +[observations.wet-width] +type = "union" +tagged = false + +[observations.wet-width.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] + +[observations.wet-width.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.yaml index ff41c450..b3fc0f15 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-sfr.yaml @@ -803,104 +803,206 @@ memory: - maxbound observations: stage: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false ext-inflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false inflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rainfall: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false runoff: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false sfr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false evaporation: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false outflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false ext-outflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false to-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false upstream-flow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false downstream-flow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false depth: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false wet-perimeter: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false wet-area: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false wet-width: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.json index 7e70914b..4022e25e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.json @@ -439,116 +439,205 @@ }, "observations": { "uzf-gwrch": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "uzf-gwd": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "uzf-gwd-to-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "uzf-gwet": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "infiltration": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rej-inf": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rej-inf-to-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "uzet": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "net-infiltration": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "water-content": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "type": "double", - "name": "depth", - "with_boundname": true + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } + } + }, + "depth": { + "type": "double", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.toml index f02a0659..e9ef3f48 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.toml @@ -399,91 +399,178 @@ set_in = "ar" source = "nwavesets" type = "integer" -[observations.uzf-gwrch.id] +[observations.uzf-gwrch] +type = "union" +tagged = false + +[observations.uzf-gwrch.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.uzf-gwd.id] +[observations.uzf-gwrch.arms.boundname] +type = "string" +tagged = false + +[observations.uzf-gwd] +type = "union" +tagged = false + +[observations.uzf-gwd.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.uzf-gwd-to-mvr.id] +[observations.uzf-gwd.arms.boundname] +type = "string" +tagged = false + +[observations.uzf-gwd-to-mvr] +type = "union" +tagged = false + +[observations.uzf-gwd-to-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.uzf-gwet.id] +[observations.uzf-gwd-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.uzf-gwet] +type = "union" +tagged = false + +[observations.uzf-gwet.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.infiltration.id] +[observations.uzf-gwet.arms.boundname] +type = "string" +tagged = false + +[observations.infiltration] +type = "union" +tagged = false + +[observations.infiltration.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.infiltration.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rej-inf.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.rej-inf] +type = "union" +tagged = false + +[observations.rej-inf.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rej-inf-to-mvr.id] +[observations.rej-inf.arms.boundname] +type = "string" +tagged = false + +[observations.rej-inf-to-mvr] +type = "union" +tagged = false + +[observations.rej-inf-to-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.uzet.id] +[observations.rej-inf-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.uzet] +type = "union" +tagged = false + +[observations.uzet.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.uzet.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.net-infiltration.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.net-infiltration] +type = "union" +tagged = false + +[observations.net-infiltration.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.water-content.id] +[observations.net-infiltration.arms.boundname] +type = "string" +tagged = false + +[observations.water-content] +type = "record" +tagged = false + +[observations.water-content.fields.ifno] +type = "union" +tagged = false + +[observations.water-content.fields.ifno.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.water-content.id2] +[observations.water-content.fields.ifno.arms.boundname] +type = "string" +tagged = false + +[observations.water-content.fields.depth] type = "double" -name = "depth" -with_boundname = true +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.yaml index 914560d6..6f357653 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-uzf.yaml @@ -462,78 +462,153 @@ memory: type: integer observations: uzf-gwrch: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false uzf-gwd: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false uzf-gwd-to-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false uzf-gwet: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false infiltration: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rej-inf: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rej-inf-to-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false uzet: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false net-infiltration: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false water-content: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - type: double - name: depth - with_boundname: true + type: record + tagged: false + fields: + ifno: + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false + depth: + type: double + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.json index 3f78f05f..4730c88a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.json @@ -362,27 +362,63 @@ }, "observations": { "wel": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "wel-reduction": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.toml index 067b1b37..2affc3ff 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.toml @@ -332,20 +332,56 @@ shape = [ "naux", ] -[observations.wel.id] -arms = [ - "cellid", - "boundname", +[observations.wel] +type = "union" +tagged = false + +[observations.wel.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.wel.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.wel-reduction.id] -arms = [ - "cellid", - "boundname", +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.wel-reduction] +type = "union" +tagged = false + +[observations.wel-reduction.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.wel-reduction.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.yaml index 75cd5ecc..1d633a4f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-wel.yaml @@ -338,17 +338,47 @@ memory: - naux observations: wel: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false wel-reduction: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.json index fbf58a11..8fc970fd 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.json @@ -348,27 +348,63 @@ }, "observations": { "wel": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "wel-reduction": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.toml index 5546c93a..712ef5ff 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.toml @@ -320,20 +320,56 @@ shape = [ "naux", ] -[observations.wel.id] -arms = [ - "cellid", - "boundname", +[observations.wel] +type = "union" +tagged = false + +[observations.wel.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.wel.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.wel-reduction.id] -arms = [ - "cellid", - "boundname", +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.wel-reduction] +type = "union" +tagged = false + +[observations.wel-reduction.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.wel-reduction.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.yaml index 7d0b9339..4027ea8c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwf-welg.yaml @@ -324,17 +324,47 @@ memory: - naux observations: wel: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false wel-reduction: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.json index 46ac5feb..69093ab8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.json @@ -96,19 +96,43 @@ }, "observations": { "api": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.toml index 6793e444..f2d37934 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.toml @@ -78,14 +78,38 @@ set_in = "ar" source = "maxbound" type = "integer" -[observations.api.id] -arms = [ - "cellid", - "boundname", +[observations.api] +type = "union" +tagged = false + +[observations.api.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.api.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.yaml index 090bab2a..42c55c46 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-api.yaml @@ -84,12 +84,32 @@ memory: type: integer observations: api: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.json index 70fa73f6..fa279d23 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.json @@ -315,11 +315,23 @@ }, "observations": { "cnc": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.toml index d3efe583..a5a1990d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.toml @@ -287,8 +287,20 @@ shape = [ "naux", ] -[observations.cnc.id] -arms = [ - "cellid", - "boundname", +[observations.cnc] +type = "union" +tagged = false + +[observations.cnc.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.cnc.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.yaml index c5f8a858..51919f5e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-cnc.yaml @@ -282,7 +282,17 @@ memory: - naux observations: cnc: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.json index 93517a2a..d5639ae1 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.json @@ -406,132 +406,233 @@ }, "observations": { "concentration": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rainfall": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "evaporation": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "runoff": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-inflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "withdrawal": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-outflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "flow-ja-face": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "fk": "packagedata.ifno", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "ifno2": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "name": "outletno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "outletno": { + "type": "integer", + "tagged": false, + "index": true + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "lkt": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "name": "iconn", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "iconn": { + "type": "integer", + "tagged": false, + "index": true + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.toml index e845fece..ef3bfcaf 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.toml @@ -366,105 +366,202 @@ shape = [ "ncv", ] -[observations.concentration.id] +[observations.concentration] +type = "union" +tagged = false + +[observations.concentration.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.concentration.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rainfall.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.rainfall] +type = "union" +tagged = false + +[observations.rainfall.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.evaporation.id] +[observations.rainfall.arms.boundname] +type = "string" +tagged = false + +[observations.evaporation] +type = "union" +tagged = false + +[observations.evaporation.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.runoff.id] +[observations.evaporation.arms.boundname] +type = "string" +tagged = false + +[observations.runoff] +type = "union" +tagged = false + +[observations.runoff.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.ext-inflow.id] +[observations.runoff.arms.boundname] +type = "string" +tagged = false + +[observations.ext-inflow] +type = "union" +tagged = false + +[observations.ext-inflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.withdrawal.id] +[observations.ext-inflow.arms.boundname] +type = "string" +tagged = false + +[observations.withdrawal] +type = "union" +tagged = false + +[observations.withdrawal.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.ext-outflow.id] +[observations.withdrawal.arms.boundname] +type = "string" +tagged = false + +[observations.ext-outflow] +type = "union" +tagged = false + +[observations.ext-outflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id] +[observations.ext-outflow.arms.boundname] +type = "string" +tagged = false + +[observations.flow-ja-face] +type = "union" +tagged = false + +[observations.flow-ja-face.arms.ifno] +type = "record" +tagged = false + +[observations.flow-ja-face.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id2] +[observations.flow-ja-face.arms.ifno.fields.ifno2] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", -] -[observations.to-mvr.id] -name = "outletno" -arms = [ - "index", - "boundname", -] +[observations.flow-ja-face.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.outletno] +type = "integer" +tagged = false +index = true + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false -[observations.lkt.id] +[observations.lkt] +type = "union" +tagged = false + +[observations.lkt.arms.ifno] +type = "record" +tagged = false + +[observations.lkt.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.lkt.id2] -name = "iconn" -arms = [ - "index", -] +[observations.lkt.arms.ifno.fields.iconn] +type = "integer" +tagged = false +index = true + +[observations.lkt.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.yaml index 67d5f244..22234cf0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-lkt.yaml @@ -397,88 +397,174 @@ memory: - ncv observations: concentration: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rainfall: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false evaporation: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false runoff: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false ext-inflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false withdrawal: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false ext-outflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false flow-ja-face: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - fk: packagedata.ifno - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + ifno2: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false to-mvr: - id: - name: outletno - arms: - - index - - boundname + type: union + tagged: false + arms: + outletno: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false lkt: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - name: iconn - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + iconn: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.json index 7099eb2d..cac1109a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.json @@ -361,90 +361,158 @@ }, "observations": { "concentration": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rate": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "fw-rate": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rate-to-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "fw-rate-to-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "mwt": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "name": "iconn", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "iconn": { + "type": "integer", + "tagged": false, + "index": true + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.toml index e14eed4f..30f57e91 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.toml @@ -321,71 +321,137 @@ shape = [ "ncv", ] -[observations.concentration.id] +[observations.concentration] +type = "union" +tagged = false + +[observations.concentration.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.concentration.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rate.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.rate] +type = "union" +tagged = false + +[observations.rate.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.fw-rate.id] +[observations.rate.arms.boundname] +type = "string" +tagged = false + +[observations.fw-rate] +type = "union" +tagged = false + +[observations.fw-rate.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rate-to-mvr.id] +[observations.fw-rate.arms.boundname] +type = "string" +tagged = false + +[observations.rate-to-mvr] +type = "union" +tagged = false + +[observations.rate-to-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.fw-rate-to-mvr.id] +[observations.rate-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.fw-rate-to-mvr] +type = "union" +tagged = false + +[observations.fw-rate-to-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.mwt.id] +[observations.fw-rate-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.mwt] +type = "union" +tagged = false + +[observations.mwt.arms.ifno] +type = "record" +tagged = false + +[observations.mwt.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.mwt.id2] -name = "iconn" -arms = [ - "index", -] +[observations.mwt.arms.ifno.fields.iconn] +type = "integer" +tagged = false +index = true + +[observations.mwt.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.yaml index d127da5f..9dc45235 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-mwt.yaml @@ -349,60 +349,118 @@ memory: - ncv observations: concentration: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rate: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false fw-rate: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rate-to-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false fw-rate-to-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false mwt: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - name: iconn - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + iconn: + type: integer + tagged: false + index: true + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.json index 02690c1b..e7870c04 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.json @@ -228,22 +228,39 @@ }, "observations": { "concentration": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "flow-ja-face": { - "id": { - "arms": [ - "cellid" - ] - }, - "id2": { - "arms": [ - "cellid" - ] + "type": "record", + "tagged": false, + "fields": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "cellid2": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.toml index 0ed5b02f..4ad580a7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.toml @@ -204,17 +204,36 @@ shape = [ "nja", ] -[observations.concentration.id] -arms = [ - "cellid", +[observations.concentration] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id] -arms = [ - "cellid", +[observations.flow-ja-face] +type = "record" +tagged = false + +[observations.flow-ja-face.fields.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id2] -arms = [ - "cellid", +[observations.flow-ja-face.fields.cellid2] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.yaml index 57667d68..829d022d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-nam.yaml @@ -205,13 +205,30 @@ memory: - nja observations: concentration: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim flow-ja-face: - id: - arms: - - cellid - id2: - arms: - - cellid + type: record + tagged: false + fields: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + cellid2: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.json index 08615d24..27ae0cda 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.json @@ -426,117 +426,207 @@ }, "observations": { "concentration": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "sft": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rainfall": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "evaporation": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "runoff": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-inflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "ext-outflow": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "flow-ja-face": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "fk": "packagedata.ifno", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "ifno2": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.toml index de1c0d7c..88f51c3f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.toml @@ -386,92 +386,180 @@ shape = [ "ncv", ] -[observations.concentration.id] +[observations.concentration] +type = "union" +tagged = false + +[observations.concentration.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.concentration.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.sft.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.sft] +type = "union" +tagged = false + +[observations.sft.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.to-mvr.id] +[observations.sft.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rainfall.id] +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.rainfall] +type = "union" +tagged = false + +[observations.rainfall.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.evaporation.id] +[observations.rainfall.arms.boundname] +type = "string" +tagged = false + +[observations.evaporation] +type = "union" +tagged = false + +[observations.evaporation.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.runoff.id] +[observations.evaporation.arms.boundname] +type = "string" +tagged = false + +[observations.runoff] +type = "union" +tagged = false + +[observations.runoff.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.ext-inflow.id] +[observations.runoff.arms.boundname] +type = "string" +tagged = false + +[observations.ext-inflow] +type = "union" +tagged = false + +[observations.ext-inflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.ext-outflow.id] +[observations.ext-inflow.arms.boundname] +type = "string" +tagged = false + +[observations.ext-outflow] +type = "union" +tagged = false + +[observations.ext-outflow.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id] +[observations.ext-outflow.arms.boundname] +type = "string" +tagged = false + +[observations.flow-ja-face] +type = "union" +tagged = false + +[observations.flow-ja-face.arms.ifno] +type = "record" +tagged = false + +[observations.flow-ja-face.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id2] +[observations.flow-ja-face.arms.ifno.fields.ifno2] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", -] + +[observations.flow-ja-face.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.yaml index 2574a856..da0a3838 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-sft.yaml @@ -411,78 +411,155 @@ memory: - ncv observations: concentration: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false sft: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false to-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rainfall: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false evaporation: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false runoff: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false ext-inflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false ext-outflow: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false flow-ja-face: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - fk: packagedata.ifno - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + ifno2: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.json index 26a2c85e..da654d1c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.json @@ -323,19 +323,43 @@ }, "observations": { "src": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.toml index f3097d7d..879f10d3 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.toml @@ -295,14 +295,38 @@ shape = [ "naux", ] -[observations.src.id] -arms = [ - "cellid", - "boundname", +[observations.src] +type = "union" +tagged = false + +[observations.src.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.src.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.yaml index d2dd7410..a1e2b382 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-src.yaml @@ -300,12 +300,32 @@ memory: - naux observations: src: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.json index eb3bc3bb..3814e241 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.json @@ -376,99 +376,175 @@ }, "observations": { "concentration": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "storage": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "constant": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "from-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "uzt": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "infiltration": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rej-inf": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "uzet": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "rej-inf-to-mvr": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "flow-ja-face": { - "id": { - "fk": "packagedata.ifno", - "arms": [ - "index", - "boundname" - ] - }, - "id2": { - "fk": "packagedata.ifno", - "arms": [ - "index" - ] + "type": "union", + "tagged": false, + "arms": { + "ifno": { + "type": "record", + "tagged": false, + "fields": { + "ifno": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + }, + "ifno2": { + "type": "integer", + "tagged": false, + "index": true, + "fk": "packagedata.ifno" + } + } + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.toml index 40ddadab..a4bbf49c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.toml @@ -336,78 +336,152 @@ shape = [ "ncv", ] -[observations.concentration.id] +[observations.concentration] +type = "union" +tagged = false + +[observations.concentration.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.storage.id] +[observations.concentration.arms.boundname] +type = "string" +tagged = false + +[observations.storage] +type = "union" +tagged = false + +[observations.storage.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.constant.id] +[observations.storage.arms.boundname] +type = "string" +tagged = false + +[observations.constant] +type = "union" +tagged = false + +[observations.constant.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.from-mvr.id] +[observations.constant.arms.boundname] +type = "string" +tagged = false + +[observations.from-mvr] +type = "union" +tagged = false + +[observations.from-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.uzt.id] +[observations.from-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.uzt] +type = "union" +tagged = false + +[observations.uzt.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.infiltration.id] +[observations.uzt.arms.boundname] +type = "string" +tagged = false + +[observations.infiltration] +type = "union" +tagged = false + +[observations.infiltration.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rej-inf.id] +[observations.infiltration.arms.boundname] +type = "string" +tagged = false + +[observations.rej-inf] +type = "union" +tagged = false + +[observations.rej-inf.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.uzet.id] +[observations.rej-inf.arms.boundname] +type = "string" +tagged = false + +[observations.uzet] +type = "union" +tagged = false + +[observations.uzet.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.rej-inf-to-mvr.id] +[observations.uzet.arms.boundname] +type = "string" +tagged = false + +[observations.rej-inf-to-mvr] +type = "union" +tagged = false + +[observations.rej-inf-to-mvr.arms.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id] +[observations.rej-inf-to-mvr.arms.boundname] +type = "string" +tagged = false + +[observations.flow-ja-face] +type = "union" +tagged = false + +[observations.flow-ja-face.arms.ifno] +type = "record" +tagged = false + +[observations.flow-ja-face.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", - "boundname", -] -[observations.flow-ja-face.id2] +[observations.flow-ja-face.arms.ifno.fields.ifno2] +type = "integer" +tagged = false +index = true fk = "packagedata.ifno" -arms = [ - "index", -] + +[observations.flow-ja-face.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.yaml index e0b823e9..94f251f8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/gwt-uzt.yaml @@ -367,66 +367,131 @@ memory: - ncv observations: concentration: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false storage: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false constant: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false from-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false uzt: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false infiltration: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rej-inf: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false uzet: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false rej-inf-to-mvr: - id: - fk: packagedata.ifno - arms: - - index - - boundname + type: union + tagged: false + arms: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false flow-ja-face: - id: - fk: packagedata.ifno - arms: - - index - - boundname - id2: - fk: packagedata.ifno - arms: - - index + type: union + tagged: false + arms: + ifno: + type: record + tagged: false + fields: + ifno: + type: integer + tagged: false + index: true + fk: packagedata.ifno + ifno2: + type: integer + tagged: false + index: true + fk: packagedata.ifno + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.json index 9362ae2c..9ba423e8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.json @@ -291,19 +291,43 @@ }, "observations": { "cdb": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.toml index f4d00d80..83ead55d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.toml @@ -265,14 +265,38 @@ shape = [ "naux", ] -[observations.cdb.id] -arms = [ - "cellid", - "boundname", +[observations.cdb] +type = "union" +tagged = false + +[observations.cdb.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.cdb.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.yaml index 0e97c83c..fcf16908 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-cdb.yaml @@ -266,12 +266,32 @@ memory: - naux observations: cdb: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.json index cb1f3d3b..8fed2530 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.json @@ -300,11 +300,23 @@ }, "observations": { "chd": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.toml index 8c943975..0df0a517 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.toml @@ -272,8 +272,20 @@ shape = [ "nbound", ] -[observations.chd.id] -arms = [ - "cellid", - "boundname", +[observations.chd] +type = "union" +tagged = false + +[observations.chd.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.chd.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.yaml index 9d619aab..0bb576e2 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-chd.yaml @@ -270,7 +270,17 @@ memory: - nbound observations: chd: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.json index 162f9cea..02351530 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.json @@ -171,12 +171,9 @@ }, "observations": { "ext-outflow": { - "id": { - "name": "node", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.toml index 85fe430b..1af54b15 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.toml @@ -153,8 +153,7 @@ shape = [ "nodes", ] -[observations.ext-outflow.id] -name = "node" -arms = [ - "index", -] +[observations.ext-outflow] +type = "integer" +tagged = false +index = true diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.yaml index bb121727..9ebb24ed 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-dfw.yaml @@ -159,7 +159,6 @@ memory: - nodes observations: ext-outflow: - id: - name: node - arms: - - index + type: integer + tagged: false + index: true diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.json index 41a1e863..d56d2109 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.json @@ -310,11 +310,23 @@ }, "observations": { "evp": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.toml index f73e724f..23c89d1a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.toml @@ -282,8 +282,20 @@ shape = [ "naux", ] -[observations.evp.id] -arms = [ - "cellid", - "boundname", +[observations.evp] +type = "union" +tagged = false + +[observations.evp.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.evp.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.yaml index 6fe48427..844477f3 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-evp.yaml @@ -280,7 +280,17 @@ memory: - naux observations: evp: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.json index 2648cb38..89ce042d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.json @@ -302,19 +302,43 @@ }, "observations": { "flw": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.toml index 1e6a748f..49271ea6 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.toml @@ -274,14 +274,38 @@ shape = [ "nbound", ] -[observations.flw.id] -arms = [ - "cellid", - "boundname", +[observations.flw] +type = "union" +tagged = false + +[observations.flw.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.flw.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.yaml index e314732d..10d34d0d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-flw.yaml @@ -272,12 +272,32 @@ memory: - nbound observations: flw: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.json index feedc4da..02ffda71 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.json @@ -169,22 +169,39 @@ }, "observations": { "stage": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "flow-ja-face": { - "id": { - "arms": [ - "cellid" - ] - }, - "id2": { - "arms": [ - "cellid" - ] + "type": "record", + "tagged": false, + "fields": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "cellid2": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.toml index 5b665f43..4d0d5e2f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.toml @@ -149,17 +149,36 @@ shape = [ "nja", ] -[observations.stage.id] -arms = [ - "cellid", +[observations.stage] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id] -arms = [ - "cellid", +[observations.flow-ja-face] +type = "record" +tagged = false + +[observations.flow-ja-face.fields.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id2] -arms = [ - "cellid", +[observations.flow-ja-face.fields.cellid2] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.yaml index 101a49e8..641b2fcd 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-nam.yaml @@ -162,13 +162,30 @@ memory: - nja observations: stage: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim flow-ja-face: - id: - arms: - - cellid - id2: - arms: - - cellid + type: record + tagged: false + fields: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + cellid2: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.json index 8f0d6893..9733a88c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.json @@ -310,11 +310,23 @@ }, "observations": { "pcp": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.toml index 2452a9dd..fcd5d1bd 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.toml @@ -282,8 +282,20 @@ shape = [ "naux", ] -[observations.pcp.id] -arms = [ - "cellid", - "boundname", +[observations.pcp] +type = "union" +tagged = false + +[observations.pcp.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.pcp.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.yaml index a7740a73..60abc49f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-pcp.yaml @@ -280,7 +280,17 @@ memory: - naux observations: pcp: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.json index 68434d4e..d2116c9c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.json @@ -328,19 +328,43 @@ }, "observations": { "zdg": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.toml index c264f0f5..e75591d8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.toml @@ -300,14 +300,38 @@ shape = [ "naux", ] -[observations.zdg.id] -arms = [ - "cellid", - "boundname", +[observations.zdg] +type = "union" +tagged = false + +[observations.zdg.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.zdg.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.yaml index 1e2e204f..02c3b0af 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/olf-zdg.yaml @@ -307,12 +307,32 @@ memory: - naux observations: zdg: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.json index ac2ef27f..5800dd76 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.json @@ -291,19 +291,43 @@ }, "observations": { "cdb": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.toml index 1c3fd6d4..1dc5c4b9 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.toml @@ -265,14 +265,38 @@ shape = [ "naux", ] -[observations.cdb.id] -arms = [ - "cellid", - "boundname", +[observations.cdb] +type = "union" +tagged = false + +[observations.cdb.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.cdb.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.yaml index db88ea62..a736b9c3 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-cdb.yaml @@ -267,12 +267,32 @@ memory: - naux observations: cdb: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.json index b7117795..1f6ecaf3 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.json @@ -300,11 +300,23 @@ }, "observations": { "chd": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.toml index 4d20ee04..188af68f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.toml @@ -272,8 +272,20 @@ shape = [ "nbound", ] -[observations.chd.id] -arms = [ - "cellid", - "boundname", +[observations.chd] +type = "union" +tagged = false + +[observations.chd.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.chd.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.yaml index 64848098..6ef5bede 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-chd.yaml @@ -270,7 +270,17 @@ memory: - nbound observations: chd: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.json index a13f8f70..06de79d3 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.json @@ -170,12 +170,9 @@ }, "observations": { "ext-outflow": { - "id": { - "name": "node", - "arms": [ - "index" - ] - } + "type": "integer", + "tagged": false, + "index": true } } } \ No newline at end of file diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.toml index 2617bae0..59c11edd 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.toml @@ -152,8 +152,7 @@ shape = [ "nodes", ] -[observations.ext-outflow.id] -name = "node" -arms = [ - "index", -] +[observations.ext-outflow] +type = "integer" +tagged = false +index = true diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.yaml index 8f40193c..398d5ebd 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-dfw.yaml @@ -158,7 +158,6 @@ memory: - nodes observations: ext-outflow: - id: - name: node - arms: - - index + type: integer + tagged: false + index: true diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.json index fd2f9249..9307957f 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.json @@ -310,11 +310,23 @@ }, "observations": { "evp": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.toml index cad9bf8d..7f52d53c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.toml @@ -282,8 +282,20 @@ shape = [ "naux", ] -[observations.evp.id] -arms = [ - "cellid", - "boundname", +[observations.evp] +type = "union" +tagged = false + +[observations.evp.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.evp.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.yaml index 5aa5658a..99872318 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-evp.yaml @@ -280,7 +280,17 @@ memory: - naux observations: evp: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.json index e27a9ed1..25c1311a 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.json @@ -302,19 +302,43 @@ }, "observations": { "flw": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.toml index c0d139e7..bf8fea1d 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.toml @@ -274,14 +274,38 @@ shape = [ "nbound", ] -[observations.flw.id] -arms = [ - "cellid", - "boundname", +[observations.flw] +type = "union" +tagged = false + +[observations.flw.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.flw.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.yaml index 28389849..92fd3a47 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-flw.yaml @@ -272,12 +272,32 @@ memory: - nbound observations: flw: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.json index 70f4de9d..e1c31ff8 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.json @@ -169,22 +169,39 @@ }, "observations": { "stage": { - "id": { - "arms": [ - "cellid" - ] - } + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] }, "flow-ja-face": { - "id": { - "arms": [ - "cellid" - ] - }, - "id2": { - "arms": [ - "cellid" - ] + "type": "record", + "tagged": false, + "fields": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "cellid2": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.toml index 9f06bb64..b72f308e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.toml @@ -149,17 +149,36 @@ shape = [ "nja", ] -[observations.stage.id] -arms = [ - "cellid", +[observations.stage] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id] -arms = [ - "cellid", +[observations.flow-ja-face] +type = "record" +tagged = false + +[observations.flow-ja-face.fields.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.flow-ja-face.id2] -arms = [ - "cellid", +[observations.flow-ja-face.fields.cellid2] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.yaml index 3644a2c1..99e6f94c 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-nam.yaml @@ -162,13 +162,30 @@ memory: - nja observations: stage: - id: - arms: - - cellid + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim flow-ja-face: - id: - arms: - - cellid - id2: - arms: - - cellid + type: record + tagged: false + fields: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + cellid2: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.json index 84f0d871..23ea5b9b 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.json @@ -310,11 +310,23 @@ }, "observations": { "pcp": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.toml index ae887478..03c5bbd7 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.toml @@ -282,8 +282,20 @@ shape = [ "naux", ] -[observations.pcp.id] -arms = [ - "cellid", - "boundname", +[observations.pcp] +type = "union" +tagged = false + +[observations.pcp.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.pcp.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.yaml index 99487a83..7eb2d86e 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-pcp.yaml @@ -280,7 +280,17 @@ memory: - naux observations: pcp: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.json b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.json index dfa4c78c..92ad06f0 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.json +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.json @@ -327,19 +327,43 @@ }, "observations": { "zdg": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } }, "to-mvr": { - "id": { - "arms": [ - "cellid", - "boundname" - ] + "type": "union", + "tagged": false, + "arms": { + "cellid": { + "type": "array", + "tagged": false, + "dtype": "integer", + "index": true, + "cellid": true, + "shape": [ + "ncelldim" + ] + }, + "boundname": { + "type": "string", + "tagged": false + } } } } diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.toml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.toml index c5dc47fa..a29087d4 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.toml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.toml @@ -299,14 +299,38 @@ shape = [ "naux", ] -[observations.zdg.id] -arms = [ - "cellid", - "boundname", +[observations.zdg] +type = "union" +tagged = false + +[observations.zdg.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] -[observations.to-mvr.id] -arms = [ - "cellid", - "boundname", +[observations.zdg.arms.boundname] +type = "string" +tagged = false + +[observations.to-mvr] +type = "union" +tagged = false + +[observations.to-mvr.arms.cellid] +type = "array" +tagged = false +dtype = "integer" +index = true +cellid = true +shape = [ + "ncelldim", ] + +[observations.to-mvr.arms.boundname] +type = "string" +tagged = false diff --git a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.yaml b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.yaml index ed79fd25..3aef8a79 100644 --- a/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.yaml +++ b/autotest/dfns/__snapshots__/v2.0.0.dev3/swf-zdg.yaml @@ -307,12 +307,32 @@ memory: - naux observations: zdg: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false to-mvr: - id: - arms: - - cellid - - boundname + type: union + tagged: false + arms: + cellid: + type: array + tagged: false + dtype: integer + index: true + cellid: true + shape: + - ncelldim + boundname: + type: string + tagged: false diff --git a/autotest/dfns/test_migrate.py b/autotest/dfns/test_migrate.py index 18c3d060..e494809f 100644 --- a/autotest/dfns/test_migrate.py +++ b/autotest/dfns/test_migrate.py @@ -386,53 +386,67 @@ def test_migrate_obs_id_union(dfn_dir, col, optional): assert not any(arm.tagged for arm in field.arms.values()) -def _obs_ids(component: v2.Component, obstype: str) -> tuple: - assert component.observations is not None - obs = component.observations[obstype] - id2 = obs.id2 - return (obs.id.arms, obs.id.fk), None if id2 is None else (id2.arms, id2.type, id2.name) +def _obs_forms(field) -> list[tuple]: + """The token sequences an observation field reads, each a tuple of + columns: ("cellid",), ("boundname",), ("double", name) or ("index", fk).""" + if isinstance(field, v2.Union): + return [f for arm in field.arms.values() for f in _obs_forms(arm)] + if isinstance(field, v2.Record): + forms: list[tuple] = [()] + for col in field.fields.values(): + forms = [f + g for f in forms for g in _obs_forms(col)] + return forms + if isinstance(field, v2.Array) and field.cellid: + return [(("cellid",),)] + if isinstance(field, v2.String): + return [(("boundname",),)] + if isinstance(field, v2.Double): + return [(("double", field.name),)] + assert isinstance(field, v2.Integer) and field.index + return [(("index", field.fk),)] + + +_CELL = ("cellid",) +_NAME = ("boundname",) @pytest.mark.parametrize( - "name, obstype, ids", + "name, obstype, forms", [ # CSUB mixes index- and cellid-keyed obstypes, some without boundnames - ("gwf-csub", "csub", ((["index", "boundname"], "packagedata.icsubno"), None)), - ("gwf-csub", "sk", ((["index"], "packagedata.icsubno"), None)), - ("gwf-csub", "csub-cell", ((["cellid"], None), None)), - ( - "gwf-csub", - "delay-head", - ((["index"], "packagedata.icsubno"), (["index"], None, "idcellno")), - ), - # UZF's water-content id2 is a depth, not an id + ("gwf-csub", "csub", [(("index", "packagedata.icsubno"),), (_NAME,)]), + ("gwf-csub", "sk", [(("index", "packagedata.icsubno"),)]), + ("gwf-csub", "csub-cell", [(_CELL,)]), + ("gwf-csub", "delay-head", [(("index", "packagedata.icsubno"), ("index", None))]), + # UZF's water-content depth isn't an id, and follows a boundname too ( "gwf-uzf", "water-content", - ((["index", "boundname"], "packagedata.ifno"), ([], "double", "depth")), + [(("index", "packagedata.ifno"), ("double", "depth")), (_NAME, ("double", "depth"))], ), - ("gwf-uzf", "uzet", ((["index", "boundname"], "packagedata.ifno"), None)), - ( - "gwf-lak", - "lak", - ((["index", "boundname"], "packagedata.ifno"), (["index"], None, "iconn")), - ), - ("gwf-lak", "outlet", ((["index", "boundname"], "outlets.outletno"), None)), + ("gwf-uzf", "uzet", [(("index", "packagedata.ifno"),), (_NAME,)]), + # a connection number follows a lake number, but not a boundname + ("gwf-lak", "lak", [(("index", "packagedata.ifno"), ("index", None)), (_NAME,)]), + ("gwf-lak", "outlet", [(("index", "outlets.outletno"),), (_NAME,)]), ( "gwt-lkt", "flow-ja-face", - ((["index", "boundname"], "packagedata.ifno"), (["index"], None, None)), + [(("index", "packagedata.ifno"), ("index", "packagedata.ifno")), (_NAME,)], ), # MF6 reads no id2 for lke, though its docs list one - ("gwe-lke", "lke", ((["index", "boundname"], "packagedata.lakeno"), None)), - ("gwf-wel", "wel", ((["cellid", "boundname"], None), None)), - ("gwf-nam", "flow-ja-face", ((["cellid"], None), (["cellid"], None, None))), + ("gwe-lke", "lke", [(("index", "packagedata.lakeno"),), (_NAME,)]), + ("gwf-wel", "wel", [(_CELL,), (_NAME,)]), + ("gwf-nam", "flow-ja-face", [(_CELL, _CELL)]), # an exchange id is a row number in exchangedata, which has no pk - ("exg-gwegwe", "flow-ja-face", ((["index", "boundname"], None), None)), + ("exg-gwegwe", "flow-ja-face", [(("index", None),), (_NAME,)]), ], ) -def test_migrate_observations(dfn_dir, name, obstype, ids): - assert _obs_ids(_migrate_dev3(dfn_dir, name), obstype) == ids +def test_migrate_observations(dfn_dir, name, obstype, forms): + component = _migrate_dev3(dfn_dir, name) + assert component.observations is not None + field = component.observations[obstype] + assert field.name == obstype + assert _obs_forms(field) == forms def test_migrate_observations_on_obs_parents(dev3): diff --git a/autotest/dfns/test_schema_relations.py b/autotest/dfns/test_schema_relations.py index ba17c0fa..4eba0286 100644 --- a/autotest/dfns/test_schema_relations.py +++ b/autotest/dfns/test_schema_relations.py @@ -13,8 +13,6 @@ Keyword, List, Model, - Observation, - ObservationId, Package, Record, Simulation, @@ -253,79 +251,64 @@ def test_dfns_validate_cellid_outside_list_item(): # --- observation types --- -def _obs_spec(observations: dict, obs_arms: tuple = ("cellid", "index", "boundname")) -> dict: - """gwf-lak with a packagedata list keyed by `ifno`, and utl-obs whose - `id` union has ``obs_arms``.""" +def _obs_spec(observations: dict) -> dict: + """gwf-lak with a packagedata list keyed by `ifno`.""" pkg_item = Record(name="item", fields={"ifno": Integer(name="ifno", pk=True)}) - pkg_block = Block( - name="packagedata", fields={"packagedata": List(name="packagedata", item=pkg_item)} - ) + pkg_list = List(name="packagedata", item=pkg_item) lak = Package( name="gwf-lak", parent="gwf-nam", - blocks={"packagedata": pkg_block}, + blocks={"packagedata": Block(name="packagedata", fields={"packagedata": pkg_list})}, observations=observations, ) - arms = {a: Integer(name=a) for a in obs_arms} - obs_item = Record(name="item", fields={"id": Union(name="id", arms=arms)}) - obs_block = Block( - name="continuous", fields={"continuous": List(name="continuous", item=obs_item)} + return {"gwf-nam": Model(name="gwf-nam"), "gwf-lak": lak} + + +def _lak_obs(fk: str = "packagedata.ifno", tagged: bool = False) -> Union: + """LAK's `lak` obstype: a lake and connection, or a boundname.""" + feature = Record( + name="ifno", + tagged=False, + fields={ + "ifno": Integer(name="ifno", tagged=False, index=True, fk=fk), + "iconn": Integer(name="iconn", tagged=tagged, index=True), + }, ) - obs = Package(name="utl-obs", parent="package", blocks={"continuous": obs_block}) - return {"gwf-nam": Model(name="gwf-nam"), "gwf-lak": lak, "utl-obs": obs} + boundname = String(name="boundname", tagged=False) + return Union(name="lak", tagged=False, arms={"ifno": feature, "boundname": boundname}) def test_dfns_validate_observations(): observations = { - "lak": Observation( - id=ObservationId(arms=["index", "boundname"], fk="packagedata.ifno"), - id2=ObservationId(arms=["index"], name="iconn"), + "lak": _lak_obs(), + "head": Array( + name="head", tagged=False, dtype="integer", shape=["ncelldim"], index=True, cellid=True ), } spec = Dfns(components=_obs_spec(observations)) assert spec.components["gwf-lak"].observations == observations -def test_dfns_validate_observations_unknown_arm(): - observations = {"stage": Observation(id=ObservationId(arms=["index", "boundname"]))} - with pytest.raises(ValueError, match=r"\['boundname'\] are not utl-obs id arms"): - Dfns(components=_obs_spec(observations, obs_arms=("cellid", "index"))) +def test_dfns_validate_observations_unresolved_fk(): + with pytest.raises(ValueError, match="is not a list block"): + Dfns(components=_obs_spec({"lak": _lak_obs(fk="nosuch.ifno")})) -@pytest.mark.parametrize("fk", ["packagedata.nosuch", "nosuch.ifno"]) -def test_dfns_validate_observations_unresolved_fk(fk): - observations = {"stage": Observation(id=ObservationId(arms=["index"], fk=fk))} - with pytest.raises(ValueError, match="is not a pk column in this component"): - Dfns(components=_obs_spec(observations)) +def test_dfns_validate_observations_untagged(): + with pytest.raises(ValueError, match=r"\['iconn'\] must be untagged"): + Dfns(components=_obs_spec({"lak": _lak_obs(tagged=True)})) def test_dfns_validate_observations_lower_case(): - observations = {"STAGE": Observation(id=ObservationId(arms=["index"]))} with pytest.raises(ValueError, match="must be lower case"): - Dfns(components=_obs_spec(observations)) + Dfns(components=_obs_spec({"LAK": _lak_obs()})) -@pytest.mark.parametrize( - "kwargs, match", - [ - ({}, "exactly one of arms or type"), - ({"arms": ["index"], "type": "double"}, "exactly one of arms or type"), - ({"arms": ["cellid"], "fk": "packagedata.ifno"}, "requires the 'index' arm"), - ], -) -def test_observation_id_invalid(kwargs, match): - with pytest.raises(ValueError, match=match): - ObservationId(**kwargs) - - -def test_observation_with_boundname_only_on_id2(): - with pytest.raises(ValueError, match="applies only to id2"): - Observation(id=ObservationId(arms=["index", "boundname"], with_boundname=True)) - with pytest.raises(ValueError, match="requires id to admit a boundname"): - Observation( - id=ObservationId(arms=["index"]), - id2=ObservationId(type="double", with_boundname=True), - ) +def test_dfns_validate_observations_at_most_two_columns(): + fields = {n: Integer(name=n, tagged=False, index=True) for n in ("a", "b", "c")} + observations = {"x": Record(name="x", tagged=False, fields=fields)} + with pytest.raises(ValueError, match="at most id2"): + Dfns(components=_obs_spec(observations)) # --- file links (File.component / component_ftype) --- diff --git a/docs/md/dfnspec.md b/docs/md/dfnspec.md index 624660be..d9833f1e 100644 --- a/docs/md/dfnspec.md +++ b/docs/md/dfnspec.md @@ -102,9 +102,6 @@ This document describes the MODFLOW 6 component definition (DFN) system. This sy - [`budget`](#budget) - [`obs_type`](#obs_type) - [Observation types](#observation-types) - - [Attributes](#attributes-2) - - [`description`](#description-2) - - [`id`, `id2`](#id-id2) ## Overview @@ -192,7 +189,7 @@ If a component does not provide a `memory` catalog, all memory-managed variables #### `observations` -`{string: Observation} (default: {})`. The observation types the component accepts in its OBS file, keyed by lower-case name (MF6 matches them case-insensitively). See [Observation types](#observation-types). +`{string: Integer | Double | String | Array | Record | Union} (default: {})`. The observation types the component accepts in its OBS file, keyed by lower-case name (MF6 matches them case-insensitively). See [Observation types](#observation-types). ### Component types @@ -878,38 +875,33 @@ The memory catalog's `obs_type` names the observation type a variable backs. A c A component that supports observations lists the observation types it accepts in `observations`. Models list their model-level types (e.g. GWF's `head`, `drawdown` and `flow-ja-face`), since a model is the parent of its OBS file. -`utl-obs`'s `id` and `id2` are an untagged union of a `cellid`, a 1-based `index` and a `boundname` (see [Union](#union)), and a value alone can't always say which: `3 4` may be one DISV cellid or two indices. Which arms apply depends on the observation type and its parent, so each observation type narrows the union. +`utl-obs`'s `id` and `id2` are an untagged union of a `cellid`, a 1-based `index` and a `boundname` (see [Union](#union)), and a value alone can't always say which: `3 4` may be one DISV cellid or two indices. Which applies depends on the observation type and its parent, so each observation type is itself an untagged field, giving what follows the observation type's name on an observation line. It's built from the field types above, so `index`, [`fk`](#primary-and-foreign-keys) and [`cellid`](#cellid) mean what they mean elsewhere. -```toml -# gwf-csub -[observations.csub.id] -arms = ["index", "boundname"] -fk = "packagedata.icsubno" - -[observations.csub-cell.id] -arms = ["cellid"] - -[observations.delay-head.id] -arms = ["index"] -fk = "packagedata.icsubno" +A reader parses the tokens after the observation type with this field, then fills `utl-obs`'s columns: a record's first field fills `id` and its second `id2`; any other field fills `id` alone. A union's arms are alternatives, each mapped the same way. So LAK's `lak`, a lake number and one of its connections or else a boundname, is: -[observations.delay-head.id2] -arms = ["index"] -name = "idcellno" +```toml +[observations.lak] +type = "union" +tagged = false + +[observations.lak.arms.ifno] +type = "record" +tagged = false + +[observations.lak.arms.ifno.fields.ifno] +type = "integer" +tagged = false +index = true +fk = "packagedata.ifno" + +[observations.lak.arms.ifno.fields.iconn] +type = "integer" +tagged = false +index = true + +[observations.lak.arms.boundname] +type = "string" +tagged = false ``` -### Attributes - -#### `description` - -`string | null (default: null)`. What the observation type observes. - -#### `id`, `id2` - -What the observation's ID and ID2 hold. `id` is required; `id2` absent means the observation type takes no ID2. - -- `arms`: `[string]`. The `utl-obs` id union arms the value may take. -- `type`: `"double" | null`. A plain value instead of an id, e.g. UZF `water-content`'s depth. Exactly one of `arms` and `type` is given. -- `name`: `string | null`. What MF6 calls the value, where `fk` doesn't say, e.g. LAK's connection number `iconn`. -- `fk`: `string | null`. For an `index`, the `"block.field"` [primary key](#primary-and-foreign-keys) column in this component it refers to, e.g. `"packagedata.ifno"`. Absent if the index refers to something without a key column, such as an exchange's `exchangedata` row or a connection number. -- `with_boundname`: `boolean (default: false)`. `id2` only. MF6 reads no ID2 after an ID given as a boundname, since a boundname may name several features; `true` means ID2 is read anyway (UZF's depth). +An observation field and every field in it must be untagged, and each form must fill `id` and at most `id2`. Not every observation value is an id: UZF's `water-content` is a record of a UZF cell number or boundname, then a double, the depth. diff --git a/modflow_devtools/dfns/observations.py b/modflow_devtools/dfns/observations.py index 3646a72e..864944f3 100644 --- a/modflow_devtools/dfns/observations.py +++ b/modflow_devtools/dfns/observations.py @@ -11,30 +11,48 @@ from modflow_devtools.dfns import schema as v2 +_Field = v2.ObservationField -def _id(*arms: str, fk: str | None = None, name: str | None = None) -> v2.ObservationId: - return v2.ObservationId(arms=list(arms), fk=fk, name=name) +def _index(name: str, fk: str | None = None) -> v2.Integer: + return v2.Integer(name=name, tagged=False, index=True, fk=fk) -def _obs(id: v2.ObservationId, id2: v2.ObservationId | None = None) -> v2.Observation: - return v2.Observation(id=id, id2=id2) +def _cellid(name: str = "cellid") -> v2.Array: + return v2.Array( + name=name, tagged=False, dtype="integer", shape=["ncelldim"], index=True, cellid=True + ) -def _all(id: v2.ObservationId, *obstypes: str) -> dict[str, v2.Observation]: - """Obstypes that all take the same ID and no ID2.""" - return {o: _obs(id) for o in obstypes} +def _record(*fields: "v2.Integer | v2.Double | v2.Array | v2.Union") -> v2.Record: + """ID and ID2, named after the first.""" + return v2.Record(name=fields[0].name, tagged=False, fields={f.name: f for f in fields}) -_CELL = _id("cellid") -_CELL_OR_NAME = _id("cellid", "boundname") -_INDEX_OR_NAME = _id("index", "boundname") + +def _or_boundname(form: "v2.Integer | v2.Array | v2.Record") -> v2.Union: + """``form``, or a boundname instead, after which MF6 reads no ID2.""" + boundname = v2.String(name="boundname", tagged=False) + return v2.Union(name=form.name, tagged=False, arms={form.name: form, "boundname": boundname}) + + +def _all(field: _Field, *obstypes: str) -> dict[str, _Field]: + """Obstypes that all take ``field``.""" + return dict.fromkeys(obstypes, field) + + +_CELL = _cellid() +_CELL_OR_NAME = _or_boundname(_cellid()) # DFW reads a single node number, whatever the grid's cellid width. -_NODE = _id("index", name="node") -_ICONN = _id("index", name="iconn") +_NODE = _index("node") + +def _feature(pk: str) -> v2.Union: + return _or_boundname(_index(pk, fk=f"packagedata.{pk}")) -def _feature(pk: str) -> v2.ObservationId: - return _id("index", "boundname", fk=f"packagedata.{pk}") + +def _connection(pk: str, iconn: str = "iconn") -> v2.Union: + """A feature and one of its connections, or a boundname for all of them.""" + return _or_boundname(_record(_index(pk, fk=f"packagedata.{pk}"), _index(iconn))) # Stress packages @@ -59,8 +77,8 @@ def _feature(pk: str) -> v2.ObservationId: # Models -def _model(*depvars: str) -> dict[str, v2.Observation]: - return {**_all(_CELL, *depvars), "flow-ja-face": _obs(_CELL, _CELL)} +def _model(*depvars: str) -> dict[str, _Field]: + return {**_all(_CELL, *depvars), "flow-ja-face": _record(_cellid(), _cellid("cellid2"))} _GWF_MODEL = _model("head", "drawdown") @@ -69,10 +87,10 @@ def _model(*depvars: str) -> dict[str, v2.Observation]: _SWF_MODEL = _model("stage") # Exchanges: an id is a row number in EXCHANGEDATA, which has no pk column. -_EXCHANGE = _all(_INDEX_OR_NAME, "flow-ja-face") +_EXCHANGE = _all(_or_boundname(_index("iexg")), "flow-ja-face") # CSUB -_ICSUBNO = _id("index", fk="packagedata.icsubno") +_ICSUBNO = _index("icsubno", fk="packagedata.icsubno") _CSUB = { **_all(_feature("icsubno"), "csub", "inelastic-csub", "elastic-csub"), **_all(_feature("icsubno"), "delay-flowtop", "delay-flowbot"), @@ -88,7 +106,7 @@ def _model(*depvars: str) -> dict[str, v2.Observation]: "elastic-compaction", ), **{ - o: _obs(_ICSUBNO, _id("index", name="idcellno")) + o: _record(_ICSUBNO, _index("idcellno")) for o in ( "delay-head", "delay-gstress", @@ -121,7 +139,7 @@ def _model(*depvars: str) -> dict[str, v2.Observation]: } # Advanced flow packages -_LAK_OUTLET = _id("index", "boundname", fk="outlets.outletno") +_LAK_OUTLET = _or_boundname(_index("outletno", fk="outlets.outletno")) _LAK = { **_all( _feature("ifno"), @@ -139,7 +157,7 @@ def _model(*depvars: str) -> dict[str, v2.Observation]: "volume", "surface-area", ), - **{o: _obs(_feature("ifno"), _ICONN) for o in ("lak", "wetted-area", "conductance")}, + **_all(_connection("ifno"), "lak", "wetted-area", "conductance"), **_all(_LAK_OUTLET, "ext-outflow", "to-mvr", "outlet"), } _MAW = { @@ -155,7 +173,7 @@ def _model(*depvars: str) -> dict[str, v2.Observation]: "constant", "fw-conductance", ), - **{o: _obs(_feature("ifno"), _id("index", name="icon")) for o in ("maw", "conductance")}, + **_all(_connection("ifno", "icon"), "maw", "conductance"), } _SFR = _all( _feature("ifno"), @@ -192,27 +210,26 @@ def _model(*depvars: str) -> dict[str, v2.Observation]: "storage", "net-infiltration", ), - "water-content": _obs( - _feature("ifno"), - v2.ObservationId(type="double", name="depth", with_boundname=True), - ), + # The depth follows a boundname too. + "water-content": _record(_feature("ifno"), v2.Double(name="depth", tagged=False)), } # Advanced transport packages -def _apt(pk: str, depvar: str, *obstypes: str) -> dict[str, v2.Observation]: +def _apt(pk: str, depvar: str, *obstypes: str) -> dict[str, _Field]: """Obstypes common to every APT package plus ``obstypes``, all keyed by feature. Those taking an ID2 are added by the caller.""" return _all(_feature(pk), depvar, "storage", "constant", "from-mvr", *obstypes) -def _flow_ja_face(pk: str) -> v2.Observation: - # ID2 is the other feature. - return _obs(_feature(pk), _id("index", fk=f"packagedata.{pk}")) +def _flow_ja_face(pk: str) -> v2.Union: + """Flow between two features, or all those with a boundname.""" + fk = f"packagedata.{pk}" + return _or_boundname(_record(_index(pk, fk=fk), _index(f"{pk}2", fk=fk))) # LKT/LKE's to-mvr is keyed by the flow package's outlet, not in this component. -_FLOW_OUTLET = _id("index", "boundname", name="outletno") +_FLOW_OUTLET = _or_boundname(_index("outletno")) _LAKE_TERMS = ("rainfall", "evaporation", "runoff", "ext-inflow", "withdrawal", "ext-outflow") _STREAM_TERMS = ("to-mvr", "rainfall", "evaporation", "runoff", "ext-inflow", "ext-outflow") _WELL_TERMS = ("rate", "fw-rate", "rate-to-mvr", "fw-rate-to-mvr") @@ -221,8 +238,8 @@ def _flow_ja_face(pk: str) -> v2.Observation: _LKT = { **_apt("ifno", "concentration", *_LAKE_TERMS), "flow-ja-face": _flow_ja_face("ifno"), - "to-mvr": _obs(_FLOW_OUTLET), - "lkt": _obs(_feature("ifno"), _ICONN), + "to-mvr": _FLOW_OUTLET, + "lkt": _connection("ifno"), } _SFT = { **_apt("ifno", "concentration", "sft", *_STREAM_TERMS), @@ -230,7 +247,7 @@ def _flow_ja_face(pk: str) -> v2.Observation: } _MWT = { **_apt("ifno", "concentration", *_WELL_TERMS), - "mwt": _obs(_feature("ifno"), _ICONN), + "mwt": _connection("ifno"), } _UZT = { **_apt("ifno", "concentration", "uzt", *_UZ_TERMS), @@ -239,7 +256,7 @@ def _flow_ja_face(pk: str) -> v2.Observation: _LKE = { **_apt("lakeno", "temperature", "lke", *_LAKE_TERMS), "flow-ja-face": _flow_ja_face("lakeno"), - "to-mvr": _obs(_FLOW_OUTLET), + "to-mvr": _FLOW_OUTLET, } _SFE = { **_apt("rno", "temperature", "sfe", "strmbd-cond", *_STREAM_TERMS), @@ -247,15 +264,14 @@ def _flow_ja_face(pk: str) -> v2.Observation: } _MWE = { **_apt("mawno", "temperature", *_WELL_TERMS), - "mwe": _obs(_feature("mawno"), _ICONN), + "mwe": _connection("mawno"), } _UZE = { **_apt("uzfno", "temperature", "uze", "thermal-equil", *_UZ_TERMS), "flow-ja-face": _flow_ja_face("uzfno"), } -# Observation types by component name. -OBSERVATIONS: dict[str, dict[str, v2.Observation]] = { +_TABLES: dict[str, dict[str, _Field]] = { **{f"{m}-nam": _SWF_MODEL for m in ("chf", "olf", "swf")}, **{f"{m}-chd": _CHD for m in ("gwf", "chf", "olf", "swf")}, **{ @@ -309,3 +325,9 @@ def _flow_ja_face(pk: str) -> v2.Observation: "gwt-src": _SRC, "gwt-uzt": _UZT, } + +# Observation types by component name, each field named after its obstype. +OBSERVATIONS: dict[str, dict[str, _Field]] = { + component: {o: f.model_copy(update={"name": o}) for o, f in table.items()} + for component, table in _TABLES.items() +} diff --git a/modflow_devtools/dfns/schema.json b/modflow_devtools/dfns/schema.json index cc8d4019..59809150 100644 --- a/modflow_devtools/dfns/schema.json +++ b/modflow_devtools/dfns/schema.json @@ -1340,7 +1340,37 @@ "anyOf": [ { "additionalProperties": { - "$ref": "#/$defs/Observation" + "discriminator": { + "mapping": { + "array": "#/$defs/Array", + "double": "#/$defs/Double", + "integer": "#/$defs/Integer", + "record": "#/$defs/Record", + "string": "#/$defs/String", + "union": "#/$defs/Union" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/$defs/Integer" + }, + { + "$ref": "#/$defs/Double" + }, + { + "$ref": "#/$defs/String" + }, + { + "$ref": "#/$defs/Array" + }, + { + "$ref": "#/$defs/Record" + }, + { + "$ref": "#/$defs/Union" + } + ] }, "type": "object" }, @@ -1394,99 +1424,6 @@ "title": "Model", "type": "object" }, - "Observation": { - "description": "An observation type a component accepts in its OBS file.", - "properties": { - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Description" - }, - "id": { - "$ref": "#/$defs/ObservationId" - }, - "id2": { - "anyOf": [ - { - "$ref": "#/$defs/ObservationId" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "id" - ], - "title": "Observation", - "type": "object" - }, - "ObservationId": { - "description": "What an observation type's ID or ID2 holds: some of `utl-obs`'s id\nunion arms, or (UZF's water-content depth) a plain value instead.", - "properties": { - "arms": { - "default": [], - "items": { - "type": "string" - }, - "title": "Arms", - "type": "array" - }, - "type": { - "anyOf": [ - { - "const": "double", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Type" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Name" - }, - "fk": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Fk" - }, - "with_boundname": { - "default": false, - "title": "With Boundname", - "type": "boolean" - } - }, - "title": "ObservationId", - "type": "object" - }, "Package": { "properties": { "schema_version": { @@ -1616,7 +1553,37 @@ "anyOf": [ { "additionalProperties": { - "$ref": "#/$defs/Observation" + "discriminator": { + "mapping": { + "array": "#/$defs/Array", + "double": "#/$defs/Double", + "integer": "#/$defs/Integer", + "record": "#/$defs/Record", + "string": "#/$defs/String", + "union": "#/$defs/Union" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/$defs/Integer" + }, + { + "$ref": "#/$defs/Double" + }, + { + "$ref": "#/$defs/String" + }, + { + "$ref": "#/$defs/Array" + }, + { + "$ref": "#/$defs/Record" + }, + { + "$ref": "#/$defs/Union" + } + ] }, "type": "object" }, @@ -1969,7 +1936,37 @@ "anyOf": [ { "additionalProperties": { - "$ref": "#/$defs/Observation" + "discriminator": { + "mapping": { + "array": "#/$defs/Array", + "double": "#/$defs/Double", + "integer": "#/$defs/Integer", + "record": "#/$defs/Record", + "string": "#/$defs/String", + "union": "#/$defs/Union" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/$defs/Integer" + }, + { + "$ref": "#/$defs/Double" + }, + { + "$ref": "#/$defs/String" + }, + { + "$ref": "#/$defs/Array" + }, + { + "$ref": "#/$defs/Record" + }, + { + "$ref": "#/$defs/Union" + } + ] }, "type": "object" }, diff --git a/modflow_devtools/dfns/schema.py b/modflow_devtools/dfns/schema.py index 52f51b68..085073df 100644 --- a/modflow_devtools/dfns/schema.py +++ b/modflow_devtools/dfns/schema.py @@ -922,49 +922,14 @@ def _serialize(self, handler: Any, info: SerializationInfo) -> dict[str, Any]: ] -# The arms of `utl-obs`'s `id`/`id2` union, used when the corpus has no utl-obs. -_OBS_ID_ARMS = ("cellid", "index", "boundname") - - -class ObservationId(BaseModel): - """What an observation type's ID or ID2 holds: some of `utl-obs`'s id - union arms, or (UZF's water-content depth) a plain value instead.""" - - arms: list[str] = [] - type: Literal["double"] | None = None - # What MF6 calls the value, where it isn't evident from `fk` (e.g. LAK's - # `iconn`, UZF's `depth`). - name: str | None = None - # For an index, the "block.field" pk it refers to. - fk: str | None = None - # ID2 only: whether ID2 still follows an ID given as a boundname. MF6 - # otherwise reads no ID2 after a boundname. - with_boundname: bool = False - - @model_validator(mode="after") - def _check(self) -> "ObservationId": - if bool(self.arms) == (self.type is not None): - raise ValueError("observation id needs exactly one of arms or type") - if self.fk is not None and "index" not in self.arms: - raise ValueError(f"observation id fk={self.fk!r} requires the 'index' arm") - return self - - -class Observation(BaseModel): - """An observation type a component accepts in its OBS file.""" - - description: str | None = None - id: ObservationId - # Absent if the observation type takes no ID2. - id2: ObservationId | None = None - - @model_validator(mode="after") - def _check(self) -> "Observation": - if self.id.with_boundname: - raise ValueError("with_boundname applies only to id2") - if self.id2 is not None and self.id2.with_boundname and "boundname" not in self.id.arms: - raise ValueError("id2 with_boundname requires id to admit a boundname") - return self +# What follows an observation type in an OBS file: the observation's ID and +# ID2, as one (untagged) field. A Record's first field fills `utl-obs`'s `id` +# column and its second `id2`; any other field fills `id` alone. A Union's arms +# map the same way, each on its own. +ObservationField = Annotated[ + Integer | Double | String | Array | Record | Union, + PydanticField(discriminator="type"), +] class ComponentBase(BaseModel): @@ -981,8 +946,8 @@ class ComponentBase(BaseModel): blocks: dict[str, Block] | None = None memory: dict[str, MemoryVariable] | None = None # Observation types this component accepts in its OBS file, keyed by - # (lower-case) name. See `Observation`. - observations: dict[str, Observation] | None = None + # (lower-case) name. See `ObservationField`. + observations: dict[str, ObservationField] | None = None @model_serializer(mode="wrap") def _serialize(self, handler: Any) -> dict[str, Any]: @@ -1280,9 +1245,9 @@ def _validate_fk_fields(component: "ComponentBase", spec: "Dfns") -> None: runtime, so no further structural check is possible statically. A hierarchical-path fk may not be combined with fk_ref. + + Observation fields (see `ObservationField`) are checked like a list item's. """ - if not component.blocks: - return def _check_fields(fields: dict, dynamic_key: "InputField | None" = None) -> None: for field in fields.values(): @@ -1369,8 +1334,9 @@ def _check_fields(fields: dict, dynamic_key: "InputField | None" = None) -> None else: _check_fields({form.name: form}) - for block in component.blocks.values(): + for block in (component.blocks or {}).values(): _check_fields(block.fields) + _check_fields(component.observations or {}) def _iter_files(fields: "Mapping[str, InputField]"): @@ -1434,11 +1400,10 @@ def _validate_file_links(component: "ComponentBase", spec: "Dfns") -> None: def _validate_cellid_fields(component: "ComponentBase") -> None: """ A cellid array (`cellid=True`, see `Array.cellid`) is only meaningful as a - column in a list item, where each row names its cell(s). Its dtype and - shape are checked by `Array` itself. + column in a list item, where each row names its cell(s), or in an + observation field, which reads like one. Its dtype and shape are checked by + `Array` itself. """ - if not component.blocks: - return def _check(field: "InputField", in_item: bool) -> None: if isinstance(field, Array) and field.cellid and not in_item: @@ -1454,47 +1419,42 @@ def _check(field: "InputField", in_item: bool) -> None: for arm in field.arms.values(): _check(arm, in_item) - for block in component.blocks.values(): + for block in (component.blocks or {}).values(): for field in block.fields.values(): _check(field, False) + for obs_field in (component.observations or {}).values(): + _check(obs_field, True) -def _obs_id_arms(spec: "Dfns") -> set[str]: - """The arms of `utl-obs`'s `id` union, or `_OBS_ID_ARMS` without utl-obs.""" - obs = spec.components.get("utl-obs") - item = getattr(_find_list_in_block(obs, "continuous"), "item", None) if obs else None - id_field = item.fields.get("id") if isinstance(item, Record) else None - if isinstance(id_field, Union): - return set(id_field.arms) - return set(_OBS_ID_ARMS) +def _obs_columns(field: "InputField") -> list[int]: + """How many `utl-obs` columns each form of an observation field fills.""" + if isinstance(field, Union): + return [n for arm in field.arms.values() for n in _obs_columns(arm)] + return [len(field.fields) if isinstance(field, Record) else 1] -def _validate_observations(component: "ComponentBase", spec: "Dfns") -> None: +def _validate_observations(component: "ComponentBase") -> None: """ - Each observation id's arms must be arms of `utl-obs`'s id union, and an - `fk` ("block.field") must name the pk column of a list in this component. + Each observation field (see `ObservationField`) must be untagged + throughout and fill one or two columns, `id` and optionally `id2`. + Its fks are checked by `_validate_fk_fields`. """ - if not component.observations: - return - valid_arms = _obs_id_arms(spec) - for obstype, obs in component.observations.items(): + for obstype, field in (component.observations or {}).items(): + where = f"Observation {obstype!r}" if obstype != obstype.lower(): - raise ValueError(f"Observation {obstype!r}: name must be lower case") - for col, obs_id in (("id", obs.id), ("id2", obs.id2)): - if obs_id is None: - continue - where = f"Observation {obstype!r} {col}" - unknown = sorted(set(obs_id.arms) - valid_arms) - if unknown: - raise ValueError(f"{where}: {unknown} are not utl-obs id arms") - if obs_id.fk is None: - continue - block_name, _, pk_name = obs_id.fk.partition(".") - list_field = _find_list_in_block(component, block_name) - item = list_field.item if list_field else None - pk = item.fields.get(pk_name) if isinstance(item, Record) else None - if not getattr(pk, "pk", False): - raise ValueError(f"{where}: fk={obs_id.fk!r} is not a pk column in this component") + raise ValueError(f"{where}: name must be lower case") + tagged = [f.name for f in _iter_subfields(field) if f.tagged] + if tagged: + raise ValueError(f"{where}: {tagged} must be untagged") + if any(n not in (1, 2) for n in _obs_columns(field)): + raise ValueError(f"{where}: each form must fill id and at most id2") + + +def _iter_subfields(field: "InputField"): + """Yield ``field`` and every field nested in it.""" + yield field + for child in getattr(field, "children", {}).values(): + yield from _iter_subfields(child) def _validate_array_shapes( @@ -1659,6 +1619,7 @@ def _inject_names(comp_data: dict) -> None: Necessary to compensate for field and block names being absent in serialized DFN file data. """ + _inject_field_names(comp_data.get("observations") or {}) for block_name, block in (comp_data.get("blocks") or {}).items(): block.setdefault("name", block_name) _inject_field_names(block.get("fields") or {}) @@ -1822,7 +1783,7 @@ def _validate_relations(self) -> "Dfns": for name, component in self.components.items(): _validate_cellid_fields(component) for name, component in self.components.items(): - _validate_observations(component, self) + _validate_observations(component) for name, component in self.components.items(): _validate_array_shapes(component, name, self) for name, component in self.components.items(): From dff42f93ab82e170f4d5f876b59174e334a0e942 Mon Sep 17 00:00:00 2001 From: wpbonelli Date: Mon, 5 Oct 2026 19:02:10 -0700 Subject: [PATCH 3/3] docs(dfns): trim observation docs Co-Authored-By: Claude Opus 5.5 --- docs/md/dfnspec.md | 42 ++------------------------------- modflow_devtools/dfns/schema.py | 4 ---- 2 files changed, 2 insertions(+), 44 deletions(-) diff --git a/docs/md/dfnspec.md b/docs/md/dfnspec.md index d9833f1e..f37e44bd 100644 --- a/docs/md/dfnspec.md +++ b/docs/md/dfnspec.md @@ -101,7 +101,6 @@ This document describes the MODFLOW 6 component definition (DFN) system. This sy - [`output`](#output) - [`budget`](#budget) - [`obs_type`](#obs_type) -- [Observation types](#observation-types) ## Overview @@ -189,7 +188,7 @@ If a component does not provide a `memory` catalog, all memory-managed variables #### `observations` -`{string: Integer | Double | String | Array | Record | Union} (default: {})`. The observation types the component accepts in its OBS file, keyed by lower-case name (MF6 matches them case-insensitively). See [Observation types](#observation-types). +`{string: Integer | Double | String | Array | Record | Union} (default: {})`. The observation types the component accepts in its OBS file, keyed by lower-case name. Each is an untagged field for the values that follow the observation type: its ID and ID2. ### Component types @@ -536,7 +535,7 @@ Type `union`. Sum type. `{string: Scalar | Array | Record}`. Subfields, required. -A union is usually keyword-led: each arm begins with its own keyword, which picks the arm. An untagged union's arms begin with a value instead, and the value alone may not pick the arm. `utl-obs`'s `id` is a cellid, a 1-based index (e.g. a lake number), or a boundname, depending on the parent package and the observation type. The parent's [observation types](#observation-types) say which arms apply for each observation type. +A union is usually keyword-led: each arm begins with its own keyword, which picks the arm. An untagged union's arms begin with a value instead, and the value alone may not pick the arm. `utl-obs`'s `id` is a cellid, a 1-based index (e.g. a lake number), or a boundname, depending on the parent package and the observation type. The parent's [`observations`](#observations) say which. #### List @@ -868,40 +867,3 @@ Allowed values: #### `obs_type` `string | null (default: null)`. The OBS package observation type name for variables observable through the `utl-obs` utility package (e.g., `"HEAD"` on `x`, `"WEL"` on `simvals` in the WEL package). Absent means the variable is not directly observable via OBS. Registers the variable as an output to be returned by [BMI's `get_output_var_names()`](https://bmi.csdms.io/en/stable/bmi.info_funcs.html#get-output-var-names). - -The memory catalog's `obs_type` names the observation type a variable backs. A component's [`observations`](#observation-types) list every observation type it accepts; an `obs_type` matches one of them by name. - -## Observation types - -A component that supports observations lists the observation types it accepts in `observations`. Models list their model-level types (e.g. GWF's `head`, `drawdown` and `flow-ja-face`), since a model is the parent of its OBS file. - -`utl-obs`'s `id` and `id2` are an untagged union of a `cellid`, a 1-based `index` and a `boundname` (see [Union](#union)), and a value alone can't always say which: `3 4` may be one DISV cellid or two indices. Which applies depends on the observation type and its parent, so each observation type is itself an untagged field, giving what follows the observation type's name on an observation line. It's built from the field types above, so `index`, [`fk`](#primary-and-foreign-keys) and [`cellid`](#cellid) mean what they mean elsewhere. - -A reader parses the tokens after the observation type with this field, then fills `utl-obs`'s columns: a record's first field fills `id` and its second `id2`; any other field fills `id` alone. A union's arms are alternatives, each mapped the same way. So LAK's `lak`, a lake number and one of its connections or else a boundname, is: - -```toml -[observations.lak] -type = "union" -tagged = false - -[observations.lak.arms.ifno] -type = "record" -tagged = false - -[observations.lak.arms.ifno.fields.ifno] -type = "integer" -tagged = false -index = true -fk = "packagedata.ifno" - -[observations.lak.arms.ifno.fields.iconn] -type = "integer" -tagged = false -index = true - -[observations.lak.arms.boundname] -type = "string" -tagged = false -``` - -An observation field and every field in it must be untagged, and each form must fill `id` and at most `id2`. Not every observation value is an id: UZF's `water-content` is a record of a UZF cell number or boundname, then a double, the depth. diff --git a/modflow_devtools/dfns/schema.py b/modflow_devtools/dfns/schema.py index 085073df..ac785f7a 100644 --- a/modflow_devtools/dfns/schema.py +++ b/modflow_devtools/dfns/schema.py @@ -922,10 +922,6 @@ def _serialize(self, handler: Any, info: SerializationInfo) -> dict[str, Any]: ] -# What follows an observation type in an OBS file: the observation's ID and -# ID2, as one (untagged) field. A Record's first field fills `utl-obs`'s `id` -# column and its second `id2`; any other field fills `id` alone. A Union's arms -# map the same way, each on its own. ObservationField = Annotated[ Integer | Double | String | Array | Record | Union, PydanticField(discriminator="type"),