@@ -73,8 +73,6 @@ class LayerStorage:
7373 whether the data is stored in a binary file
7474 nc_dataset : ModelNetCDFDataset or None
7575 model netcdf dataset
76- nc_layered : bool
77- array storage data is layered
7876
7977 Methods
8078 -------
@@ -120,7 +118,6 @@ def __init__(
120118 self .iprn = None
121119 self .binary = False
122120 self .nc_dataset = None
123- self .nc_layered = False
124121
125122 def set_internal_constant (self ):
126123 self .data_storage_type = DataStorageType .internal_constant
@@ -1025,9 +1022,6 @@ def _set_array(
10251022
10261023 success = False
10271024 if preserve_record :
1028- if self .netcdf and isinstance (data , list ):
1029- # TODO: is this a kludge? #NETCDF-DEV
1030- data = self ._to_ndarray (data , layer )
10311025 if isinstance (data , np .ndarray ):
10321026 # try to store while preserving the structure of the
10331027 # existing record
@@ -1129,24 +1123,16 @@ def _set_array_layer(self, data, layer, multiplier, key, preserve_record):
11291123 self .layer_storage [layer ].data_storage_type
11301124 == DataStorageType .external_file
11311125 ):
1132- if self .netcdf :
1133- self .store_netcdf (
1134- layer ,
1135- self .layer_storage [layer ].factor ,
1136- self .layer_storage [layer ].iprn ,
1137- data = data ,
1138- )
1139- else :
1140- self .store_external (
1141- self .layer_storage [layer ].fname ,
1142- layer ,
1143- self .layer_storage [layer ].factor ,
1144- self .layer_storage [layer ].iprn ,
1145- data = data ,
1146- do_not_verify = True ,
1147- binary = self .layer_storage [layer ].binary ,
1148- preserve_record = preserve_record ,
1149- )
1126+ self .store_external (
1127+ self .layer_storage [layer ].fname ,
1128+ layer ,
1129+ self .layer_storage [layer ].factor ,
1130+ self .layer_storage [layer ].iprn ,
1131+ data = data ,
1132+ do_not_verify = True ,
1133+ binary = self .layer_storage [layer ].binary ,
1134+ preserve_record = preserve_record ,
1135+ )
11501136 else :
11511137 self .store_internal (
11521138 data ,
@@ -1163,15 +1149,7 @@ def _set_array_layer(self, data, layer, multiplier, key, preserve_record):
11631149 data [0 ], data_type
11641150 ):
11651151 # store data as const
1166- if self .netcdf :
1167- self .store_netcdf (
1168- layer ,
1169- self .layer_storage [layer ].factor ,
1170- self .layer_storage [layer ].iprn ,
1171- data = data ,
1172- )
1173- else :
1174- self .store_internal (data , layer , True , multiplier , key = key )
1152+ self .store_internal (data , layer , True , multiplier , key = key )
11751153 return True
11761154
11771155 # look for internal and open/close data
@@ -1746,7 +1724,7 @@ def store_external(
17461724 fp = self ._simulation_data .mfpath .resolve_path (
17471725 fp_relative , model_name
17481726 )
1749- else :
1727+ elif fp_relative is not None :
17501728 fp = os .path .join (
17511729 self ._simulation_data .mfpath .get_sim_path (), fp_relative
17521730 )
@@ -1860,12 +1838,23 @@ def store_external(
18601838 self ._data_path ,
18611839 self ._stress_period ,
18621840 )
1863- file_access .write_text_file (
1864- data ,
1865- fp ,
1866- data_type ,
1867- data_size ,
1868- )
1841+
1842+ if self .netcdf :
1843+ # TODO: multiplier NETCDF-DEV
1844+ file_access .set_netcdf_array (
1845+ self .layer_storage [layer ].nc_dataset ,
1846+ self .data_dimensions .structure .get_package (),
1847+ self .data_dimensions .structure .name ,
1848+ data ,
1849+ layer ,
1850+ )
1851+ else :
1852+ file_access .write_text_file (
1853+ data ,
1854+ fp ,
1855+ data_type ,
1856+ data_size ,
1857+ )
18691858 if not preserve_record :
18701859 self .layer_storage [layer_new ].factor = multiplier
18711860 self .layer_storage [layer_new ].internal_data = None
@@ -1880,28 +1869,6 @@ def store_external(
18801869 layer_new , fp_relative , print_format , binary
18811870 )
18821871
1883- def store_netcdf (
1884- self ,
1885- layer = None ,
1886- multiplier = None ,
1887- print_format = None ,
1888- data = None ,
1889- ):
1890- file_access = MFFileAccessArray (
1891- self .data_dimensions .structure ,
1892- self .data_dimensions ,
1893- self ._simulation_data ,
1894- self ._data_path ,
1895- self ._stress_period ,
1896- )
1897- file_access .set_netcdf_array (
1898- self .layer_storage [layer ].nc_dataset ,
1899- self .data_dimensions .structure .get_package (),
1900- self .data_dimensions .structure .name ,
1901- data ,
1902- layer [0 ],
1903- )
1904-
19051872 def set_ext_file_attributes (self , layer , file_path , print_format , binary ):
19061873 # point to the external file and set flags
19071874 self .layer_storage [layer ].fname = file_path
@@ -1923,10 +1890,8 @@ def point_to_existing_external_file(self, arr_line, layer):
19231890
19241891 def _set_storage_netcdf (self , nc_dataset , layered , layer ):
19251892 self .netcdf = True
1926- is_layered = layered and layer > 0
19271893 for idx in self .layer_storage .indexes ():
19281894 self .layer_storage [idx ].nc_dataset = nc_dataset
1929- self .layer_storage [idx ].nc_layered = is_layered
19301895 self .layer_storage [
19311896 idx
19321897 ].data_storage_type = DataStorageType .external_file
@@ -2048,14 +2013,14 @@ def external_to_internal(
20482013 )[0 ]
20492014 elif self .layer_storage [layer ].nc_dataset is not None :
20502015 # TODO: ensure multiplier only set by open/close #NETCDF-DEV
2051- for idx in self . layer_storage . indexes ():
2052- data_out = (
2053- file_access . read_netcdf_array (
2054- self .layer_storage [ layer ]. nc_dataset ,
2055- self .data_dimensions .structure .get_package (),
2056- self .data_dimensions .structure .name ,
2057- idx [ 0 ] ,
2058- )
2016+ data_out = (
2017+ file_access . read_netcdf_array (
2018+ self . layer_storage [ layer ]. nc_dataset ,
2019+ self ._model_or_sim . modeldiscrit ,
2020+ self .data_dimensions .structure .get_package (),
2021+ self .data_dimensions .structure .name ,
2022+ layer ,
2023+ )
20592024 )
20602025 else :
20612026 data_out = file_access .read_text_data_from_file (
@@ -2514,17 +2479,14 @@ def _build_full_data(self, apply_multiplier=False):
25142479 * mult
25152480 )
25162481 elif self .layer_storage [layer ].nc_dataset is not None :
2517- # TODO: ensure multiplier only set by open/close #NETCDF-DEV
2518- if self .layer_storage [layer ].nc_layered :
2519- nc_layer = layer
2520- else :
2521- nc_layer = - 1
25222482 data_out = (
25232483 file_access .read_netcdf_array (
25242484 self .layer_storage [layer ].nc_dataset ,
2485+ self ._model_or_sim .modeldiscrit ,
25252486 self .data_dimensions .structure .get_package (),
25262487 self .data_dimensions .structure .name ,
2527- nc_layer ,
2488+ - 1 ,
2489+
25282490 )
25292491 * mult
25302492 )
@@ -3128,7 +3090,7 @@ def _store_prep(self, layer, multiplier):
31283090 self ._simulation_data .debug ,
31293091 )
31303092 layer = self ._layer_prep (layer )
3131- if multiplier is None :
3093+ if multiplier is None or self . netcdf :
31323094 multiplier = self .get_default_mult ()
31333095 else :
31343096 if isinstance (multiplier , float ):
0 commit comments