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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions autotest/test_binarygrid_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,28 @@ def mfgrd_test_path(example_data_path):

def test_mfgrddis_MfGrdFile(mfgrd_test_path):
grb = MfGrdFile(mfgrd_test_path / "nwtp3.dis.grb", verbose=True)
assert grb.version == 1

nodes = grb.nodes
ia = grb.ia
shape = ia.shape[0]
assert shape == nodes + 1, f"ia size ({shape}) not equal to {nodes + 1}"

nnz = ia[-1]
ja = grb.ja
shape = ja.shape[0]
assert shape == nnz, f"ja size ({shape}) not equal to {nnz}"

modelgrid = grb.modelgrid
assert isinstance(modelgrid, StructuredGrid)

assert grb.crs is None


def test_mfgrddis_MfGrdFile_v2(mfgrd_test_path):
grb = MfGrdFile(mfgrd_test_path / "flow_v2.dis.grb", verbose=True)
assert grb.version == 2

nodes = grb.nodes
ia = grb.ia
shape = ia.shape[0]
Expand All @@ -30,6 +52,8 @@ def test_mfgrddis_MfGrdFile(mfgrd_test_path):
modelgrid = grb.modelgrid
assert isinstance(modelgrid, StructuredGrid)

assert grb.crs == "EPSG:26916"


def test_mfgrddis_modelgrid(mfgrd_test_path):
fn = mfgrd_test_path / "nwtp3.dis.grb"
Expand Down Expand Up @@ -62,6 +86,7 @@ def test_mfgrddis_modelgrid(mfgrd_test_path):
def test_mfgrddisv_MfGrdFile(mfgrd_test_path):
fn = mfgrd_test_path / "flow.disv.grb"
grb = MfGrdFile(fn, verbose=True)
assert grb.version == 1

nodes = grb.nodes
ia = grb.ia
Expand Down Expand Up @@ -114,6 +139,7 @@ def test_mfgrddisv_modelgrid(mfgrd_test_path):
def test_mfgrddisu_MfGrdFile(mfgrd_test_path):
fn = mfgrd_test_path / "keating.disu.grb"
grb = MfGrdFile(fn, verbose=True)
assert grb.version == 1

nodes = grb.nodes
ia = grb.ia
Expand Down
Binary file added examples/data/mfgrd_test/flow_v2.dis.grb
Binary file not shown.
32 changes: 30 additions & 2 deletions flopy/mf6/utils/binarygrid_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def __init__(self, filename, precision="double", verbose=False):
# version
line = self.read_text(self._initial_len).strip()
t = line.split()
self._version = t[1]
self._version = int(t[1])

# ntxt
line = self.read_text(self._initial_len).strip()
Expand Down Expand Up @@ -152,7 +152,10 @@ def __init__(self, filename, precision="double", verbose=False):
self._datadict[key] = v

if self.verbose:
if nd == 0:
if (
nd == 0 or
dt == str
):
print(f" {key} = {v}")
else:
print(f" {key}: min = {v.min()} max = {v.max()}")
Expand Down Expand Up @@ -345,6 +348,17 @@ def _get_cellcenters(self):
return xycellcenters

# properties
@property
def version(self):
"""
MODFLOW 6 grid file version.

Returns
-------
version : int
"""
return self._version

@property
def grid_type(self):
"""
Expand Down Expand Up @@ -747,3 +761,17 @@ def cell2d(self):
else:
vertices, cell2d = None, None
return vertices, cell2d

@property
def crs(self):
"""
CRS user input string (version 2 GRB file only).

Returns
-------
crs : str or None
"""
crs = None
if "CRS" in self._datadict:
crs = self._datadict["CRS"]
return crs
Loading