diff --git a/.docs/Notebooks/mf6_data_tutorial01.py b/.docs/Notebooks/mf6_data_tutorial01.py
index bb387141b..54e3d58a9 100644
--- a/.docs/Notebooks/mf6_data_tutorial01.py
+++ b/.docs/Notebooks/mf6_data_tutorial01.py
@@ -47,7 +47,7 @@
temp_dir = TemporaryDirectory()
workspace = temp_dir.name
-name = "tutorial01_mf6_data"
+name = "tutorial01"
# set up simulation and basic packages
sim = flopy.mf6.MFSimulation(sim_name=name, sim_ws=workspace)
@@ -56,7 +56,8 @@
)
flopy.mf6.ModflowIms(sim)
gwf = flopy.mf6.ModflowGwf(sim, modelname=name, save_flows=True)
-flopy.mf6.ModflowGwfdis(gwf, nlay=3, nrow=4, ncol=5)
+botm = [30.0, 20.0, 10.0]
+flopy.mf6.ModflowGwfdis(gwf, nlay=3, nrow=4, ncol=5, top=50.0, botm=botm)
flopy.mf6.ModflowGwfic(gwf)
flopy.mf6.ModflowGwfnpf(gwf, save_specific_discharge=True)
flopy.mf6.ModflowGwfchd(
diff --git a/.docs/Notebooks/mf6_mnw2_tutorial01.py b/.docs/Notebooks/mf6_mnw2_tutorial01.py
index 745afbb95..6f09a523a 100644
--- a/.docs/Notebooks/mf6_mnw2_tutorial01.py
+++ b/.docs/Notebooks/mf6_mnw2_tutorial01.py
@@ -77,11 +77,6 @@
)
node_data
-# #### convert the DataFrame to a recarray for compatibility with flopy
-
-node_data = node_data.to_records()
-node_data
-
# ### Stress period information
# (could also be developed externally)
@@ -97,7 +92,7 @@
stress_period_data
pers = stress_period_data.groupby("per")
-stress_period_data = {i: pers.get_group(i).to_records() for i in [0, 1]}
+stress_period_data = {i: pers.get_group(i) for i in [0, 1]}
stress_period_data
# ### Make ``ModflowMnw2`` package object
diff --git a/.docs/Notebooks/modflow_postprocessing_example.py b/.docs/Notebooks/modflow_postprocessing_example.py
index 98259ce3a..656aef5d4 100644
--- a/.docs/Notebooks/modflow_postprocessing_example.py
+++ b/.docs/Notebooks/modflow_postprocessing_example.py
@@ -100,7 +100,7 @@
grid, os.path.join(workspace, "heads5_rot.tif"), hdslayer, nodata=nodata
)
-results = np.loadtxt(os.path.join(workspace, f"heads5_rot.asc"), skiprows=6)
+results = np.loadtxt(os.path.join(workspace, "heads5_rot.asc"), skiprows=6)
results[results == nodata] = np.nan
plt.imshow(results)
plt.colorbar()
diff --git a/.docs/Notebooks/modpath7_unstructured_lateral_example.py b/.docs/Notebooks/modpath7_unstructured_lateral_example.py
index 22ccf7a47..9b3f85c3b 100644
--- a/.docs/Notebooks/modpath7_unstructured_lateral_example.py
+++ b/.docs/Notebooks/modpath7_unstructured_lateral_example.py
@@ -436,7 +436,7 @@
sim.set_sim_path(workspace)
sim.write_simulation()
success, buff = sim.run_simulation(silent=True, report=True)
-assert success, f"Failed to run MF6 simulation."
+assert success, "Failed to run MF6 simulation."
for line in buff:
print(line)
diff --git a/.docs/Notebooks/nwt_option_blocks_tutorial.py b/.docs/Notebooks/nwt_option_blocks_tutorial.py
index f9acbb18c..0bd0d4564 100644
--- a/.docs/Notebooks/nwt_option_blocks_tutorial.py
+++ b/.docs/Notebooks/nwt_option_blocks_tutorial.py
@@ -183,9 +183,9 @@
options.noprint = True
-# and the user can also add auxillary variables by using `options.auxillary`
+# and the user can also add auxiliary variables by using `options.auxiliary`
-options.auxillary = ["aux", "iface"]
+options.auxiliary = ["aux", "iface"]
# ### Now we can create a new wel file using this `OptionBlock`
#
diff --git a/.docs/Notebooks/plot_cross_section_example.py b/.docs/Notebooks/plot_cross_section_example.py
index 00848cd27..e25337940 100644
--- a/.docs/Notebooks/plot_cross_section_example.py
+++ b/.docs/Notebooks/plot_cross_section_example.py
@@ -341,7 +341,10 @@
# Plot a shapefile of
shp = os.path.join(loadpth, "gis", "bedrock_outcrop_hole_rotate14")
patch_collection = mapview.plot_shapefile(
- shp, edgecolor="green", linewidths=2, alpha=0.5 # facecolor='none',
+ shp,
+ edgecolor="green",
+ linewidths=2,
+ alpha=0.5, # facecolor='none',
)
# Plot a shapefile of a cross-section line
shp = os.path.join(loadpth, "gis", "cross_section_rotate14")
diff --git a/.docs/Notebooks/plot_map_view_example.py b/.docs/Notebooks/plot_map_view_example.py
index e50a65580..d52969e4f 100644
--- a/.docs/Notebooks/plot_map_view_example.py
+++ b/.docs/Notebooks/plot_map_view_example.py
@@ -452,7 +452,10 @@
# Plot a shapefile of
shp = os.path.join(loadpth, "gis", "bedrock_outcrop_hole")
patch_collection = mapview.plot_shapefile(
- shp, edgecolor="green", linewidths=2, alpha=0.5 # facecolor='none',
+ shp,
+ edgecolor="green",
+ linewidths=2,
+ alpha=0.5, # facecolor='none',
)
# Plot a shapefile of a cross-section line
shp = os.path.join(loadpth, "gis", "cross_section")
@@ -488,7 +491,10 @@
# Plot a shapefile of
shp = os.path.join(loadpth, "gis", "bedrock_outcrop_hole_rotate14")
patch_collection = mapview.plot_shapefile(
- shp, edgecolor="green", linewidths=2, alpha=0.5 # facecolor='none',
+ shp,
+ edgecolor="green",
+ linewidths=2,
+ alpha=0.5, # facecolor='none',
)
# Plot a shapefile of a cross-section line
shp = os.path.join(loadpth, "gis", "cross_section_rotate14")
@@ -1024,7 +1030,7 @@ def load_iverts(fname):
plt.colorbar(quadmesh, shrink=0.75)
# change the font type to comic sans
- styles.set_font_type(family="fantasy", fontname="Comic Sans MS"),
+ (styles.set_font_type(family="fantasy", fontname="Comic Sans MS"),)
# use styles to add a heading, xlabel, ylabel, and remove tick marks
styles.heading(
diff --git a/.docs/Notebooks/swi2package_example3.py b/.docs/Notebooks/swi2package_example3.py
index 415df76f5..4b0486d14 100644
--- a/.docs/Notebooks/swi2package_example3.py
+++ b/.docs/Notebooks/swi2package_example3.py
@@ -80,7 +80,7 @@ def MergeData(ndim, zdata, tb):
found.fill(False)
for idx, layer in enumerate(zdata):
for jdx, z in enumerate(layer):
- if found[jdx] == True:
+ if found[jdx] is True:
continue
t0 = tb[idx][0] - sv
t1 = tb[idx][1] + sv
diff --git a/.docs/md/version_changes.md b/.docs/md/version_changes.md
index 322e71e5d..d3a2a1e26 100644
--- a/.docs/md/version_changes.md
+++ b/.docs/md/version_changes.md
@@ -1,12 +1,66 @@
# Changelog
+### Version 3.7.0
+
+#### New features
+
+* [feat(get-modflow)](https://github.com/modflowpy/flopy/commit/4c5e2ee3ec6699f61acb04a5e7bd35407b16f9ff): Support ARM mac distributions (#2110). Committed by wpbonelli on 2024-02-19.
+* [feat(get-modflow)](https://github.com/modflowpy/flopy/commit/53a94a9c6d57f8311318836b4291ac73b4b7f728): Support ARM mac nightly build (#2115). Committed by wpbonelli on 2024-02-23.
+* [feat(binaryfile)](https://github.com/modflowpy/flopy/commit/5ec612a1a5b21c094bd910c9ed39f3ea5fef5084): Get budget by second package name `paknam2` (#2050). Committed by Michael Ou@SSPA on 2024-03-14.
+* [feat(get-modflow)](https://github.com/modflowpy/flopy/commit/43e5178db2b52f136cab3d53cb290c2576af21ee): Support windows parallel nightly build (#2128). Committed by wpbonelli on 2024-03-22.
+* [feat](https://github.com/modflowpy/flopy/commit/f75853f9fe9921c5ed1aa4e6ab4cec594338905f): Add optional custom print callable (#2121). Committed by Mike Müller on 2024-03-25.
+* [feat(dis2d)](https://github.com/modflowpy/flopy/commit/18014af25dff00d659ebe30f9b5dc82da0143be3): Introduce limited support for a 2D structured grid (for overland flow) (#2131). Committed by langevin-usgs on 2024-04-01.
+* [feat(vtk)](https://github.com/modflowpy/flopy/commit/3028863dc48b6eb8622b0dcd1a4918cd31547429): Improve vtk particle track export (#2132). Committed by wpbonelli on 2024-04-02.
+* [feat(disv1d)](https://github.com/modflowpy/flopy/commit/4c44cb0d9d6ef02c092938dad943cdb8285f82a7): Rename DISL to DISV1D (#2133). Committed by langevin-usgs on 2024-04-02.
+* [feat(disv2d)](https://github.com/modflowpy/flopy/commit/e023235ad40cd373d428ce5c1533bd0047109a96): Introduce support for a 2D vertex grid (for overland flow) (#2151). Committed by langevin-usgs on 2024-04-15.
+* [feat(vtk)](https://github.com/modflowpy/flopy/commit/43cbe4762f6f339a554052a1d0d5836d863da13f): Include all arrays on pathline input (#2161). Committed by wpbonelli on 2024-04-19.
+* [feat(mp7particledata)](https://github.com/modflowpy/flopy/commit/e50ab9ae4fce67db947a022da994b26150df13aa): Add localz option for PRT PRP conversions (#2166). Committed by wpbonelli on 2024-04-24.
+* [feat(sim options block packages)](https://github.com/modflowpy/flopy/commit/4e1d53ac3685d9027b1ced45749c9e20d8b701d5): Support for packages declared in simulation name file's options block (#2164). Committed by spaulins-usgs on 2024-05-01.
+* [feat(sim options block packages)](https://github.com/modflowpy/flopy/commit/6237cecd5f393a15857b653e030130ab4861e3a5): Support for packages declared in simulation name file's options block (#2174). Committed by spaulins-usgs on 2024-05-02.
+* [feat(MfList)](https://github.com/modflowpy/flopy/commit/712221918b1f32b881244a19781d01f92d150196): Support kper field in stress period data (#2179). Committed by wpbonelli on 2024-05-04.
+
+#### Bug fixes
+
+* [fix(PRT)](https://github.com/modflowpy/flopy/commit/dda482b18a6e857ca66a44bbbd69bc3145a68060): Allow empty recarray or dataframe for output conversion fns (#2103). Committed by wpbonelli on 2024-02-19.
+* [fix(gridintersect)](https://github.com/modflowpy/flopy/commit/40c03913bdf4329e8540d365ccfffe1c2bf4fccf): Gridintersect does not work for rotated vertex grids (#2107). Committed by Davíd Brakenhoff on 2024-02-20.
+* [fix(str and repr)](https://github.com/modflowpy/flopy/commit/1fe51578309a693fae45d843e50aa6f9c86ad70c): Better repr and str output for transient data with multiple blocks (#2058) (#2102). Committed by scottrp on 2024-03-13.
+* [fix(get_package and model_time)](https://github.com/modflowpy/flopy/commit/11f573b0341b461a584faae4fd82ea4b2bbffc69): #2117, #2118 (#2123). Committed by spaulins-usgs on 2024-03-20.
+* [fix(modflow)](https://github.com/modflowpy/flopy/commit/aa9f410a4cfd2eecb9f5fa824fbf20103bf45bc0): Dataframe support was patchy in a few packages (#2136). Committed by wpbonelli on 2024-04-04.
+* [fix(dependencies)](https://github.com/modflowpy/flopy/commit/0fe415058118ca67a1e02cd5e583ce589a65c9f1): Pin pyzmq >= 25.1.2 for arm macs (#2138). Committed by wpbonelli on 2024-04-05.
+* [fix(empty transient data)](https://github.com/modflowpy/flopy/commit/0f14f1fdc02a34338795396549f15758e3ab2ba0): Empty first stress period block (#1091) (#2139). Committed by spaulins-usgs on 2024-04-05.
+* [fix(comma delimited, scientific notation)](https://github.com/modflowpy/flopy/commit/5aaa5fff0fd9004d16f1699261ed8ef72577a67c): #2053 (#2144). Committed by spaulins-usgs on 2024-04-11.
+* [fix(empty transient arrays)](https://github.com/modflowpy/flopy/commit/f4a4274ce676713614f47fc4968315ed30297b35): #2145 (#2146). Committed by spaulins-usgs on 2024-04-12.
+* [fix(#2152)](https://github.com/modflowpy/flopy/commit/57cf82ebfcfabfaaf65bde88619070a20a7744ac): Improve gridintersect geometry creation for vertex grids (#2154). Committed by Davíd Brakenhoff on 2024-04-15.
+* [fix(grb)](https://github.com/modflowpy/flopy/commit/30e03490e4afadda6ed155cff1c319ebd3c6d5b0): Update binary grid file reader for new grid types (#2157). Committed by langevin-usgs on 2024-04-17.
+* [fix(OptionBlock)](https://github.com/modflowpy/flopy/commit/187885b4a3b9f54dbe27d568639931b8094b488e): Deprecate attribute typo 'auxillary' -> 'auxiliary' (#2159). Committed by Mike Taves on 2024-04-19.
+* [fix(typos)](https://github.com/modflowpy/flopy/commit/ff82488c0105db52931730fac801fa49a504d1cf): Fixed a variety of typos throughout project (#2160). Committed by Mike Taves on 2024-04-19.
+* [fix(cvfdutil)](https://github.com/modflowpy/flopy/commit/bb5461ba32a2047d7451ca53d96ab1643f47309b): Polygon area and centroid calculations now use shapely (#2165). Committed by langevin-usgs on 2024-04-23.
+* [fix(gridgen)](https://github.com/modflowpy/flopy/commit/50bbd01a5bae8e80d8345c3f314cabd03df5bb22): Remove duplicate disv grid vertices #1492 (#2119). Committed by wpbonelli on 2024-05-02.
+* [fix(mfmodel)](https://github.com/modflowpy/flopy/commit/8e16aab76b6e4f892fcf7031488324c3d490b75b): Fix budgetkey for transport models (#2176). Committed by wpbonelli on 2024-05-03.
+* [fix(gridintersect)](https://github.com/modflowpy/flopy/commit/15d1d7f5eaf5f50455ff99a876e05c93a947aa5b): Relax cell boundary checks with np.isclose (#2173). Committed by wpbonelli on 2024-05-06.
+* [fix(MFFileAccessArray)](https://github.com/modflowpy/flopy/commit/344579b9e23484cd7947948a9ca24a01e161b20e): Read_text_data_from_file modified for non-layered (#2183). Committed by langevin-usgs on 2024-05-06.
+* [fix(styles)](https://github.com/modflowpy/flopy/commit/acfd0d37ec0dcb186635af8e70f8a5afbd1eadb6): Remove need for platform evaluation (#2188). Committed by jdhughes-usgs on 2024-05-09.
+* [fix(get_structured_faceflows)](https://github.com/modflowpy/flopy/commit/29e247dbe464a861be8ccb4a7ad84f3c4020dd59): Fix lower face flows when idomain is -1 (#2192). Committed by vincentpost on 2024-05-17.
+* [fix(tutorial, verbosity setter)](https://github.com/modflowpy/flopy/commit/7879c2f0e41299f70ec0b3b03d756feaf4f20f37): Fixed tutorial model name and verbosity setter (#2182) (#2193). Committed by scottrp on 2024-05-21.
+
+#### Refactoring
+
+* [refactor(datautil)](https://github.com/modflowpy/flopy/commit/b58a70379030d55735858201b16b2599b266ec50): In is_int/float use .item() for np arrays (#2068). Committed by wpbonelli on 2024-02-19.
+* [refactor(plotting)](https://github.com/modflowpy/flopy/commit/4e6f4c1b788ec5e64559975afffbcea539def8ac): Check for user set axes limits (#2108). Committed by Joshua Larsen on 2024-02-21.
+* [refactor(get_cell_vertices)](https://github.com/modflowpy/flopy/commit/00b3d1c75bcb98bd0ab99c4a9fb45cd8f829e8d3): Raise helpful messages, improve docs, add tests (#2125). Committed by Mike Taves on 2024-03-18.
+* [refactor(modpathfile)](https://github.com/modflowpy/flopy/commit/77e5e1dfbadad3fac3be9bf9cf6f0de64f826f66): Toward unified particle tracking api (#2127). Committed by wpbonelli on 2024-03-28.
+* [refactor(MFSimulationBase)](https://github.com/modflowpy/flopy/commit/9e87acddcf0740aac491826ef86fd45ae2304dac): Allow simulations to have no attached models (#2140). Committed by Joshua Larsen on 2024-04-06.
+* [refactor(lgrutil)](https://github.com/modflowpy/flopy/commit/029a4e165caed6af760517ed7bc1f2e62e218858): Convert numpy types to builtins for np2 compat (#2158). Committed by wpbonelli on 2024-04-19.
+* [refactor(mp7particledata)](https://github.com/modflowpy/flopy/commit/c7af787110eb1d984fa660c49014c999d87b0774): Match mp7 order in to_coords()/to_prp() (#2172). Committed by wpbonelli on 2024-05-01.
+
### Version 3.6.0
#### New features
-* [feat(Mf6Splitter)](https://github.com/modflowpy/flopy/commit/44abb51b4fb2034d94d82cf686f44c3ddf238a1f): Preserve MFSimulation version & exe_name (#2033). Committed by wpbonelli on 2023-12-07.
* [feat(set all data external options)](https://github.com/modflowpy/flopy/commit/02a2f91e802185fd6b31929f99e31fecbb41c499): Additional parameters added (#2041). Committed by scottrp on 2023-12-18.
* [feat(PRT)](https://github.com/modflowpy/flopy/commit/a53cda7ff8f724dfc362b432ac9be8c98cc04165): Add conversion/plotting utils for MF6 particle tracking models (#1753). Committed by wpbonelli on 2023-12-22.
* [feat](https://github.com/modflowpy/flopy/commit/6899553828725a302e23b5ec787cea481ce85d59): Add static methods to read gridgen quadtreegrid files (#2061). Committed by Martin Vonk on 2024-01-17.
+* [feat(GeoSpatialCollection)](https://github.com/modflowpy/flopy/commit/f8eac0feafd981d84367128a0fdf8e7e1789fa9b): Add support for GeoDataFrame objects (#2063). Committed by Joshua Larsen on 2024-01-26.
+* [feat(GeoSpatialCollection)](https://github.com/modflowpy/flopy/commit/86eb092bf5f4d44cc449a458b77114dcefcbdda7): Add support for geopandas GeoSeries and GeoArray (#2085). Committed by Joshua Larsen on 2024-02-02.
#### Bug fixes
@@ -14,12 +68,14 @@
* [fix(gridgen)](https://github.com/modflowpy/flopy/commit/51109751cf0f6c4ebfbc70ccf0ba0ced7fabd4b8): Support arbitrary path-like for shapefiles (#2026). Committed by wpbonelli on 2023-12-04.
* [fix(subpackages)](https://github.com/modflowpy/flopy/commit/788a8df62b1519a621c2721bec12f75cfb11a8d7): Fixed detection issue of subpackages in some filein records (#2025). Committed by scottrp on 2023-12-04.
* [fix(recarrays with cellid)](https://github.com/modflowpy/flopy/commit/a8800396b987e676bf0710a9d52a8cdce7b4d13f): Fixes bug when setting data as recarrays with cellids (#2029). Committed by scottrp on 2023-12-05.
+* [fix(Mf6Splitter)](https://github.com/modflowpy/flopy/commit/44abb51b4fb2034d94d82cf686f44c3ddf238a1f): Preserve MFSimulation version & exe_name (#2033). Committed by wpbonelli on 2023-12-07.
* [fix(data storage)](https://github.com/modflowpy/flopy/commit/97da3961f531b26001e8cf55db0de45fc41befad): Added numpy type check for consistent integer and float sizes (32-bit vs 64-bit) (#2062). Committed by scottrp on 2024-01-17.
* [fix(obs package loading)](https://github.com/modflowpy/flopy/commit/a017b77493482124c2f9a635bad19a0c0dfed8c9): Fixed problem with loading multiple continuous blocks (#2058) (#2064). Committed by scottrp on 2024-01-22.
* [fix(particledata)](https://github.com/modflowpy/flopy/commit/ea73e0d2f52cf22511c211ea4f5dd5b0a96be69b): Support 1D numpy array for partlocs (#2074). Committed by wpbonelli on 2024-01-25.
* [fix(tri2vor)](https://github.com/modflowpy/flopy/commit/1ab25fe1cd9b55a5128eaade60bd09122f82d096): Remove invalid geometries from voronoi nodes (#2076). Committed by Joshua Larsen on 2024-01-26.
* [fix(MFSimulationList)](https://github.com/modflowpy/flopy/commit/f37610d1f775dbfcc935b129d76c13c407b30e3b): Fix comma spacing in error message (#2090). Committed by wpbonelli on 2024-02-04.
* [fix(numpy 2.0 deprecation)](https://github.com/modflowpy/flopy/commit/ad35b8dda86959f8cdf4560934ab5f309dc28d56): Replace np.alltrue with np.all (#2088). Committed by mnfienen on 2024-02-04.
+* [fix(usgcln)](https://github.com/modflowpy/flopy/commit/4ffa04e0757aabf000e6d87a33901c7265b1fa9d): add explicit second dimension to util2d.load calls (#2097). Committed by cnicol-gwlogic on 2024-02-07.
#### Refactoring
@@ -27,12 +83,10 @@
* [refactor(remap_array)](https://github.com/modflowpy/flopy/commit/5a4533bf115dc4876a811b11d87d353ae01da8ea): Trap for None type idomain (#2034). Committed by Joshua Larsen on 2023-12-07.
* [refactor(mbase)](https://github.com/modflowpy/flopy/commit/66b18624f78f36acd587c5a5bdcd90503397c3d1): Append not prepend flopy bindir to PATH (#2037). Committed by wpbonelli on 2023-12-08.
* [refactor(pyproject.toml)](https://github.com/modflowpy/flopy/commit/b94745dc4f72a4568ab084a762f4d6a1502afbfd): Add dev dependency group (#2075). Committed by wpbonelli on 2024-01-25.
-* [refactor(GeoSpatialCollection)](https://github.com/modflowpy/flopy/commit/f8eac0feafd981d84367128a0fdf8e7e1789fa9b): Add support for GeoDataFrame objects (#2063). Committed by Joshua Larsen on 2024-01-26.
* [refactor(contour_array)](https://github.com/modflowpy/flopy/commit/92853a95f6d38b73e561e3e155d92b75b93afb5d): Add tri_mask kwarg to parameters (#2078). Committed by Joshua Larsen on 2024-02-01.
* [refactor(dependencies)](https://github.com/modflowpy/flopy/commit/da8a3bdd6ecdbced4a22054b57c45dca470ec709): Remove python-dateutil (#2080). Committed by wpbonelli on 2024-02-01.
* [refactor(_plot_package_helper)](https://github.com/modflowpy/flopy/commit/cff4f2351d92ef8f894633481248b645c07f5c83): Pass kwargs to datatype helpers (#2081). Committed by Joshua Larsen on 2024-02-02.
* [refactor(convert_grid)](https://github.com/modflowpy/flopy/commit/b9ca77160cab2bf0e1af1d1d17ac82f3fa6e9d84): Added offset and angrot info to conversion (#2083). Committed by Joshua Larsen on 2024-02-02.
-* [refactor(GeoSpatialCollection)](https://github.com/modflowpy/flopy/commit/86eb092bf5f4d44cc449a458b77114dcefcbdda7): Add support for geopandas GeoSeries and GeoArray (#2085). Committed by Joshua Larsen on 2024-02-02.
* [refactor(dependencies)](https://github.com/modflowpy/flopy/commit/391a3690c57ccf2951f7d618c1afd4168dfa0f9b): Pin numpy<2 until other reqs support it (#2092). Committed by wpbonelli on 2024-02-07.
* [refactor(mf6)](https://github.com/modflowpy/flopy/commit/d3e8a2a4342766288166e2251e96721007f5217f): Update DFNS for mf6.4.3, regen/reformat .py files (#2095). Committed by wpbonelli on 2024-02-07.
diff --git a/.github/workflows/commit.yml b/.github/workflows/commit.yml
index b549d7e64..29da17835 100644
--- a/.github/workflows/commit.yml
+++ b/.github/workflows/commit.yml
@@ -61,31 +61,11 @@ jobs:
pip install .
pip install ".[lint]"
- - name: Run isort
- run: |
- echo "if isort check fails update isort using"
- echo " pip install isort --upgrade"
- echo "and run"
- echo " isort ./flopy"
- echo "and then commit the changes."
- isort --check --diff ./flopy
-
- - name: Run black
- run: |
- echo "if black check fails update black using"
- echo " pip install black --upgrade"
- echo "and run"
- echo " black ./flopy"
- echo "and then commit the changes."
- black --check --diff ./flopy
-
- - name: Run flake8
- run: |
- flake8 --count --show-source --exit-zero ./flopy
+ - name: Lint
+ run: ruff check .
- - name: Run pylint
- run: |
- pylint --jobs=2 --errors-only --exit-zero ./flopy
+ - name: Check format
+ run: ruff format . --check
- name: Check CITATION.cff
run: |
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 70c9602ac..df9c1b1bb 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -63,8 +63,10 @@ jobs:
python -c "import flopy; print(f'FloPy version: {flopy.__version__}')"
echo "version=${ver#"v"}" >> $GITHUB_OUTPUT
- - name: Lint Python files
- run: python scripts/pull_request_prepare.py
+ - name: Lint and format Python files
+ run: |
+ ruff check . --fix
+ ruff format .
- name: Run tests
working-directory: autotest
@@ -80,13 +82,9 @@ jobs:
path: |
./autotest/.failed/**
- - name: Run notebooks
- working-directory: scripts
- run: python run_notebooks.py
-
- name: Generate changelog
id: cliff
- uses: orhun/git-cliff-action@v2
+ uses: orhun/git-cliff-action@v3
with:
config: cliff.toml
args: --verbose --unreleased --tag ${{ steps.version.outputs.version }}
diff --git a/.github/workflows/rtd.yml b/.github/workflows/rtd.yml
index fe3f7a98f..4192123a9 100644
--- a/.github/workflows/rtd.yml
+++ b/.github/workflows/rtd.yml
@@ -19,7 +19,7 @@ jobs:
defaults:
run:
- shell: bash
+ shell: bash -l {0}
steps:
- name: Checkout flopy repo
@@ -32,18 +32,22 @@ jobs:
echo $GITHUB_REF
echo $GITHUB_EVENT_NAME
- - name: Setup Python
- uses: actions/setup-python@v5
+ - name: Setup Micromamba
+ uses: mamba-org/setup-micromamba@v1
with:
- python-version: 3.8
- cache: 'pip'
- cache-dependency-path: pyproject.toml
+ environment-file: etc/environment.yml
+ cache-environment: true
+ cache-downloads: true
+ create-args: >-
+ python=3.12
+ init-shell: >-
+ bash
+ powershell
- - name: Upgrade pip
- run: python -m pip install --upgrade pip
-
- - name: Install flopy and dependencies
- run: pip install ".[test, doc, optional]"
+ - name: Install Python dependencies
+ run: |
+ pip install --upgrade pip
+ pip install .
- name: Workaround OpenGL issue on Linux
if: runner.os == 'Linux'
diff --git a/CITATION.cff b/CITATION.cff
index cefe89d95..08c4554c4 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -3,8 +3,8 @@ message: If you use this software, please cite both the article from preferred-c
references, and the software itself.
type: software
title: FloPy
-version: 3.6.0
-date-released: '2024-02-08'
+version: 3.7.0
+date-released: '2024-05-23'
doi: 10.5066/F7BK19FH
abstract: A Python package to create, run, and post-process MODFLOW-based models.
repository-artifact: https://pypi.org/project/flopy
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1abb137f0..8fa2a129b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -58,11 +58,11 @@ Before you submit your Pull Request (PR) consider the following guidelines:
5. Run the formatting tools from the project root:
```shell
- black -v flopy
- isort -v flopy
+ ruff check .
+ ruff format .
```
- Note: Pull Requests must pass format checks run on the [GitHub actions](https://github.com/modflowpy/flopy/actions) before they will be accepted. If the Pull Request fails the `lint` job in the [continuous integration](https://github.com/modflowpy/flopy/actions/workflows/commit.yml) workflow, make sure the latest versions of `black` and `isort` are installed (this may require clearing CI caches).
+ Note: Pull Requests must pass format checks run on the [GitHub actions](https://github.com/modflowpy/flopy/actions) before they will be accepted. If the Pull Request fails the `lint` job in the [continuous integration](https://github.com/modflowpy/flopy/actions/workflows/commit.yml) workflow, make sure the latest version of `ruff` is installed (this may require clearing CI caches).
6. Run the full FloPy test suite and ensure that all tests pass:
diff --git a/DEVELOPER.md b/DEVELOPER.md
index 4febe4902..dcb2f9a11 100644
--- a/DEVELOPER.md
+++ b/DEVELOPER.md
@@ -28,6 +28,7 @@ This document describes how to set up a FloPy development environment, run the e
- [Performance testing](#performance-testing)
- [Benchmarking](#benchmarking)
- [Profiling](#profiling)
+ - [Snapshot testing](#snapshot-testing)
- [Branching model](#branching-model)
- [Deprecation policy](#deprecation-policy)
- [Miscellaneous](#miscellaneous)
@@ -212,7 +213,9 @@ Each example should create and (attempt to) dispose of its own isolated temporar
To run the tests you will need `pytest` and a few plugins, including [`pytest-xdist`](https://pytest-xdist.readthedocs.io/en/latest/), [`pytest-dotenv`](https://github.com/quiqua/pytest-dotenv), and [`pytest-benchmark`](https://pytest-benchmark.readthedocs.io/en/latest/index.html). Test dependencies are specified in the `test` extras group in `pyproject.toml` (with pip, use `pip install ".[test]"`). Test dependencies are included in the Conda environment `etc/environment`.
-**Note:** to prepare your code for a pull request, you will need a few more packages specified in the `lint` extras group in `pyproject.toml` (also included by default for Conda). See the docs on [submitting a pull request](CONTRIBUTING.md) for more info.
+**Note:** tests require the [`modflow-devtools`](https://github.com/MODFLOW-USGS/modflow-devtools) package, which is a grab bag of utilities and `pytest` fixtures shared by FloPy, MODFLOW 6, and other related projects. If you see testing errors that don't seem related to the contents of the tests, updating to the latest `modflow-devtools` is recommended as a first troubleshooting step.
+
+**Note:** to prepare your code for a pull request, you will need the [`ruff`](https://docs.astral.sh/ruff/) linter/formatter, which is included in the `lint` extras group in `pyproject.toml` (also included by default for Conda). See the docs on [submitting a pull request](CONTRIBUTING.md) for more info.
### Configuring tests
@@ -345,9 +348,15 @@ Profiling is [distinct](https://stackoverflow.com/a/39381805/6514033) from bench
By default, `pytest-benchmark` will only print profiling results to `stdout`. If the `--benchmark-autosave` flag is provided, performance profile data will be included in the JSON files written to the `.benchmarks` save directory as described in the benchmarking section above.
+### Snapshot testing
+
+Snapshot testing is a form of regression testing in which a "snapshot" of the results of some computation is verified and captured by the developer to be compared against when tests are subsequently run. This is accomplished with [`syrupy`](https://github.com/tophat/syrupy) via [fixtures defined in `modflow-devtools`](https://modflow-devtools.readthedocs.io/en/latest/md/snapshots.html).
+
+By default, tests run in comparison mode. This means a newly written test using any of the snapshot fixtures will fail until a snapshot is created. Snapshots can be created/updated by running pytest with the `--snapshot-update` flag.
+
## Branching model
-This project follows the [git flow](https://nvie.com/posts/a-successful-git-branching-model/): development occurs on the `develop` branch, while `main` is reserved for the state of the latest release. Development PRs are typically squashed to `develop`, to avoid merge commits. At release time, release branches are merged to `main`, and then `main` is merged back into `develop`.
+This project follows the [git flow](https://nvie.com/posts/a-successful-git-branching-model/): development occurs on the `develop` branch, while `master` is reserved for the state of the latest release. Development PRs are typically squashed to `develop`, to avoid merge commits. At release time, release branches are merged to `master`, and then `master` is merged back into `develop`.
## Deprecation policy
diff --git a/README.md b/README.md
index 4c5fec5e8..646964b7f 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-### Version 3.6.0
+### Version 3.7.0
[![flopy continuous integration](https://github.com/modflowpy/flopy/actions/workflows/commit.yml/badge.svg?branch=develop)](https://github.com/modflowpy/flopy/actions/workflows/commit.yml)
[![Read the Docs](https://github.com/modflowpy/flopy/actions/workflows/rtd.yml/badge.svg?branch=develop)](https://github.com/modflowpy/flopy/actions/workflows/rtd.yml)
@@ -150,7 +150,7 @@ How to Cite
##### ***Software/Code citation for FloPy:***
-[Bakker, Mark, Post, Vincent, Hughes, J. D., Langevin, C. D., White, J. T., Leaf, A. T., Paulinski, S. R., Bellino, J. C., Morway, E. D., Toews, M. W., Larsen, J. D., Fienen, M. N., Starn, J. J., Brakenhoff, D. A., and Bonelli, W. P., 2024, FloPy v3.6.0: U.S. Geological Survey Software Release, 08 February 2024, https://doi.org/10.5066/F7BK19FH](https://doi.org/10.5066/F7BK19FH)
+[Bakker, Mark, Post, Vincent, Hughes, J. D., Langevin, C. D., White, J. T., Leaf, A. T., Paulinski, S. R., Bellino, J. C., Morway, E. D., Toews, M. W., Larsen, J. D., Fienen, M. N., Starn, J. J., Brakenhoff, D. A., and Bonelli, W. P., 2024, FloPy v3.7.0: U.S. Geological Survey Software Release, 23 May 2024, https://doi.org/10.5066/F7BK19FH](https://doi.org/10.5066/F7BK19FH)
Additional FloPy Related Publications
diff --git a/autotest/__snapshots__/test_particledata/test_lrcparticledata_to_prp_1_per_face.npy b/autotest/__snapshots__/test_particledata/test_lrcparticledata_to_prp_1_per_face.npy
new file mode 100644
index 000000000..16a9342cb
Binary files /dev/null and b/autotest/__snapshots__/test_particledata/test_lrcparticledata_to_prp_1_per_face.npy differ
diff --git a/autotest/__snapshots__/test_particledata/test_lrcparticledata_to_prp_divisions_defaults[False].npy b/autotest/__snapshots__/test_particledata/test_lrcparticledata_to_prp_divisions_defaults[False].npy
new file mode 100644
index 000000000..f9177363e
Binary files /dev/null and b/autotest/__snapshots__/test_particledata/test_lrcparticledata_to_prp_divisions_defaults[False].npy differ
diff --git a/autotest/__snapshots__/test_particledata/test_lrcparticledata_to_prp_divisions_defaults[True].npy b/autotest/__snapshots__/test_particledata/test_lrcparticledata_to_prp_divisions_defaults[True].npy
new file mode 100644
index 000000000..d52b8f7a9
Binary files /dev/null and b/autotest/__snapshots__/test_particledata/test_lrcparticledata_to_prp_divisions_defaults[True].npy differ
diff --git a/autotest/conftest.py b/autotest/conftest.py
index 0db0d3ec0..6f770ef54 100644
--- a/autotest/conftest.py
+++ b/autotest/conftest.py
@@ -1,16 +1,18 @@
import re
from importlib import metadata
+from io import BytesIO, StringIO
from pathlib import Path
from platform import system
-from typing import List
+from typing import List, Optional
import matplotlib.pyplot as plt
+import numpy as np
import pytest
from modflow_devtools.misc import is_in_ci
# import modflow-devtools fixtures
-pytest_plugins = ["modflow_devtools.fixtures"]
+pytest_plugins = ["modflow_devtools.fixtures", "modflow_devtools.snapshots"]
# constants
@@ -142,19 +144,22 @@ def pytest_report_header(config):
except metadata.PackageNotFoundError:
items.append(f"{name} (not found)")
lines.append("required packages: " + ", ".join(items))
- installed = []
- not_found = []
- for name in extra["optional"]:
- if name in processed:
- continue
- processed.add(name)
- try:
- version = metadata.version(name)
- installed.append(f"{name}-{version}")
- except metadata.PackageNotFoundError:
- not_found.append(name)
- if installed:
- lines.append("optional packages: " + ", ".join(installed))
- if not_found:
- lines.append("optional packages not found: " + ", ".join(not_found))
+ for optional in ["optional", "test"]:
+ installed = []
+ not_found = []
+ for name in extra[optional]:
+ if name in processed:
+ continue
+ processed.add(name)
+ try:
+ version = metadata.version(name)
+ installed.append(f"{name}-{version}")
+ except metadata.PackageNotFoundError:
+ not_found.append(name)
+ if installed:
+ lines.append(f"{optional} packages: {', '.join(installed)}")
+ if not_found:
+ lines.append(
+ f"{optional} packages not found: {', '.join(not_found)}"
+ )
return "\n".join(lines)
diff --git a/autotest/pytest.ini b/autotest/pytest.ini
index c94efd1f3..0bd2bad2e 100644
--- a/autotest/pytest.ini
+++ b/autotest/pytest.ini
@@ -15,4 +15,9 @@ markers =
meta: tests run by other tests
mf6: tests for MODFLOW 6 support
regression: tests comparing multiple versions
- slow: tests not completing in a few seconds
\ No newline at end of file
+ slow: tests not completing in a few seconds
+filterwarnings =
+ # from python-dateutil, used by arrow, jupyter_client, matplotlib, pandas
+ ignore:datetime.datetime.utcfromtimestamp
+ # from pandas, see https://github.com/pandas-dev/pandas/issues/54466
+ ignore:\n.*Pyarrow
\ No newline at end of file
diff --git a/autotest/regression/conftest.py b/autotest/regression/conftest.py
index 685c0f7a2..66c064645 100644
--- a/autotest/regression/conftest.py
+++ b/autotest/regression/conftest.py
@@ -18,10 +18,10 @@ def get_mf6_examples_path() -> Path:
__mf6_examples_lock.acquire()
try:
if __mf6_examples_path.is_dir() and any(__mf6_examples_path.glob("*")):
- print(f"Example models already exist")
+ print("Example models already exist")
else:
__mf6_examples_path.mkdir(exist_ok=True)
- print(f"Downloading example models")
+ print("Downloading example models")
download_and_unzip(
url="https://github.com/MODFLOW-USGS/modflow6-examples/releases/download/current/modflow6-examples.zip",
path=str(__mf6_examples_path),
diff --git a/autotest/regression/test_mf6.py b/autotest/regression/test_mf6.py
index 417a547e7..17824801a 100644
--- a/autotest/regression/test_mf6.py
+++ b/autotest/regression/test_mf6.py
@@ -42,6 +42,7 @@
ModflowGwtssm,
ModflowIms,
ModflowTdis,
+ ModflowUtlhpc,
ModflowUtltas,
)
from flopy.mf6.data.mfdatastorage import DataStorageType
@@ -299,7 +300,7 @@ def test_np001(function_tmpdir, example_data_path):
)
except FlopyException:
ex = True
- assert ex == True
+ assert ex is True
kwargs = {}
kwargs["xul"] = 20.5
@@ -751,7 +752,7 @@ def test_np001(function_tmpdir, example_data_path):
found_cellid = True
assert found_cellid
- # test empty stress period
+ # test empty stress period and remove output
well_spd = {0: [(-1, -1, -1, -2000.0), (0, 0, 7, -2.0)], 1: []}
wel_package = ModflowGwfwel(
model,
@@ -763,6 +764,13 @@ def test_np001(function_tmpdir, example_data_path):
maxbound=2,
stress_period_data=well_spd,
)
+ oc_package = ModflowGwfoc(
+ model,
+ budget_filerecord=[("np001_mod 1.cbc",)],
+ head_filerecord=[("np001_mod 1.hds",)],
+ saverecord={0: []},
+ printrecord={0: []},
+ )
sim.write_simulation()
found_begin = False
found_end = False
@@ -787,6 +795,10 @@ def test_np001(function_tmpdir, example_data_path):
spath,
write_headers=False,
)
+ # test to make sure oc empty record dictionary is set
+ oc = test_sim.get_model().get_package("oc")
+ assert oc.saverecord.empty_keys[0] is True
+ # test wel package
wel = test_sim.get_model().get_package("wel_2")
wel._filename = "np001_spd_test.wel"
wel.write()
@@ -855,9 +867,9 @@ def test_np002(function_tmpdir, example_data_path):
sim.simulation_data.max_columns_of_data = 22
name = sim.name_file
- assert name.continue_.get_data() == None
- assert name.nocheck.get_data() == True
- assert name.memory_print_option.get_data() == None
+ assert name.continue_.get_data() is None
+ assert name.nocheck.get_data() is True
+ assert name.memory_print_option.get_data() is None
tdis_rc = [(6.0, 2, 1.0), (6.0, 3, 1.0)]
tdis_package = ModflowTdis(
@@ -1885,7 +1897,7 @@ def test005_create_tests_advgw_tidal(function_tmpdir, example_data_path):
assert model.name_file.filename == "new_name.nam"
package_type_dict = {}
for package in model.packagelist:
- if not package.package_type in package_type_dict:
+ if package.package_type not in package_type_dict:
filename = os.path.split(package.filename)[1]
assert filename == f"new_name.{package.package_type}"
package_type_dict[package.package_type] = 1
@@ -1901,7 +1913,7 @@ def test005_create_tests_advgw_tidal(function_tmpdir, example_data_path):
sim.rename_all_packages("all_files_same_name")
package_type_dict = {}
for package in model.packagelist:
- if not package.package_type in package_type_dict:
+ if package.package_type not in package_type_dict:
filename = os.path.split(package.filename)[1]
assert filename == f"all_files_same_name.{package.package_type}"
package_type_dict[package.package_type] = 1
@@ -1946,6 +1958,17 @@ def test005_create_tests_advgw_tidal(function_tmpdir, example_data_path):
assert value[0][0] == "ghb- 2-6-10"
assert found_flows and found_obs
+ # check model.time steady state and transient
+ sto_package = model.get_package("sto")
+ sto_package.steady_state.set_data({0: True, 1: False, 2: False, 3: False})
+ sto_package.transient.set_data({0: False, 1: True, 2: True, 3: True})
+ flopy.mf6.ModflowGwfdrn(model, pname="storm")
+ ss = model.modeltime.steady_state
+ assert ss[0]
+ assert not ss[1]
+ assert not ss[2]
+ assert not ss[3]
+
# clean up
sim.delete_output_files()
@@ -2040,7 +2063,7 @@ def test004_create_tests_bcfss(function_tmpdir, example_data_path):
readasarrays=True,
save_flows=True,
auxiliary=[("var1", "var2")],
- recharge={0: 0.004},
+ recharge={0: 0.004, 1: []},
aux=aux,
) # *** test if aux works ***
chk = rch_package.check()
@@ -2056,6 +2079,11 @@ def test004_create_tests_bcfss(function_tmpdir, example_data_path):
assert aux_out[0][1][0, 0] == 1.3
assert aux_out[1][0][0, 0] == 200.0
assert aux_out[1][1][0, 0] == 1.5
+ # write test
+ sim.set_sim_path(function_tmpdir)
+ sim.write_simulation()
+ # update recharge
+ recharge = {0: 0.004, 1: 0.004}
riv_period = {}
riv_period_array = []
@@ -2219,10 +2247,8 @@ def test035_create_tests_fhb(function_tmpdir, example_data_path):
model, storagecoefficient=True, iconvert=0, ss=0.01, sy=0.0
)
time = model.modeltime
- assert (
- time.steady_state[0] == False
- and time.steady_state[1] == False
- and time.steady_state[2] == False
+ assert not (
+ time.steady_state[0] or time.steady_state[1] or time.steady_state[2]
)
wel_period = {0: [((0, 1, 0), "flow")]}
wel_package = ModflowGwfwel(
@@ -3085,7 +3111,7 @@ def test028_create_tests_sfr(function_tmpdir, example_data_path):
delc=5000.0,
top=top,
botm=botm,
- # idomain=idomain,
+ idomain=idomain,
filename=f"{model_name}.dis",
)
strt = testutils.read_std_array(os.path.join(pth, "strt.txt"), "float")
@@ -3285,8 +3311,77 @@ def test028_create_tests_sfr(function_tmpdir, example_data_path):
htol=10.0,
)
+ # test hpc package
+ part = [("model1", 1), ("model2", 2)]
+ hpc = ModflowUtlhpc(
+ sim, dev_log_mpi=True, partitions=part, filename="test.hpc"
+ )
+
+ assert sim.hpc.dev_log_mpi.get_data()
+ assert hpc.filename == "test.hpc"
+ part = hpc.partitions.get_data()
+ assert part[0][0] == "model1"
+ assert part[0][1] == 1
+ assert part[1][0] == "model2"
+ assert part[1][1] == 2
+
+ sim.write_simulation()
+ sim2 = MFSimulation.load(
+ sim_name=test_ex_name,
+ version="mf6",
+ exe_name="mf6",
+ sim_ws=function_tmpdir,
+ )
+ hpc_a = sim2.get_package("hpc")
+ assert hpc_a.filename == "test.hpc"
+ fr = sim2.name_file._hpc_filerecord.get_data()
+ assert fr[0][0] == "test.hpc"
+ assert hpc_a.dev_log_mpi.get_data()
+ part_a = hpc_a.partitions.get_data()
+ assert part_a[0][0] == "model1"
+ assert part_a[0][1] == 1
+ assert part_a[1][0] == "model2"
+ assert part_a[1][1] == 2
+
+ sim2.remove_package(hpc_a)
+ sim2.set_sim_path(os.path.join(function_tmpdir, "temp"))
+ sim2.write_simulation()
+ sim3 = MFSimulation.load(
+ sim_name=test_ex_name,
+ version="mf6",
+ exe_name="mf6",
+ sim_ws=os.path.join(function_tmpdir, "temp"),
+ )
+ hpc_n = sim3.get_package("hpc")
+ assert hpc_n is None
+ fr_2 = sim3.name_file._hpc_filerecord.get_data()
+ assert fr_2 is None
+ sim3.set_sim_path(function_tmpdir)
+
+ hpc_data = {
+ "filename": "hpc_data_file.hpc",
+ "dev_log_mpi": True,
+ "partitions": part,
+ }
+ sim4 = MFSimulation(
+ sim_name=test_ex_name,
+ version="mf6",
+ exe_name="mf6",
+ sim_ws=pth,
+ hpc_data=hpc_data,
+ )
+ fr_4 = sim4.name_file._hpc_filerecord.get_data()
+ assert fr_4[0][0] == "hpc_data_file.hpc"
+ assert sim4.hpc.filename == "hpc_data_file.hpc"
+ assert sim4.hpc.dev_log_mpi.get_data()
+ part = sim4.hpc.partitions.get_data()
+ assert part[0][0] == "model1"
+ assert part[0][1] == 1
+ assert part[1][0] == "model2"
+ assert part[1][1] == 2
+
# clean up
- sim.delete_output_files()
+ sim3.delete_output_files()
@requires_exe("mf6")
@@ -3771,10 +3866,10 @@ def test005_advgw_tidal(function_tmpdir, example_data_path):
model = sim.get_model(model_name)
time = model.modeltime
assert (
- time.steady_state[0] == True
- and time.steady_state[1] == False
- and time.steady_state[2] == False
- and time.steady_state[3] == False
+ time.steady_state[0]
+ and not time.steady_state[1]
+ and not time.steady_state[2]
+ and not time.steady_state[3]
)
ghb = model.get_package("ghb")
obs = ghb.obs
diff --git a/autotest/regression/test_mf6_examples.py b/autotest/regression/test_mf6_examples.py
index a956622f9..0b652dbf5 100644
--- a/autotest/regression/test_mf6_examples.py
+++ b/autotest/regression/test_mf6_examples.py
@@ -2,9 +2,9 @@
from shutil import copytree
import pytest
-from autotest.regression.conftest import is_nested
from modflow_devtools.markers import requires_exe, requires_pkg
+from autotest.regression.conftest import is_nested
from flopy.mf6 import MFSimulation
from flopy.utils.compare import compare_heads
diff --git a/autotest/regression/test_mfnwt.py b/autotest/regression/test_mfnwt.py
index 4a57a8266..a7b9fbedc 100644
--- a/autotest/regression/test_mfnwt.py
+++ b/autotest/regression/test_mfnwt.py
@@ -1,9 +1,9 @@
import os
import pytest
-from autotest.conftest import get_example_data_path
from modflow_devtools.markers import requires_exe
+from autotest.conftest import get_example_data_path
from flopy.modflow import Modflow, ModflowNwt, ModflowUpw
from flopy.utils import parsenamefile
from flopy.utils.compare import compare_budget, compare_heads
diff --git a/autotest/regression/test_modflow.py b/autotest/regression/test_modflow.py
index 84eada048..792cef2f7 100644
--- a/autotest/regression/test_modflow.py
+++ b/autotest/regression/test_modflow.py
@@ -4,9 +4,9 @@
from shutil import copytree
import pytest
-from autotest.conftest import get_example_data_path
from modflow_devtools.markers import requires_exe, requires_pkg
+from autotest.conftest import get_example_data_path
from flopy.modflow import Modflow, ModflowOc
from flopy.utils.compare import compare_budget, compare_heads
@@ -394,14 +394,14 @@ def test_mf2005_lake(function_tmpdir, namfile, mf2005_test_path):
fn0 = join(ws, Path(namfile).name)
- # write free format files - wont run without resetting to free format - evt external file issue
+ # write free format files - won't run without resetting to free format - evt external file issue
m.free_format_input = True
# rewrite files
model_ws2 = join(ws, "external")
m.change_model_ws(
model_ws2, reset_external=True
- ) # l1b2k_bath wont run without this
+ ) # l1b2k_bath won't run without this
m.write_input()
success, buff = m.run_model()
diff --git a/autotest/regression/test_swi2.py b/autotest/regression/test_swi2.py
index c1d870c84..86dc3d93b 100644
--- a/autotest/regression/test_swi2.py
+++ b/autotest/regression/test_swi2.py
@@ -39,7 +39,7 @@ def test_mf2005swi2(function_tmpdir, swi_path, namfile):
model_ws2 = os.path.join(ws, "flopy")
m.change_model_ws(
model_ws2, reset_external=True
- ) # l1b2k_bath wont run without this
+ ) # l1b2k_bath won't run without this
m.write_input()
success, buff = m.run_model()
diff --git a/autotest/test_binaryfile.py b/autotest/test_binaryfile.py
index 1089e22ad..a4e5a400e 100644
--- a/autotest/test_binaryfile.py
+++ b/autotest/test_binaryfile.py
@@ -2,12 +2,12 @@
import numpy as np
import pytest
-from autotest.conftest import get_example_data_path
from matplotlib import pyplot as plt
from matplotlib.axes import Axes
from modflow_devtools.markers import requires_exe
import flopy
+from autotest.conftest import get_example_data_path
from flopy.modflow import Modflow
from flopy.utils import (
BinaryHeader,
@@ -559,3 +559,22 @@ def test_read_mf2005_freyberg(example_data_path, function_tmpdir, compact):
assert len(cbb_data) == len(cbb_data_kstpkper)
for i in range(len(cbb_data)):
assert np.array_equal(cbb_data[i], cbb_data_kstpkper[i])
+
+
+def test_read_mf6_budgetfile(example_data_path):
+ cbb_file = (
+ example_data_path
+ / "mf6"
+ / "test005_advgw_tidal"
+ / "expected_output"
+ / "AdvGW_tidal.cbc"
+ )
+ cbb = CellBudgetFile(cbb_file)
+ rch_zone_1 = cbb.get_data(paknam2="rch-zone_1".upper())
+ rch_zone_2 = cbb.get_data(paknam2="rch-zone_2".upper())
+ rch_zone_3 = cbb.get_data(paknam2="rch-zone_3".upper())
+
+ # ensure there is a record for each time step
+ assert len(rch_zone_1) == 120 * 3 + 1
+ assert len(rch_zone_2) == 120 * 3 + 1
+ assert len(rch_zone_3) == 120 * 3 + 1
diff --git a/autotest/test_cbc_full3D.py b/autotest/test_cbc_full3D.py
index 9f983be5d..e347a70fa 100644
--- a/autotest/test_cbc_full3D.py
+++ b/autotest/test_cbc_full3D.py
@@ -3,9 +3,9 @@
import numpy as np
import pytest
-from autotest.conftest import get_example_data_path
from modflow_devtools.markers import requires_exe
+from autotest.conftest import get_example_data_path
from flopy.mf6 import MFSimulation, ModflowGwfoc
from flopy.modflow import Modflow
from flopy.utils import CellBudgetFile
diff --git a/autotest/test_copy.py b/autotest/test_copy.py
index 476a560ab..52072ad15 100644
--- a/autotest/test_copy.py
+++ b/autotest/test_copy.py
@@ -1,5 +1,4 @@
-"""Test copying of flopy objects.
-"""
+"""Test copying of flopy objects."""
import copy
import inspect
@@ -64,10 +63,10 @@ def model_is_copy(m1, m2):
continue
elif k not in m2.__dict__:
return False
- elif type(v) == bool:
+ elif isinstance(v, bool):
if not v == v2:
return False
- elif type(v) in [str, int, float, dict, list]:
+ elif isinstance(v, (str, int, float, dict, list)):
if v != v2:
return False
continue
@@ -118,13 +117,13 @@ def package_is_copy(pk1, pk2):
return False
elif k not in pk2.__dict__:
return False
- elif type(v) == bool:
+ elif isinstance(v, bool):
if not v == v2:
return False
- elif type(v) in [str, int, float, dict]:
+ elif isinstance(v, (str, int, float, dict)):
if v != v2:
return False
- elif type(v) == list:
+ elif isinstance(v, list):
for item, item2 in zip(v, v2):
if not isinstance(item, MFPackage):
if item != item2:
diff --git a/autotest/test_export.py b/autotest/test_export.py
index 1b5e607bd..fbfac0937 100644
--- a/autotest/test_export.py
+++ b/autotest/test_export.py
@@ -7,7 +7,6 @@
import matplotlib.pyplot as plt
import numpy as np
import pytest
-from autotest.conftest import get_example_data_path
from flaky import flaky
from modflow_devtools.markers import (
excludes_platform,
@@ -17,6 +16,7 @@
from modflow_devtools.misc import has_pkg
import flopy
+from autotest.conftest import get_example_data_path
from flopy.discretization import StructuredGrid, UnstructuredGrid
from flopy.export import NetCdf
from flopy.export.shapefile_utils import recarray2shp, shp2recarray
@@ -520,7 +520,7 @@ def test_shapefile_ibound(function_tmpdir, example_data_path):
field_names = [item[0] for item in shape.fields][1:]
ib_idx = field_names.index("ibound_1")
txt = f"should be int instead of {type(shape.record(0)[ib_idx])}"
- assert type(shape.record(0)[ib_idx]) == int, txt
+ assert isinstance(shape.record(0)[ib_idx], int), txt
shape.close()
@@ -1455,13 +1455,15 @@ def test_vtk_unstructured(function_tmpdir, unstructured_grid):
@requires_pkg("vtk", "pyvista")
-def test_vtk_to_pyvista(function_tmpdir, example_data_path):
+def test_vtk_to_pyvista(function_tmpdir):
+ from pprint import pformat
+
from autotest.test_mp7_cases import Mp7Cases
case_mf6 = Mp7Cases.mp7_mf6(function_tmpdir)
case_mf6.write_input()
success, buff = case_mf6.run_model()
- assert success, f"MP7 model ({case_mf6.name}) failed"
+ assert success, f"MP7 model ({case_mf6.name}) failed: {pformat(buff)}"
gwf = case_mf6.flowmodel
plf = PathlineFile(Path(case_mf6.model_ws) / f"{case_mf6.name}.mppth")
@@ -1479,6 +1481,9 @@ def test_vtk_to_pyvista(function_tmpdir, example_data_path):
n_pts = sum([pl.shape[0] for pl in pls])
assert pathlines.n_points == n_pts
assert pathlines.n_cells == n_pts + len(pls)
+ assert "particleid" in pathlines.point_data
+ assert "time" in pathlines.point_data
+ assert "k" in pathlines.point_data
# uncomment to debug
# grid.plot()
@@ -1702,7 +1707,7 @@ def test_vtk_add_model_without_packages_names(function_tmpdir):
@pytest.mark.mf6
-@requires_pkg("vtk")
+@requires_pkg("vtk", "shapely")
def test_vtk_export_disv1_model(function_tmpdir):
from vtkmodules.util.numpy_support import vtk_to_numpy
from vtkmodules.vtkIOLegacy import vtkUnstructuredGridReader
@@ -1774,7 +1779,7 @@ def test_vtk_export_disv1_model(function_tmpdir):
@pytest.mark.mf6
-@requires_pkg("vtk")
+@requires_pkg("vtk", "shapely")
def test_vtk_export_disv2_model(function_tmpdir):
from vtkmodules.util.numpy_support import vtk_to_numpy
from vtkmodules.vtkIOLegacy import vtkUnstructuredGridReader
diff --git a/autotest/test_get_modflow.py b/autotest/test_get_modflow.py
index ca161a04d..3a93aa7ec 100644
--- a/autotest/test_get_modflow.py
+++ b/autotest/test_get_modflow.py
@@ -1,7 +1,6 @@
"""Test get-modflow utility."""
import os
-import platform
import sys
from os.path import expandvars
from pathlib import Path
@@ -9,11 +8,11 @@
from urllib.error import HTTPError
import pytest
-from autotest.conftest import get_project_root_path
from flaky import flaky
from modflow_devtools.markers import requires_github
from modflow_devtools.misc import run_py_script
+from autotest.conftest import get_project_root_path
from flopy.utils import get_modflow
from flopy.utils.get_modflow import get_release, get_releases, select_bindir
@@ -21,11 +20,9 @@
flopy_dir = get_project_root_path()
get_modflow_script = flopy_dir / "flopy" / "utils" / "get_modflow.py"
bindir_options = {
- "flopy": (
- Path(expandvars(r"%LOCALAPPDATA%\flopy")) / "bin"
- if system() == "Windows"
- else Path.home() / ".local" / "share" / "flopy" / "bin"
- ),
+ "flopy": Path(expandvars(r"%LOCALAPPDATA%\flopy")) / "bin"
+ if system() == "Windows"
+ else Path.home() / ".local" / "share" / "flopy" / "bin",
"python": Path(sys.prefix)
/ ("Scripts" if system() == "Windows" else "bin"),
"home": Path.home() / ".local" / "bin",
@@ -129,6 +126,8 @@ def test_get_release(repo):
assert {a.rpartition("_")[2] for a in actual_assets} >= {
a for a in expected_assets if not a.startswith("win")
}
+ elif repo == "modflow6-nightly-build":
+ expected_assets.append("macarm.zip")
else:
for ostag in expected_ostags:
assert any(
diff --git a/autotest/test_grid.py b/autotest/test_grid.py
index 7bf27622e..d27337f37 100644
--- a/autotest/test_grid.py
+++ b/autotest/test_grid.py
@@ -7,19 +7,24 @@
import matplotlib
import numpy as np
import pytest
-from autotest.test_dis_cases import case_dis, case_disv
-from autotest.test_grid_cases import GridCases
from flaky import flaky
from matplotlib import pyplot as plt
from modflow_devtools.markers import requires_exe, requires_pkg
from modflow_devtools.misc import has_pkg
+from autotest.test_dis_cases import case_dis, case_disv
+from autotest.test_grid_cases import GridCases
from flopy.discretization import StructuredGrid, UnstructuredGrid, VertexGrid
from flopy.mf6 import MFSimulation
from flopy.modflow import Modflow, ModflowDis
from flopy.utils import import_optional_dependency
from flopy.utils.crs import get_authority_crs
-from flopy.utils.cvfdutil import gridlist_to_disv_gridprops, to_cvfd
+from flopy.utils.cvfdutil import (
+ area_of_polygon,
+ centroid_of_polygon,
+ gridlist_to_disv_gridprops,
+ to_cvfd,
+)
from flopy.utils.triangle import Triangle
from flopy.utils.voronoi import VoronoiGrid
@@ -145,6 +150,31 @@ def test_get_vertices():
assert np.array_equal(a1, a2)
+def test_get_cell_vertices():
+ m = Modflow()
+ _ = ModflowDis(m, nrow=40, ncol=20, delr=25.0, delc=25.0)
+ mg = m.modelgrid
+ ul = [(0.0, 1000.0), (25.0, 1000.0), (25.0, 975.0), (0.0, 975.0)]
+ assert mg.get_cell_vertices(0) == ul
+ assert mg.get_cell_vertices(0, 0) == ul
+ ll = [(0.0, 25.0), (25.0, 25.0), (25.0, 0.0), (0.0, 0.0)]
+ assert mg.get_cell_vertices(780) == ll
+ assert mg.get_cell_vertices(node=780) == ll
+ assert mg.get_cell_vertices(39, 0) == ll
+ assert mg.get_cell_vertices(j=0, i=39) == ll
+ # test exceptions
+ with pytest.raises(TypeError):
+ mg.get_cell_vertices()
+ with pytest.raises(TypeError):
+ mg.get_cell_vertices(0, 0, 0)
+ with pytest.raises(TypeError):
+ mg.get_cell_vertices(0, 0, node=0)
+ with pytest.raises(TypeError):
+ mg.get_cell_vertices(0, i=0)
+ with pytest.raises(TypeError):
+ mg.get_cell_vertices(nn=0)
+
+
def test_get_lrc_get_node():
nlay, nrow, ncol = 3, 4, 5
nnodes = nlay * nrow * ncol
@@ -502,15 +532,18 @@ def load_iverts(fname):
assert g.nnodes == g.ncpl.sum() == 1090
-def test_unstructured_from_gridspec(example_data_path):
+def unstructured_from_gridspec_driver(example_data_path, gsf_file):
model_path = example_data_path / "freyberg_usg"
- spec_path = model_path / "freyberg.usg.gsf"
+ spec_path = model_path / gsf_file
grid = UnstructuredGrid.from_gridspec(spec_path)
with open(spec_path) as file:
lines = file.readlines()
split = [line.strip().split() for line in lines]
+ # remove comments
+ split = [item for item in split if item[0] != "#"]
+
# check number of nodes
nnodes = int(split[1][0])
assert len(grid.iverts) == nnodes
@@ -555,6 +588,16 @@ def test_unstructured_from_gridspec(example_data_path):
assert min(grid.botm) == min([xyz[2] for xyz in expected_verts])
+def test_unstructured_from_gridspec(example_data_path):
+ unstructured_from_gridspec_driver(example_data_path, "freyberg.usg.gsf")
+
+
+def test_unstructured_from_gridspec_comments(example_data_path):
+ unstructured_from_gridspec_driver(
+ example_data_path, "freyberg.usg.gsf.with_comment"
+ )
+
+
@pytest.mark.parametrize(
"crs,expected_srs",
(
@@ -852,6 +895,7 @@ def test_grid_crs_exceptions():
sg.set_coord_info(prj=not_a_file)
+@requires_pkg("shapely")
def test_tocvfd1():
vertdict = {}
vertdict[0] = [(0, 0), (100, 0), (100, 100), (0, 100), (0, 0)]
@@ -860,6 +904,7 @@ def test_tocvfd1():
assert 6 in iverts[0]
+@requires_pkg("shapely")
def test_tocvfd2():
vertdict = {}
vertdict[0] = [(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)]
@@ -868,6 +913,7 @@ def test_tocvfd2():
assert [1, 4, 5, 6, 2, 1] in iverts
+@requires_pkg("shapely")
def test_tocvfd3():
# create the nested grid described in the modflow-usg documentation
@@ -921,6 +967,28 @@ def test_tocvfd3():
assert i == j, f"{i} not equal {j}"
+@requires_pkg("shapely")
+def test_area_centroid_polygon():
+ pts = [
+ (685053.450097303, 6295544.549730939),
+ (685055.8377391606, 6295545.167682521),
+ (685057.3028430222, 6295542.712221102),
+ (685055.3500302795, 6295540.907246565),
+ (685053.2040466429, 6295542.313082705),
+ (685053.450097303, 6295544.549730939),
+ ]
+ xc, yc = centroid_of_polygon(pts)
+ result = np.array([xc, yc])
+ answer = np.array((685055.1035824707, 6295543.12059913))
+ assert np.allclose(
+ result, answer
+ ), "cvfdutil centroid of polygon incorrect"
+ x, y = list(zip(*pts))
+ result = area_of_polygon(x, y)
+ answer = 11.228131838368032
+ assert np.allclose(result, answer), "cvfdutil area of polygon incorrect"
+
+
def test_unstructured_grid_shell():
# constructor with no arguments. incomplete shell should exist
g = UnstructuredGrid()
@@ -1119,7 +1187,7 @@ def test_voronoi_grid(request, function_tmpdir, grid_info):
# ensure proper number of cells
almost_right = ncpl == 538 and gridprops["ncpl"] == 535
if almost_right:
- warn(f"off-by-3")
+ warn("off-by-3")
# ensure that all cells have 3 or more points
invalid_cells = [i for i, ivts in enumerate(vor.iverts) if len(ivts) < 3]
diff --git a/autotest/test_gridgen.py b/autotest/test_gridgen.py
index a45bd3498..064bd7064 100644
--- a/autotest/test_gridgen.py
+++ b/autotest/test_gridgen.py
@@ -4,13 +4,14 @@
import matplotlib.pyplot as plt
import numpy as np
+import pandas as pd
import pytest
-from autotest.test_grid_cases import GridCases
from matplotlib.collections import LineCollection, PathCollection, QuadMesh
from modflow_devtools.markers import requires_exe, requires_pkg
from modflow_devtools.misc import has_pkg
import flopy
+from autotest.test_grid_cases import GridCases
from flopy.discretization.unstructuredgrid import UnstructuredGrid
from flopy.discretization.vertexgrid import VertexGrid
from flopy.utils.gridgen import Gridgen
@@ -851,3 +852,104 @@ def test_gridgen(function_tmpdir):
"should not be (without vertical pass through activated)."
)
assert max(ja0) <= disu_vp.nodelay[0], msg
+
+
+@requires_exe("mf6", "gridgen")
+@requires_pkg("shapely", "shapefile")
+def test_flopy_issue_1492(function_tmpdir):
+ """
+ Submitted by David Brakenhoff in
+ https://github.com/modflowpy/flopy/issues/1492
+ """
+
+ name = "issue1492"
+ nlay = 3
+ nrow = 10
+ ncol = 10
+ delr = delc = 1.1 # <-- 1.0 converges
+ top = 1
+ bot = 0
+ dz = (top - bot) / nlay
+ botm = [top - k * dz for k in range(1, nlay + 1)]
+
+ # Create a dummy model and regular grid to use as the base grid for gridgen
+ sim = flopy.mf6.MFSimulation(
+ sim_name=name, sim_ws=function_tmpdir, exe_name="mf6"
+ )
+ gwf = flopy.mf6.ModflowGwf(sim, modelname=name)
+ dis = flopy.mf6.ModflowGwfdis(
+ gwf,
+ nlay=nlay,
+ nrow=nrow,
+ ncol=ncol,
+ delr=delr,
+ delc=delc,
+ top=top,
+ botm=botm,
+ )
+ og_grid = gwf.modelgrid
+
+ # Create and build the gridgen model
+ g = Gridgen(dis, model_ws=function_tmpdir)
+ g.build()
+
+ # retrieve a dictionary of arguments to be passed
+ # directly into the flopy disv constructor
+ disv_gridprops = g.get_gridprops_disv()
+
+ # find the cell numbers for constant heads
+ chdspd = []
+ ilay = 0
+ for x, y, head in [(0, 10, 1.0), (10, 0, 0.0)]:
+ ra = g.intersect([(x, y)], "point", ilay)
+ ic = ra["nodenumber"][0]
+ chdspd.append([(ilay, ic), head])
+
+ # build run and post-process the MODFLOW 6 model
+ sim = flopy.mf6.MFSimulation(
+ sim_name=name,
+ sim_ws=function_tmpdir,
+ exe_name="mf6",
+ verbosity_level=0,
+ )
+ tdis = flopy.mf6.ModflowTdis(sim)
+ ims = flopy.mf6.ModflowIms(sim, linear_acceleration="bicgstab")
+ gwf = flopy.mf6.ModflowGwf(sim, modelname=name, save_flows=True)
+ disv = flopy.mf6.ModflowGwfdisv(gwf, **disv_gridprops)
+ ic = flopy.mf6.ModflowGwfic(gwf)
+ npf = flopy.mf6.ModflowGwfnpf(
+ gwf, xt3doptions=True, save_specific_discharge=True
+ )
+ chd = flopy.mf6.ModflowGwfchd(gwf, stress_period_data=chdspd)
+ budget_file = name + ".bud"
+ head_file = name + ".hds"
+ oc = flopy.mf6.ModflowGwfoc(
+ gwf,
+ budget_filerecord=budget_file,
+ head_filerecord=head_file,
+ saverecord=[("HEAD", "ALL"), ("BUDGET", "ALL")],
+ )
+
+ sim.write_simulation()
+ success, _ = sim.run_simulation(silent=False)
+ assert success
+
+ # debugging duplicate vertices
+ grid = gwf.modelgrid
+ og_verts = pd.DataFrame(og_grid.verts, columns=["x", "y"])
+ mg_verts = pd.DataFrame(grid.verts, columns=["x", "y"])
+
+ plot_debug = False
+ if plot_debug:
+ head = gwf.output.head().get_data()
+ bud = gwf.output.budget()
+ spdis = bud.get_data(text="DATA-SPDIS")[0]
+ pmv = flopy.plot.PlotMapView(gwf)
+ pmv.plot_array(head)
+ pmv.plot_grid(colors="white")
+ ax = plt.gca()
+ verts = grid.verts
+ ax.plot(verts[:, 0], verts[:, 1], "bo", alpha=0.25, ms=5)
+ pmv.contour_array(head, levels=[0.2, 0.4, 0.6, 0.8], linewidths=3.0)
+ pmv.plot_vector(spdis["qx"], spdis["qy"], color="white")
+ plt.show()
diff --git a/autotest/test_gridintersect.py b/autotest/test_gridintersect.py
index ff61b229d..dc7a7656f 100644
--- a/autotest/test_gridintersect.py
+++ b/autotest/test_gridintersect.py
@@ -1205,6 +1205,10 @@ def test_point_offset_rot_structured_grid():
ix = GridIntersect(sgr, method="structured")
result = ix.intersect(p)
assert len(result) == 1
+ # check empty result when using local model coords
+ ix = GridIntersect(sgr, method="structured", local=True)
+ result = ix.intersect(p)
+ assert len(result) == 0
@requires_pkg("shapely")
@@ -1213,8 +1217,11 @@ def test_linestring_offset_rot_structured_grid():
ls = LineString([(5, 10.0 + np.sqrt(200.0)), (15, 10.0 + np.sqrt(200.0))])
ix = GridIntersect(sgr, method="structured")
result = ix.intersect(ls)
- # NOTE: in shapely 2.0, this returns a Linestring with length 10^-15 in cell (0, 1)
- assert len(result) == 2 or len(result) == 3
+ assert len(result) == 2
+ # check empty result when using local model coords
+ ix = GridIntersect(sgr, method="structured", local=True)
+ result = ix.intersect(ls)
+ assert len(result) == 0
@requires_pkg("shapely")
@@ -1231,6 +1238,10 @@ def test_polygon_offset_rot_structured_grid():
ix = GridIntersect(sgr, method="structured")
result = ix.intersect(p)
assert len(result) == 3
+ # check empty result when using local model coords
+ ix = GridIntersect(sgr, method="structured", local=True)
+ result = ix.intersect(p)
+ assert len(result) == 0
@requires_pkg("shapely")
@@ -1241,6 +1252,10 @@ def test_point_offset_rot_structured_grid_shapely(rtree):
ix = GridIntersect(sgr, method="vertex", rtree=rtree)
result = ix.intersect(p)
assert len(result) == 1
+ # check empty result when using local model coords
+ ix = GridIntersect(sgr, method="vertex", rtree=rtree, local=True)
+ result = ix.intersect(p)
+ assert len(result) == 0
@requires_pkg("shapely")
@@ -1251,6 +1266,10 @@ def test_linestring_offset_rot_structured_grid_shapely(rtree):
ix = GridIntersect(sgr, method="vertex", rtree=rtree)
result = ix.intersect(ls)
assert len(result) == 2
+ # check empty result when using local model coords
+ ix = GridIntersect(sgr, method="vertex", rtree=rtree, local=True)
+ result = ix.intersect(ls)
+ assert len(result) == 0
@requires_pkg("shapely")
@@ -1268,6 +1287,59 @@ def test_polygon_offset_rot_structured_grid_shapely(rtree):
ix = GridIntersect(sgr, method="vertex", rtree=rtree)
result = ix.intersect(p)
assert len(result) == 3
+ # check empty result when using local model coords
+ ix = GridIntersect(sgr, method="vertex", rtree=rtree, local=True)
+ result = ix.intersect(p)
+ assert len(result) == 0
+
+
+@requires_pkg("shapely")
+@rtree_toggle
+def test_point_offset_rot_vertex_grid_shapely(rtree):
+ sgr = get_rect_vertex_grid(angrot=45.0, xyoffset=10.0)
+ p = Point(10.0, 10 + np.sqrt(200.0))
+ ix = GridIntersect(sgr, method="vertex", rtree=rtree)
+ result = ix.intersect(p)
+ assert len(result) == 1
+ # check empty result when using local model coords
+ ix = GridIntersect(sgr, method="vertex", rtree=rtree, local=True)
+ result = ix.intersect(p)
+ assert len(result) == 0
+
+
+@requires_pkg("shapely")
+@rtree_toggle
+def test_linestring_offset_rot_vertex_grid_shapely(rtree):
+ sgr = get_rect_vertex_grid(angrot=45.0, xyoffset=10.0)
+ ls = LineString([(5, 10.0 + np.sqrt(200.0)), (15, 10.0 + np.sqrt(200.0))])
+ ix = GridIntersect(sgr, method="vertex", rtree=rtree)
+ result = ix.intersect(ls)
+ assert len(result) == 2
+ # check empty result when using local model coords
+ ix = GridIntersect(sgr, method="vertex", rtree=rtree, local=True)
+ result = ix.intersect(ls)
+ assert len(result) == 0
+
+
+@requires_pkg("shapely")
+@rtree_toggle
+def test_polygon_offset_rot_vertex_grid_shapely(rtree):
+ sgr = get_rect_vertex_grid(angrot=45.0, xyoffset=10.0)
+ p = Polygon(
+ [
+ (5, 10.0 + np.sqrt(200.0)),
+ (15, 10.0 + np.sqrt(200.0)),
+ (15, 10.0 + 1.5 * np.sqrt(200.0)),
+ (5, 10.0 + 1.5 * np.sqrt(200.0)),
+ ]
+ )
+ ix = GridIntersect(sgr, method="vertex", rtree=rtree)
+ result = ix.intersect(p)
+ assert len(result) == 3
+ # check empty result when using local model coords
+ ix = GridIntersect(sgr, method="vertex", rtree=rtree, local=True)
+ result = ix.intersect(p)
+ assert len(result) == 0
# %% test rasters
@@ -1378,3 +1450,14 @@ def test_raster_sampling_methods(example_data_path):
raise AssertionError(
f"{method} resampling returning incorrect values"
)
+
+
+if __name__ == "__main__":
+ sgr = get_rect_grid(angrot=45.0, xyoffset=10.0)
+ ls = LineString([(5, 10.0 + np.sqrt(200.0)), (15, 10.0 + np.sqrt(200.0))])
+ ix = GridIntersect(sgr, method="structured")
+ result = ix.intersect(ls)
+ assert len(result) == 2
+ ix = GridIntersect(sgr, method="structured", local=True)
+ result = ix.intersect(ls)
+ assert len(result) == 0
diff --git a/autotest/test_gridutil.py b/autotest/test_gridutil.py
index 48522c2c9..dbcc7b865 100644
--- a/autotest/test_gridutil.py
+++ b/autotest/test_gridutil.py
@@ -2,6 +2,7 @@
import numpy as np
import pytest
+from modflow_devtools.markers import requires_pkg
from flopy.utils.gridutil import (
get_disu_kwargs,
@@ -61,6 +62,7 @@ def test_get_lni_infers_layer_count_when_int_ncpl(ncpl, nodes, expected):
assert ln == expected[i]
+@requires_pkg("shapely")
@pytest.mark.parametrize(
"nlay, nrow, ncol, delr, delc, tp, botm",
[
@@ -123,6 +125,7 @@ def test_get_disu_kwargs(nlay, nrow, ncol, delr, delc, tp, botm):
# print(kwargs["nja"])
+@requires_pkg("shapely")
@pytest.mark.parametrize(
"nlay, nrow, ncol, delr, delc, tp, botm",
[
@@ -160,6 +163,7 @@ def test_get_disv_kwargs(nlay, nrow, ncol, delr, delc, tp, botm):
# print(kwargs["cell2d"])
+@requires_pkg("shapely")
@pytest.mark.parametrize(
"qx, qy, qz, nlay, nrow, ncol",
[
diff --git a/autotest/test_hydmodfile.py b/autotest/test_hydmodfile.py
index 76b70f1bb..3bf29a268 100644
--- a/autotest/test_hydmodfile.py
+++ b/autotest/test_hydmodfile.py
@@ -79,24 +79,16 @@ def test_hydmodfile_read(hydmod_model_path):
assert isinstance(h, HydmodObs)
ntimes = h.get_ntimes()
- assert ntimes == 101, "Not enough times in hydmod file ()...".format(
- os.path.basename(pth)
- )
+ assert ntimes == 101, "Not enough times in hydmod file ()...".format()
times = h.get_times()
- assert len(times) == 101, "Not enough times in hydmod file ()...".format(
- os.path.basename(pth)
- )
+ assert len(times) == 101, "Not enough times in hydmod file ()...".format()
nitems = h.get_nobs()
- assert nitems == 8, "Not enough records in hydmod file ()...".format(
- os.path.basename(pth)
- )
+ assert nitems == 8, "Not enough records in hydmod file ()...".format()
labels = h.get_obsnames()
- assert len(labels) == 8, "Not enough labels in hydmod file ()...".format(
- os.path.basename(pth)
- )
+ assert len(labels) == 8, "Not enough labels in hydmod file ()...".format()
print(labels)
for idx in range(ntimes):
diff --git a/autotest/test_lake_connections.py b/autotest/test_lake_connections.py
index 6bc926b1c..40322b0ab 100644
--- a/autotest/test_lake_connections.py
+++ b/autotest/test_lake_connections.py
@@ -289,7 +289,7 @@ def test_lake(function_tmpdir, example_data_path):
lakes.shape = idomain.shape
gwf.dis.idomain = np.where(lakes > -1, 1, idomain)
- # convert to Newton-Raphson fomulation and update the linear accelerator
+ # convert to Newton-Raphson formulation and update the linear accelerator
gwf.name_file.newtonoptions = "NEWTON UNDER_RELAXATION"
sim.ims.linear_acceleration = "BICGSTAB"
diff --git a/autotest/test_lgrutil.py b/autotest/test_lgrutil.py
index d3ee43caa..439e4d5e6 100644
--- a/autotest/test_lgrutil.py
+++ b/autotest/test_lgrutil.py
@@ -101,8 +101,6 @@ def test_lgrutil():
((2, 3, 3), -3),
]
- return
-
def test_lgrutil2():
# Define parent grid information
diff --git a/autotest/test_mbase.py b/autotest/test_mbase.py
index 8e3ee5d82..732b18877 100644
--- a/autotest/test_mbase.py
+++ b/autotest/test_mbase.py
@@ -66,10 +66,8 @@ def test_resolve_exe_by_rel_path(function_tmpdir, use_ext, forgive):
assert which(actual)
# check behavior if exe DNE
- with (
- pytest.warns(UserWarning)
- if forgive
- else pytest.raises(FileNotFoundError)
+ with pytest.warns(UserWarning) if forgive else pytest.raises(
+ FileNotFoundError
):
assert not resolve_exe("../bin/mf2005", forgive)
@@ -160,3 +158,34 @@ def test_run_model_exe_rel_path(mf6_model_path, function_tmpdir, use_ext):
assert success
assert any(buff)
assert any(ws.glob("*.lst"))
+
+
+@pytest.mark.mf6
+@requires_exe("mf6")
+@pytest.mark.parametrize("use_paths", [True, False])
+@pytest.mark.parametrize(
+ "exe",
+ [
+ "mf6",
+ Path(which("mf6") or ""),
+ relpath_safe(Path(which("mf6") or "")),
+ ],
+)
+def test_run_model_custom_print(
+ mf6_model_path, function_tmpdir, use_paths, exe
+):
+ ws = function_tmpdir / "ws"
+ copytree(mf6_model_path, ws)
+
+ success, buff = run_model(
+ exe_name=exe,
+ namefile="mfsim.nam",
+ model_ws=ws if use_paths else str(ws),
+ silent=False,
+ report=True,
+ custom_print=print,
+ )
+
+ assert success
+ assert any(buff)
+ assert any(ws.glob("*.lst"))
diff --git a/autotest/test_mf6.py b/autotest/test_mf6.py
index 080c93930..0e09c8258 100644
--- a/autotest/test_mf6.py
+++ b/autotest/test_mf6.py
@@ -2249,10 +2249,10 @@ def test_multi_model(function_tmpdir):
gwt2 = sim2.get_model("gwt_model_1")
ssm2 = gwt2.get_package("ssm")
fileinput = [
- ("RCH-1", f"gwt_model_1.rch1.spc"),
- ("RCH-2", f"gwt_model_1.rch2.spc"),
- ("RCH-3", f"gwt_model_1.rch3.spc", "MIXED"),
- ("RCH-4", f"gwt_model_1.rch4.spc"),
+ ("RCH-1", "gwt_model_1.rch1.spc"),
+ ("RCH-2", "gwt_model_1.rch2.spc"),
+ ("RCH-3", "gwt_model_1.rch3.spc", "MIXED"),
+ ("RCH-4", "gwt_model_1.rch4.spc"),
]
ssm2.fileinput = fileinput
fi_out = ssm2.fileinput.get_data()
diff --git a/autotest/test_mfnwt.py b/autotest/test_mfnwt.py
index b45f0fd11..792e54b02 100644
--- a/autotest/test_mfnwt.py
+++ b/autotest/test_mfnwt.py
@@ -3,10 +3,10 @@
import numpy as np
import pytest
-from autotest.conftest import get_example_data_path
from matplotlib import pyplot as plt
from modflow_devtools.markers import requires_exe
+from autotest.conftest import get_example_data_path
from flopy.modflow import (
Modflow,
ModflowBas,
diff --git a/autotest/test_mfreadnam.py b/autotest/test_mfreadnam.py
index 4be595b72..8f9e7cb77 100644
--- a/autotest/test_mfreadnam.py
+++ b/autotest/test_mfreadnam.py
@@ -1,6 +1,6 @@
import pytest
-from autotest.conftest import get_example_data_path
+from autotest.conftest import get_example_data_path
from flopy.utils.mfreadnam import (
attribs_from_namfile_header,
get_entries_from_namefile,
diff --git a/autotest/test_mfsimlist.py b/autotest/test_mfsimlist.py
index 150d07204..29ba1ce39 100644
--- a/autotest/test_mfsimlist.py
+++ b/autotest/test_mfsimlist.py
@@ -1,10 +1,10 @@
import numpy as np
import pandas as pd
import pytest
-from autotest.conftest import get_example_data_path
from modflow_devtools.markers import requires_exe
import flopy
+from autotest.conftest import get_example_data_path
from flopy.mf6 import MFSimulation
MEMORY_UNITS = ("gigabytes", "megabytes", "kilobytes", "bytes")
@@ -104,13 +104,13 @@ def test_mfsimlist_memory(function_tmpdir):
total_memory = mfsimlst.get_memory_usage()
assert total_memory > 0.0, (
- f"total memory is not greater than 0.0 " + f"({total_memory})"
+ "total memory is not greater than 0.0 " + f"({total_memory})"
)
total_memory_kb = mfsimlst.get_memory_usage(units="kilobytes")
assert np.allclose(total_memory_kb, total_memory * 1e6), (
f"total memory in kilobytes ({total_memory_kb}) is not equal to "
- + f"the total memory converted to kilobytes "
+ + "the total memory converted to kilobytes "
+ f"({total_memory * 1e6})"
)
diff --git a/autotest/test_model_splitter.py b/autotest/test_model_splitter.py
index 82e2ecd62..c7756589d 100644
--- a/autotest/test_model_splitter.py
+++ b/autotest/test_model_splitter.py
@@ -1,10 +1,10 @@
import numpy as np
import pytest
-from autotest.conftest import get_example_data_path
from modflow_devtools.markers import requires_exe, requires_pkg
from modflow_devtools.misc import set_dir
import flopy
+from autotest.conftest import get_example_data_path
from flopy.mf6 import MFSimulation
from flopy.mf6.utils import Mf6Splitter
@@ -364,7 +364,7 @@ def test_control_records(function_tmpdir):
if spd_ls2["filename"] is None or not spd_ls2["binary"]:
raise AssertionError(
- "External binary file input not being preseved for MFList"
+ "External binary file input not being preserved for MFList"
)
diff --git a/autotest/test_modflow.py b/autotest/test_modflow.py
index 62675b9b2..c421869d5 100644
--- a/autotest/test_modflow.py
+++ b/autotest/test_modflow.py
@@ -8,10 +8,10 @@
import numpy as np
import pandas as pd
import pytest
-from autotest.conftest import get_example_data_path
from modflow_devtools.markers import excludes_platform, requires_exe
from modflow_devtools.misc import has_pkg
+from autotest.conftest import get_example_data_path
from flopy.discretization import StructuredGrid
from flopy.mf6 import MFSimulation
from flopy.modflow import (
@@ -915,11 +915,14 @@ def test_bcs_check(function_tmpdir):
assert len(chk.summary_array) == 1
ghb = ModflowGhb(mf, stress_period_data={0: [0, 0, 0, 100, 1]})
+ riv_spd = pd.DataFrame(
+ [[0, 0, 0, 0, 101.0, 10.0, 100.0], [0, 0, 0, 1, 80.0, 10.0, 90.0]],
+ columns=["kper", "k", "i", "j", "stage", "cond", "rbot"],
+ )
+
riv = ModflowRiv(
mf,
- stress_period_data={
- 0: [[0, 0, 0, 101, 10, 100], [0, 0, 1, 80, 10, 90]]
- },
+ stress_period_data=riv_spd.to_records(index=False),
)
chk = ghb.check()
assert chk.summary_array["desc"][0] == "BC in inactive cell"
@@ -1039,7 +1042,7 @@ def test_oc_check():
ModflowDis(m)
oc.stress_period_data = {(0, 0): ["save head", "save budget"]}
- chk = oc.check() # check passsed
+ chk = oc.check() # check passed
assert len(chk.summary_array) == 0, len(chk.summary_array)
oc.stress_period_data = {(0, 0): ["save"]}
diff --git a/autotest/test_mp5.py b/autotest/test_mp5.py
index 7c4515444..4e702a639 100644
--- a/autotest/test_mp5.py
+++ b/autotest/test_mp5.py
@@ -1,11 +1,9 @@
import os
import numpy as np
-import pandas as pd
-from autotest.test_mp6 import eval_timeseries
from matplotlib import pyplot as plt
-from modflow_devtools.markers import requires_pkg
+from autotest.test_mp6 import eval_timeseries
from flopy.modflow import Modflow
from flopy.plot import PlotMapView
from flopy.utils import EndpointFile, PathlineFile
@@ -50,14 +48,8 @@ def test_mp5_load(function_tmpdir, example_data_path):
for n in pthobj.nid:
p = pthobj.get_data(partid=n)
e = endobj.get_data(partid=n)
- try:
- mm.plot_pathline(p, colors=colors[n], layer="all")
- except:
- assert False, f'could not plot pathline {n + 1} with layer="all"'
- try:
- mm.plot_endpoint(e)
- except:
- assert False, f'could not plot endpoint {n + 1} with layer="all"'
+ mm.plot_pathline(p, colors=colors[n], layer="all")
+ mm.plot_endpoint(e)
# plot the grid and ibound array
mm.plot_grid(lw=0.5)
diff --git a/autotest/test_mp6.py b/autotest/test_mp6.py
index e9f3e59b9..73935a1d4 100644
--- a/autotest/test_mp6.py
+++ b/autotest/test_mp6.py
@@ -6,11 +6,11 @@
import matplotlib.pyplot as plt
import numpy as np
import pytest
-from autotest.conftest import get_example_data_path
from modflow_devtools.markers import requires_exe, requires_pkg
from numpy.lib.recfunctions import repack_fields
import flopy
+from autotest.conftest import get_example_data_path
from flopy.discretization import StructuredGrid
from flopy.export.shapefile_utils import shp2recarray
from flopy.modflow import Modflow, ModflowMnw2
diff --git a/autotest/test_mp7.py b/autotest/test_mp7.py
index 69622b777..f763e577b 100644
--- a/autotest/test_mp7.py
+++ b/autotest/test_mp7.py
@@ -4,9 +4,9 @@
import matplotlib.pyplot as plt
import numpy as np
import pytest
-from autotest.test_mp7_cases import Mp7Cases
from modflow_devtools.markers import requires_exe, requires_pkg
+from autotest.test_mp7_cases import Mp7Cases
from flopy.mf6 import (
MFSimulation,
ModflowGwf,
diff --git a/autotest/test_notebooks.py b/autotest/test_notebooks.py
index 68e24b65c..4c853645d 100644
--- a/autotest/test_notebooks.py
+++ b/autotest/test_notebooks.py
@@ -2,10 +2,11 @@
from pprint import pprint
import pytest
-from autotest.conftest import get_project_root_path
from flaky import flaky
from modflow_devtools.misc import run_cmd
+from autotest.conftest import get_project_root_path
+
def get_notebooks(pattern=None, exclude=None):
prjroot = get_project_root_path()
diff --git a/autotest/test_particledata.py b/autotest/test_particledata.py
index fa9b2c5fd..ed1f167ab 100644
--- a/autotest/test_particledata.py
+++ b/autotest/test_particledata.py
@@ -1,14 +1,15 @@
from functools import reduce
from itertools import chain
+from pprint import pformat
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import pytest
-from autotest.test_grid_cases import GridCases
-from modflow_devtools.markers import requires_pkg
+from modflow_devtools.markers import requires_exe, requires_pkg
import flopy
+from autotest.test_grid_cases import GridCases
from flopy.discretization import StructuredGrid
from flopy.mf6.modflow.mfsimulation import MFSimulation
from flopy.modflow.mf import Modflow
@@ -22,9 +23,11 @@
Modpath7Sim,
NodeParticleData,
ParticleData,
+ ParticleGroupLRCTemplate,
ParticleGroupNodeTemplate,
)
-from flopy.utils.modpathfile import PathlineFile
+from flopy.modpath.mp7particlegroup import ParticleGroup
+from flopy.utils.modpathfile import EndpointFile, PathlineFile
# utilities
@@ -44,7 +47,7 @@ def flatten(a):
]
-# test constructors
+# test initializers
structured_dtype = np.dtype(
@@ -276,13 +279,18 @@ def test_particledata_to_prp_dis_9():
assert np.allclose(rpts_prt, rpts_exp, atol=1e-3)
-@pytest.mark.parametrize("localx", [None, 0.5, 0.25])
-@pytest.mark.parametrize("localy", [None, 0.5, 0.25])
-def test_particledata_to_prp_disv_1(localx, localy):
+@pytest.mark.parametrize("lx", [None, 0.5, 0.25]) # local x coord
+@pytest.mark.parametrize("ly", [None, 0.5, 0.25]) # local y coord
+@pytest.mark.parametrize(
+ "localz", [False, True]
+) # whether to return local z coords
+def test_particledata_to_prp_disv_1(lx, ly, localz):
"""
1 particle in bottom left cell, testing with default
location (middle), explicitly specifying middle, and
- offset in x and y directions
+ offset in x and y directions. Also test the `localz`
+ switch, which determines whether to return local z
+ coordinates (on interval [0, 1]) rather than global.
"""
# model grid
@@ -290,28 +298,28 @@ def test_particledata_to_prp_disv_1(localx, localy):
# particle data
locs = [4]
- localx = [localx] if localx else None
- localy = [localy] if localy else None
+ lx = [lx] if lx else None
+ ly = [ly] if ly else None
part_data = ParticleData(
partlocs=locs,
structured=False,
particleids=range(len(locs)),
- localx=localx,
- localy=localy,
+ localx=lx,
+ localy=ly,
)
# convert to global coordinates
- rpts_prt = flatten(list(part_data.to_prp(grid)))
+ rpts_prt = flatten(list(part_data.to_prp(grid, localz=localz)))
# check conversion succeeded
assert len(rpts_prt) == len(locs)
assert all(
len(c) == 6 for c in rpts_prt
) # each coord should be a tuple (irpt, k, j, x, y, z)
- for ci, c in enumerate(rpts_prt):
- assert np.isclose(c[3], localx[0] if localx else 0.5) # check x
- assert np.isclose(c[4], localy[0] if localy else 0.5) # check y
- assert np.isclose(c[5], 7.5) # check z
+ for rpt in rpts_prt:
+ assert np.isclose(rpt[3], lx[0] if lx else 0.5) # check x
+ assert np.isclose(rpt[4], ly[0] if ly else 0.5) # check y
+ assert np.isclose(rpt[5], 0.5 if localz else 7.5) # check z
# debugging: plot grid, cell centers, and particle location
# fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(10, 10))
@@ -333,7 +341,10 @@ def test_particledata_to_prp_disv_1(localx, localy):
# plt.show()
-def test_particledata_to_prp_disv_9():
+@pytest.mark.parametrize(
+ "localz", [False, True]
+) # whether to return local z coords
+def test_particledata_to_prp_disv_9(localz):
# minimal vertex grid
grid = GridCases().vertex_small()
@@ -367,81 +378,27 @@ def test_particledata_to_prp_disv_9():
0,
float(f"0.{i + 1}"),
float(f"2.{i + 1}"),
- (grid.xyzextent[5] - grid.xyzextent[4]) / 2,
+ 0.5 if localz else ((grid.xyzextent[5] - grid.xyzextent[4]) / 2),
)
for i in range(9)
]
# convert to prt format
- rpts_prt = flatten(list(part_data.to_prp(grid)))
+ rpts_prt = flatten(list(part_data.to_prp(grid, localz=localz)))
assert np.allclose(rpts_prt, rpts_exp, atol=1e-3)
-def test_lrcparticledata_to_prp_divisions_defaults():
+@pytest.mark.parametrize(
+ "localz", [False, True]
+) # whether to return local z coords
+def test_lrcparticledata_to_prp_divisions_defaults(localz, array_snapshot):
sd_data = CellDataType()
regions = [[0, 0, 1, 0, 1, 1]]
part_data = LRCParticleData(
subdivisiondata=[sd_data], lrcregions=[regions]
)
grid = GridCases().structured_small()
- rpts_prt = flatten(list(part_data.to_prp(grid)))
- rpts_exp = [
- [0, 0, 0, 1, 1.166666, 1.166666, 5.833333],
- [1, 0, 0, 1, 1.166666, 1.166666, 7.5],
- [2, 0, 0, 1, 1.166666, 1.166666, 9.166666],
- [3, 0, 0, 1, 1.1666666, 1.5, 5.833333],
- [4, 0, 0, 1, 1.1666666, 1.5, 7.5],
- [5, 0, 0, 1, 1.1666666, 1.5, 9.166666],
- [6, 0, 0, 1, 1.166666, 1.833333, 5.833333],
- [7, 0, 0, 1, 1.166666, 1.833333, 7.5],
- [8, 0, 0, 1, 1.166666, 1.833333, 9.166666],
- [9, 0, 0, 1, 1.5, 1.166666, 5.833333],
- [10, 0, 0, 1, 1.5, 1.166666, 7.5],
- [11, 0, 0, 1, 1.5, 1.166666, 9.166666],
- [12, 0, 0, 1, 1.5, 1.5, 5.833333],
- [13, 0, 0, 1, 1.5, 1.5, 7.5],
- [14, 0, 0, 1, 1.5, 1.5, 9.166666],
- [15, 0, 0, 1, 1.5, 1.833333, 5.833333],
- [16, 0, 0, 1, 1.5, 1.833333, 7.5],
- [17, 0, 0, 1, 1.5, 1.833333, 9.166666],
- [18, 0, 0, 1, 1.833333, 1.166666, 5.833333],
- [19, 0, 0, 1, 1.833333, 1.166666, 7.5],
- [20, 0, 0, 1, 1.833333, 1.166666, 9.166666],
- [21, 0, 0, 1, 1.833333, 1.5, 5.833333],
- [22, 0, 0, 1, 1.833333, 1.5, 7.5],
- [23, 0, 0, 1, 1.833333, 1.5, 9.166666],
- [24, 0, 0, 1, 1.833333, 1.833333, 5.833333],
- [25, 0, 0, 1, 1.833333, 1.833333, 7.5],
- [26, 0, 0, 1, 1.833333, 1.833333, 9.166666],
- [27, 0, 1, 1, 1.166666, 0.166666, 5.833333],
- [28, 0, 1, 1, 1.166666, 0.166666, 7.5],
- [29, 0, 1, 1, 1.166666, 0.166666, 9.166666],
- [30, 0, 1, 1, 1.166666, 0.5, 5.833333],
- [31, 0, 1, 1, 1.166666, 0.5, 7.5],
- [32, 0, 1, 1, 1.166666, 0.5, 9.166666],
- [33, 0, 1, 1, 1.166666, 0.833333, 5.833333],
- [34, 0, 1, 1, 1.166666, 0.833333, 7.5],
- [35, 0, 1, 1, 1.166666, 0.833333, 9.166666],
- [36, 0, 1, 1, 1.5, 0.166666, 5.833333],
- [37, 0, 1, 1, 1.5, 0.166666, 7.5],
- [38, 0, 1, 1, 1.5, 0.166666, 9.166666],
- [39, 0, 1, 1, 1.5, 0.5, 5.833333],
- [40, 0, 1, 1, 1.5, 0.5, 7.5],
- [41, 0, 1, 1, 1.5, 0.5, 9.166666],
- [42, 0, 1, 1, 1.5, 0.833333, 5.833333],
- [43, 0, 1, 1, 1.5, 0.833333, 7.5],
- [44, 0, 1, 1, 1.5, 0.833333, 9.166666],
- [45, 0, 1, 1, 1.833333, 0.166666, 5.833333],
- [46, 0, 1, 1, 1.833333, 0.166666, 7.5],
- [47, 0, 1, 1, 1.833333, 0.166666, 9.166666],
- [48, 0, 1, 1, 1.833333, 0.5, 5.833333],
- [49, 0, 1, 1, 1.833333, 0.5, 7.5],
- [50, 0, 1, 1, 1.833333, 0.5, 9.166666],
- [51, 0, 1, 1, 1.833333, 0.833333, 5.833333],
- [52, 0, 1, 1, 1.833333, 0.833333, 7.5],
- [53, 0, 1, 1, 1.833333, 0.833333, 9.166666],
- ]
-
+ rpts_prt = flatten(list(part_data.to_prp(grid, localz=localz)))
num_cells = reduce(
sum,
[
@@ -459,7 +416,7 @@ def test_lrcparticledata_to_prp_divisions_defaults():
* sd_data.layercelldivisions
)
assert act_len == exp_len
- assert np.allclose(rpts_prt, rpts_exp)
+ assert rpts_prt == array_snapshot
def test_lrcparticledata_to_prp_divisions_custom():
@@ -567,7 +524,7 @@ def test_lrcparticledata_to_prp_top_bottom():
assert rpts_prt[1][6] == grid.top_botm[0, 1, 1]
-def test_lrcparticledata_to_prp_1_per_face():
+def test_lrcparticledata_to_prp_1_per_face(array_snapshot):
sddata = FaceDataType(
horizontaldivisions1=1,
verticaldivisions1=1,
@@ -586,15 +543,6 @@ def test_lrcparticledata_to_prp_1_per_face():
data = LRCParticleData(subdivisiondata=[sddata], lrcregions=[lrcregions])
grid = GridCases().structured_small()
rpts_prt = flatten(list(data.to_prp(grid)))
- rpts_exp = [
- # irpt, k, i, j, x, y, z
- [0, 0, 1, 1, 1.0, 0.5, 7.5],
- [1, 0, 1, 1, 2.0, 0.5, 7.5],
- [2, 0, 1, 1, 1.5, 0.0, 7.5],
- [3, 0, 1, 1, 1.5, 1.0, 7.5],
- [4, 0, 1, 1, 1.5, 0.5, 5.0],
- [5, 0, 1, 1, 1.5, 0.5, 10.0],
- ]
num_cells = len(
[
(lrc[3] - lrc[0]) * (lrc[4] - lrc[1]) * (lrc[5] - lrc[2])
@@ -602,11 +550,14 @@ def test_lrcparticledata_to_prp_1_per_face():
]
)
assert len(rpts_prt) == num_cells * 6 # 1 particle on each face
- assert np.allclose(rpts_prt, rpts_exp)
+ assert rpts_prt == array_snapshot
+@pytest.mark.parametrize(
+ "localz", [False, True]
+) # whether to return local z coords
def test_nodeparticledata_to_prp_disv_defaults(
- function_tmpdir, example_data_path
+ function_tmpdir, example_data_path, localz
):
"""
This test loads a GWF simulation, runs it, and feeds it to an MP7 simulation
@@ -669,14 +620,15 @@ def test_nodeparticledata_to_prp_disv_defaults(
mp7_pls = pd.concat([pd.DataFrame(ra) for ra in pldata])
mp7_pls = mp7_pls.sort_values(by=["time", "particleid"]).head(27)
mp7_rpts = [
- [0, r.k, r.x, r.y, r.z] for r in mp7_pls.itertuples()
+ [0, r.k, r.x, r.y, r.zloc if localz else r.z]
+ for r in mp7_pls.itertuples()
] # omit rpt index
mp7_rpts.sort()
# convert particle data to prt format, flatten (remove cell ID tuples),
- # remove irpt as it is not gauranteed to match, and sort
- prt_rpts = flatten(list(pdat.to_prp(grid)))
- prt_rpts = [r[1:] for r in prt_rpts] #
+ # remove irpt as it is not guaranteed to match, and sort
+ prt_rpts = flatten(list(pdat.to_prp(grid, localz=localz)))
+ prt_rpts = [r[1:] for r in prt_rpts]
prt_rpts.sort()
assert np.allclose(prt_rpts, mp7_rpts)
@@ -792,7 +744,7 @@ def test_nodeparticledata_prp_disv_big(function_tmpdir):
print(rpts_prt)
-# test write
+# test write()
def test_lrcparticledata_write(function_tmpdir):
@@ -823,3 +775,102 @@ def test_lrcparticledata_write(function_tmpdir):
# check lines written
lines = open(p).readlines()
assert lines == ["1 1\n", "2 1 0\n", " 5 5 1\n", "1 3 3 3 4 4 \n"]
+
+
+# To make it easier to compare MODFLOW 6 PRT and MODPATH 7 results,
+# we want to_coords() and to_prp() to return release configurations
+# in the same order as is generated by MODPATH 7. That is, an input
+# file for MF6 PRT's PRP package should list particle release points
+# in the same order that MODPATH 7 assigns particle IDs upon release
+# from any input style. The tests below set up bare-bones MP7 models
+# in endpoint mode and compare against their release points.
+
+
+@pytest.fixture
+def mf6_sim(function_tmpdir):
+ name = "tiny-gwf"
+ sim = flopy.mf6.MFSimulation(
+ sim_name=name, sim_ws=function_tmpdir, exe_name="mf6"
+ )
+ tdis = flopy.mf6.ModflowTdis(sim)
+ ims = flopy.mf6.ModflowIms(sim)
+ gwf = flopy.mf6.ModflowGwf(sim, modelname=name, save_flows=True)
+ dis = flopy.mf6.ModflowGwfdis(gwf, nrow=1, ncol=1)
+ ic = flopy.mf6.ModflowGwfic(gwf)
+ npf = flopy.mf6.ModflowGwfnpf(gwf, save_specific_discharge=True)
+ chd = flopy.mf6.ModflowGwfchd(gwf, stress_period_data=[[(0, 0, 0), 1.0]])
+ budget_file = name + ".bud"
+ head_file = name + ".hds"
+ oc = flopy.mf6.ModflowGwfoc(
+ gwf,
+ budget_filerecord=budget_file,
+ head_filerecord=head_file,
+ saverecord=[("HEAD", "ALL"), ("BUDGET", "ALL")],
+ )
+ return sim
+
+
+def get_mp7_sim(mf6_sim, groups):
+ mp = Modpath7(
+ modelname=f"{mf6_sim.name}_mp7",
+ flowmodel=mf6_sim.get_model(),
+ exe_name="mp7",
+ model_ws=mf6_sim.sim_path,
+ )
+ mpbas = Modpath7Bas(mp)
+ mpsim = Modpath7Sim(
+ mp,
+ simulationtype="endpoint",
+ trackingdirection="forward",
+ particlegroups=groups,
+ )
+ return mp
+
+
+@requires_exe("mp7")
+def test_lrcparticledata_celldatatype_to_coords_order(mf6_sim):
+ mf6_sim.write_simulation()
+ success, buff = mf6_sim.run_simulation()
+ assert success, pformat(buff)
+
+ pdata = flopy.modpath.LRCParticleData()
+ pg = ParticleGroupLRCTemplate(particlegroupname="PG1", particledata=pdata)
+ mp7_sim = get_mp7_sim(mf6_sim, [pg])
+ mp7_sim.write_input()
+ success, buff = mp7_sim.run_model()
+ assert success, pformat(buff)
+
+ gwf = mf6_sim.get_model()
+ grid = gwf.modelgrid
+ ep_file = EndpointFile(mf6_sim.sim_path / f"{mp7_sim.name}.mpend")
+ expected = ep_file.get_destination_endpoint_data(range(grid.nnodes))[
+ ["x0", "y0", "z0"]
+ ].tolist()
+ actual = list(pdata.to_coords(grid))
+ assert len(expected) == len(actual) == 27
+ assert np.allclose(expected, actual)
+
+
+def test_lrcparticledata_facedatatype_to_coords_order(mf6_sim):
+ mf6_sim.write_simulation()
+ success, buff = mf6_sim.run_simulation()
+ assert success, pformat(buff)
+
+ pdata = flopy.modpath.LRCParticleData(
+ subdivisiondata=[FaceDataType()],
+ )
+ pg = ParticleGroupLRCTemplate(particlegroupname="PG1", particledata=pdata)
+ mp7_sim = get_mp7_sim(mf6_sim, [pg])
+ mp7_sim.write_input()
+ success, buff = mp7_sim.run_model()
+ assert success, pformat(buff)
+
+ gwf = mf6_sim.get_model()
+ grid = gwf.modelgrid
+ ep_file = EndpointFile(mf6_sim.sim_path / f"{mp7_sim.name}.mpend")
+ expected = ep_file.get_destination_endpoint_data(range(grid.nnodes))[
+ ["x0", "y0", "z0"]
+ ].tolist()
+ actual = list(pdata.to_coords(grid))
+ assert len(expected) == len(actual) == 54
+ assert np.allclose(expected, actual)
diff --git a/autotest/test_plot_cross_section.py b/autotest/test_plot_cross_section.py
index 2a4605f94..4340d3471 100644
--- a/autotest/test_plot_cross_section.py
+++ b/autotest/test_plot_cross_section.py
@@ -1,3 +1,4 @@
+import matplotlib.pyplot as plt
import numpy as np
import pytest
from matplotlib.collections import PatchCollection
@@ -181,3 +182,49 @@ def test_cross_section_invalid_line_representations_fail(line):
grid = structured_square_grid(side=10)
with pytest.raises(ValueError):
flopy.plot.PlotCrossSection(modelgrid=grid, line={"line": line})
+
+
+def test_plot_limits():
+ xymin, xymax = 0, 1000
+ cellsize = 50
+ nrow = (xymax - xymin) // cellsize
+ ncol = nrow
+ nlay = 1
+
+ delc = np.full((nrow,), cellsize)
+ delr = np.full((ncol,), cellsize)
+
+ top = np.full((nrow, ncol), 100)
+ botm = np.full((nlay, nrow, ncol), 0)
+ idomain = np.ones(botm.shape, dtype=int)
+
+ grid = flopy.discretization.StructuredGrid(
+ delc=delc, delr=delr, top=top, botm=botm, idomain=idomain
+ )
+
+ fig, ax = plt.subplots()
+ user_extent = 0, 500, 0, 25
+ ax.axis(user_extent)
+
+ pxc = flopy.plot.PlotCrossSection(
+ modelgrid=grid, ax=ax, line={"column": 4}
+ )
+ pxc.plot_grid()
+
+ lims = ax.axes.viewLim
+ if (lims.x0, lims.x1, lims.y0, lims.y1) != user_extent:
+ raise AssertionError("PlotMapView not checking for user scaling")
+
+ plt.close(fig)
+
+ fig, ax = plt.subplots(figsize=(8, 8))
+ pxc = flopy.plot.PlotCrossSection(
+ modelgrid=grid, ax=ax, line={"column": 4}
+ )
+ pxc.plot_grid()
+
+ lims = ax.axes.viewLim
+ if (lims.x0, lims.x1, lims.y0, lims.y1) != pxc.extent:
+ raise AssertionError("PlotMapView auto extent setting not working")
+
+ plt.close(fig)
diff --git a/autotest/test_plot_map_view.py b/autotest/test_plot_map_view.py
index ae4d2630e..2303d24ec 100644
--- a/autotest/test_plot_map_view.py
+++ b/autotest/test_plot_map_view.py
@@ -235,3 +235,45 @@ def test_map_view_contour_array_structured(function_tmpdir, ndim, rng):
# for ix, lev in enumerate(contours.levels):
# if not np.allclose(lev, levels[ix]):
# raise AssertionError("TriContour NaN catch Failed")
+
+
+def test_plot_limits():
+ xymin, xymax = 0, 1000
+ cellsize = 50
+ nrow = (xymax - xymin) // cellsize
+ ncol = nrow
+ nlay = 1
+
+ delc = np.full((nrow,), cellsize)
+ delr = np.full((ncol,), cellsize)
+
+ top = np.full((nrow, ncol), 100)
+ botm = np.full((nlay, nrow, ncol), 0)
+ idomain = np.ones(botm.shape, dtype=int)
+
+ grid = flopy.discretization.StructuredGrid(
+ delc=delc, delr=delr, top=top, botm=botm, idomain=idomain
+ )
+
+ fig, ax = plt.subplots()
+ user_extent = 0, 300, 0, 100
+ ax.axis(user_extent)
+
+ pmv = flopy.plot.PlotMapView(modelgrid=grid, ax=ax)
+ pmv.plot_grid()
+
+ lims = ax.axes.viewLim
+ if (lims.x0, lims.x1, lims.y0, lims.y1) != user_extent:
+ raise AssertionError("PlotMapView not checking for user scaling")
+
+ plt.close(fig)
+
+ fig, ax = plt.subplots(figsize=(8, 8))
+ pmv = flopy.plot.PlotMapView(modelgrid=grid, ax=ax)
+ pmv.plot_grid()
+
+ lims = ax.axes.viewLim
+ if (lims.x0, lims.x1, lims.y0, lims.y1) != pmv.extent:
+ raise AssertionError("PlotMapView auto extent setting not working")
+
+ plt.close(fig)
diff --git a/autotest/test_plot_particle_tracks.py b/autotest/test_plot_particle_tracks.py
index 2a6ba088a..8ba4342bf 100644
--- a/autotest/test_plot_particle_tracks.py
+++ b/autotest/test_plot_particle_tracks.py
@@ -4,12 +4,12 @@
import pandas as pd
import pytest
from matplotlib.collections import LineCollection, PathCollection
-from modflow_devtools.markers import requires_exe, requires_pkg
+from modflow_devtools.markers import requires_exe
from flopy.modflow import Modflow
from flopy.modpath import Modpath6, Modpath6Bas
from flopy.plot import PlotCrossSection, PlotMapView
-from flopy.utils import CellBudgetFile, EndpointFile, HeadFile, PathlineFile
+from flopy.utils import EndpointFile, PathlineFile
@pytest.fixture
@@ -58,7 +58,6 @@ def test_plot(pl):
mx.plot_grid()
mx.plot_bc("WEL", kper=2, color="blue")
pth = mx.plot_pathline(pl, colors="red")
- # plt.show()
assert isinstance(pth, LineCollection)
assert len(pth._paths) == 114
diff --git a/autotest/test_plotutil.py b/autotest/test_plotutil.py
index 66ca79a60..8aa228f8a 100644
--- a/autotest/test_plotutil.py
+++ b/autotest/test_plotutil.py
@@ -3,69 +3,15 @@
import pytest
from flopy.plot.plotutil import (
+ MP7_ENDPOINT_DTYPE,
+ MP7_PATHLINE_DTYPE,
+ PRT_PATHLINE_DTYPE,
to_mp7_endpoints,
to_mp7_pathlines,
to_prt_pathlines,
)
-# test PRT-MP7 pathline conversion functions
-# todo: define fields in a single location and reference from here
-# todo: support optional grid parameter to conversion functions
-
-
-prt_pl_cols = []
-
-
-mp7_pl_cols = [
- "particleid",
- "particlegroup",
- "sequencenumber",
- "particleidloc",
- "time",
- "xloc",
- "yloc",
- "zloc",
- "x",
- "y",
- "z",
- "node",
- "k",
- "stressperiod",
- "timestep",
-]
-
-
-mp7_ep_cols = [
- "particleid",
- "particlegroup",
- "particleidloc",
- "time",
- "time0",
- "xloc",
- "xloc0",
- "yloc",
- "yloc0",
- "zloc",
- "zloc0",
- "x0",
- "y0",
- "z0",
- "x",
- "y",
- "z",
- "node",
- "node0",
- "k",
- "k0",
- "zone",
- "zone0",
- "initialcellface",
- "cellface",
- "status",
-]
-
-
-pls = pd.DataFrame.from_records(
+PRT_TEST_PATHLINES = pd.DataFrame.from_records(
[
[
1,
@@ -229,83 +175,283 @@
0.5,
"PRP000000001",
],
+ [
+ 1, # kper
+ 1, # kstp
+ 1, # imdl
+ 1, # iprp
+ 1, # irpt
+ 1, # ilay
+ 100, # icell
+ 0, # izone
+ 5, # istatus
+ 3, # ireason
+ 0.0, # trelease
+ 42.728752, # t
+ 9.888968, # x
+ 1.0, # y
+ 0.5, # z
+ "PRP000000001", # name
+ ],
+ ],
+ columns=PRT_PATHLINE_DTYPE.names,
+)
+MP7_TEST_PATHLINES = pd.DataFrame.from_records(
+ [
+ [
+ 1, # particleid
+ 1, # particlegroup
+ 1, # sequencenumber
+ 1, # particleidloc
+ 0.0, # time
+ 1.0, # x
+ 2.0, # y
+ 3.0, # z
+ 1, # k
+ 1, # node
+ 0.1, # xloc
+ 0.1, # yloc
+ 0.1, # zloc
+ 1, # stressperiod
+ 1, # timestep
+ ],
[
1,
1,
1,
1,
- 1,
- 1,
- 100,
- 0,
- 5,
- 3,
- 0.0,
- 42.728752,
- 9.888968,
- 1.0,
- 0.5,
- "PRP000000001",
+ 1.0, # time
+ 2.0, # x
+ 3.0, # y
+ 4.0, # z
+ 2, # k
+ 2, # node
+ 0.9, # xloc
+ 0.9, # yloc
+ 0.9, # zloc
+ 1, # stressperiod
+ 1, # timestep
],
],
- columns=[
- "kper",
- "kstp",
- "imdl",
- "iprp",
- "irpt",
- "ilay",
- "icell",
- "izone",
- "istatus",
- "ireason",
- "trelease",
- "t",
- "x",
- "y",
- "z",
- "name",
+ columns=MP7_PATHLINE_DTYPE.names,
+)
+MP7_TEST_ENDPOINTS = pd.DataFrame.from_records(
+ [
+ [
+ 1, # particleid
+ 1, # particlegroup
+ 1, # particleidloc
+ 2, # status (terminated at boundary face)
+ 0.0, # time0
+ 1.0, # time
+ 1, # node0
+ 1, # k0
+ 0.1, # xloc0
+ 0.1, # yloc0
+ 0.1, # zloc0
+ 0.0, # x0
+ 1.0, # y0
+ 2.0, # z0
+ 1, # zone0
+ 1, # initialcellface
+ 5, # node
+ 2, # k
+ 0.9, # xloc
+ 0.9, # yloc
+ 0.9, # zloc
+ 10.0, # x
+ 11.0, # y
+ 12.0, # z
+ 2, # zone
+ 2, # cellface
+ ],
+ [
+ 2, # particleid
+ 1, # particlegroup
+ 2, # particleidloc
+ 2, # status (terminated at boundary face)
+ 0.0, # time0
+ 2.0, # time
+ 1, # node0
+ 1, # k0
+ 0.1, # xloc0
+ 0.1, # yloc0
+ 0.1, # zloc0
+ 0.0, # x0
+ 1.0, # y0
+ 2.0, # z0
+ 1, # zone0
+ 1, # initialcellface
+ 5, # node
+ 2, # k
+ 0.9, # xloc
+ 0.9, # yloc
+ 0.9, # zloc
+ 10.0, # x
+ 11.0, # y
+ 12.0, # z
+ 2, # zone
+ 2, # cellface
+ ],
+ [
+ 3, # particleid
+ 1, # particlegroup
+ 3, # particleidloc
+ 2, # status (terminated at boundary face)
+ 0.0, # time0
+ 3.0, # time
+ 1, # node0
+ 1, # k0
+ 0.1, # xloc0
+ 0.1, # yloc0
+ 0.1, # zloc0
+ 0.0, # x0
+ 1.0, # y0
+ 2.0, # z0
+ 1, # zone0
+ 1, # initialcellface
+ 5, # node
+ 2, # k
+ 0.9, # xloc
+ 0.9, # yloc
+ 0.9, # zloc
+ 10.0, # x
+ 11.0, # y
+ 12.0, # z
+ 2, # zone
+ 2, # cellface
+ ],
],
+ columns=MP7_ENDPOINT_DTYPE.names,
)
@pytest.mark.parametrize("dataframe", [True, False])
def test_to_mp7_pathlines(dataframe):
- inp_pls = pls if dataframe else pls.to_records(index=False)
- mp7_pls = to_mp7_pathlines(inp_pls)
+ prt_pls = (
+ PRT_TEST_PATHLINES
+ if dataframe
+ else PRT_TEST_PATHLINES.to_records(index=False)
+ )
+ mp7_pls = to_mp7_pathlines(prt_pls)
assert (
- type(inp_pls)
+ type(prt_pls)
== type(mp7_pls)
== (pd.DataFrame if dataframe else np.recarray)
)
assert len(mp7_pls) == 10
assert set(
dict(mp7_pls.dtypes).keys() if dataframe else mp7_pls.dtype.names
- ) == set(mp7_pl_cols)
+ ) == set(MP7_PATHLINE_DTYPE.names)
+
+
+@pytest.mark.parametrize("dataframe", [True, False])
+def test_to_mp7_pathlines_empty(dataframe):
+ mp7_pls = to_mp7_pathlines(
+ pd.DataFrame.from_records([], columns=PRT_PATHLINE_DTYPE.names)
+ if dataframe
+ else np.recarray((0,), dtype=PRT_PATHLINE_DTYPE)
+ )
+ assert mp7_pls.empty if dataframe else mp7_pls.size == 0
+ if dataframe:
+ mp7_pls = mp7_pls.to_records(index=False)
+ assert mp7_pls.dtype == MP7_PATHLINE_DTYPE
+
+
+@pytest.mark.parametrize("dataframe", [True, False])
+def test_to_mp7_pathlines_noop(dataframe):
+ prt_pls = (
+ MP7_TEST_PATHLINES
+ if dataframe
+ else MP7_TEST_PATHLINES.to_records(index=False)
+ )
+ mp7_pls = to_mp7_pathlines(prt_pls)
+ assert (
+ type(prt_pls)
+ == type(mp7_pls)
+ == (pd.DataFrame if dataframe else np.recarray)
+ )
+ assert len(mp7_pls) == 2
+ assert set(
+ dict(mp7_pls.dtypes).keys() if dataframe else mp7_pls.dtype.names
+ ) == set(MP7_PATHLINE_DTYPE.names)
+ assert np.array_equal(
+ mp7_pls if dataframe else pd.DataFrame(mp7_pls), MP7_TEST_PATHLINES
+ )
@pytest.mark.parametrize("dataframe", [True, False])
def test_to_mp7_endpoints(dataframe):
- inp_pls = pls if dataframe else pls.to_records(index=False)
- mp7_eps = to_mp7_endpoints(inp_pls)
+ mp7_eps = to_mp7_endpoints(
+ PRT_TEST_PATHLINES
+ if dataframe
+ else PRT_TEST_PATHLINES.to_records(index=False)
+ )
assert len(mp7_eps) == 1
+ assert np.isclose(mp7_eps.time[0], PRT_TEST_PATHLINES.t.max())
assert set(
dict(mp7_eps.dtypes).keys() if dataframe else mp7_eps.dtype.names
- ) == set(mp7_ep_cols)
+ ) == set(MP7_ENDPOINT_DTYPE.names)
-def test_to_prt_pathlines_roundtrip():
- inp_pls = pls
- mp7_pls = to_mp7_pathlines(inp_pls)
+@pytest.mark.parametrize("dataframe", [True, False])
+def test_to_mp7_endpoints_empty(dataframe):
+ mp7_eps = to_mp7_endpoints(
+ pd.DataFrame.from_records([], columns=PRT_PATHLINE_DTYPE.names)
+ if dataframe
+ else np.recarray((0,), dtype=PRT_PATHLINE_DTYPE)
+ )
+ assert mp7_eps.empty if dataframe else mp7_eps.size == 0
+ if dataframe:
+ mp7_eps = mp7_eps.to_records(index=False)
+ assert mp7_eps.dtype == MP7_ENDPOINT_DTYPE
+
+
+@pytest.mark.parametrize("dataframe", [True, False])
+def test_to_mp7_endpoints_noop(dataframe):
+ """Test a recarray or dataframe which already contains MP7 endpoint data"""
+ mp7_eps = to_mp7_endpoints(
+ MP7_TEST_ENDPOINTS
+ if dataframe
+ else MP7_TEST_ENDPOINTS.to_records(index=False)
+ )
+ assert np.array_equal(
+ mp7_eps if dataframe else pd.DataFrame(mp7_eps), MP7_TEST_ENDPOINTS
+ )
+
+
+@pytest.mark.parametrize("dataframe", [True, False])
+def test_to_prt_pathlines_roundtrip(dataframe):
+ mp7_pls = to_mp7_pathlines(
+ PRT_TEST_PATHLINES
+ if dataframe
+ else PRT_TEST_PATHLINES.to_records(index=False)
+ )
prt_pls = to_prt_pathlines(mp7_pls)
- inp_pls.drop(
- ["imdl", "iprp", "irpt", "name", "istatus", "ireason"],
- axis=1,
- inplace=True,
+ if not dataframe:
+ prt_pls = pd.DataFrame(prt_pls)
+ assert np.allclose(
+ PRT_TEST_PATHLINES.drop(
+ ["imdl", "iprp", "irpt", "name", "istatus", "ireason"],
+ axis=1,
+ ),
+ prt_pls.drop(
+ ["imdl", "iprp", "irpt", "name", "istatus", "ireason"],
+ axis=1,
+ ),
)
- prt_pls.drop(
- ["imdl", "iprp", "irpt", "name", "istatus", "ireason"],
- axis=1,
- inplace=True,
+
+
+@pytest.mark.parametrize("dataframe", [True, False])
+def test_to_prt_pathlines_roundtrip_empty(dataframe):
+ mp7_pls = to_mp7_pathlines(
+ pd.DataFrame.from_records([], columns=PRT_PATHLINE_DTYPE.names)
+ if dataframe
+ else np.recarray((0,), dtype=PRT_PATHLINE_DTYPE)
)
- assert np.allclose(inp_pls, prt_pls)
+ prt_pls = to_prt_pathlines(mp7_pls)
+ assert mp7_pls.empty if dataframe else mp7_pls.size == 0
+ assert prt_pls.empty if dataframe else mp7_pls.size == 0
+ assert set(
+ dict(mp7_pls.dtypes).keys() if dataframe else mp7_pls.dtype.names
+ ) == set(MP7_PATHLINE_DTYPE.names)
diff --git a/autotest/test_postprocessing.py b/autotest/test_postprocessing.py
index fd49f0383..b3b6282c4 100644
--- a/autotest/test_postprocessing.py
+++ b/autotest/test_postprocessing.py
@@ -239,6 +239,148 @@ def test_get_structured_faceflows_freyberg(
# ), "get_faceflows quivers are not equal to specific discharge vectors"
+@pytest.mark.mf6
+@requires_exe("mf6")
+def test_get_structured_faceflows_idomain(
+ function_tmpdir,
+):
+ name = "gsffi"
+
+ Lx = 1000
+ Ly = 1000
+
+ ncol = 100
+ nrow = 100
+ nlay = 3
+ top = 60
+ botm = [40, 20, 0]
+
+ Qwell = -1000
+
+ # Simulation
+ sim = flopy.mf6.MFSimulation(
+ sim_name=name,
+ version="mf6",
+ exe_name="mf6",
+ sim_ws=function_tmpdir,
+ )
+
+ tdis = flopy.mf6.ModflowTdis(
+ simulation=sim,
+ time_units="DAYS",
+ nper=1,
+ perioddata=[(1, 1, 1)],
+ )
+
+ ims = flopy.mf6.ModflowIms(
+ simulation=sim,
+ inner_dvclose=1e-6,
+ )
+
+ # Groundwater flow model
+ gwf = flopy.mf6.ModflowGwf(
+ simulation=sim,
+ modelname=name,
+ save_flows=True,
+ )
+
+ idomain = np.ones((nlay, nrow, ncol))
+ for r in range(40, 60):
+ for c in range(40, 60):
+ idomain[1, r, c] = -1
+
+ dis = flopy.mf6.ModflowGwfdis(
+ model=gwf,
+ length_units="METERS",
+ nlay=nlay,
+ nrow=nrow,
+ ncol=ncol,
+ delr=Lx / ncol,
+ delc=Ly / nrow,
+ top=top,
+ botm=botm,
+ idomain=idomain,
+ )
+
+ npf = flopy.mf6.ModflowGwfnpf(
+ model=gwf,
+ icelltype=[0, 0, 0],
+ k=[10, 0.01, 10],
+ k33=[1, 0.001, 1],
+ )
+
+ well_list = [
+ [
+ (nlay - 1, nrow // 2, ncol // 2),
+ Qwell,
+ ]
+ ]
+ well_spd = {0: well_list}
+
+ wel = flopy.mf6.ModflowGwfwel(
+ model=gwf,
+ stress_period_data=well_spd,
+ )
+
+ chd_list = []
+ for r in range(nrow):
+ for c in range(ncol):
+ chd_list.append(
+ [
+ (0, r, c),
+ top,
+ ]
+ )
+ chd_spd = {0: chd_list}
+
+ chd = flopy.mf6.ModflowGwfchd(
+ model=gwf,
+ stress_period_data=chd_spd,
+ )
+
+ ic = flopy.mf6.ModflowGwfic(
+ model=gwf,
+ strt=top,
+ )
+
+ oc = flopy.mf6.ModflowGwfoc(
+ model=gwf,
+ budget_filerecord=f"{name}.cbc",
+ head_filerecord=f"{name}.hds",
+ saverecord=[("HEAD", "ALL"), ("BUDGET", "ALL")],
+ )
+
+ sim.write_simulation(silent=True)
+ success, _ = sim.run_simulation(silent=True)
+ assert success
+
+ cbb = gwf.output.budget() # get handle to binary budget file
+ Qja = cbb.get_data(text="FLOW-JA-FACE")[0]
+ cbc = flopy.mf6.utils.get_structured_faceflows(
+ Qja, f"{function_tmpdir}/{name}.dis.grb"
+ )
+ cbf = cbc[2]
+
+ cbf0 = cbf[0, :, :]
+ # Sum vertical cell-face flows for all cells in the top aquifer
+ Qv_sum = cbf0.sum()
+ idx = idomain[1, :, :] == -1
+ Qv_wind = cbf0[idx].sum() # Flow through aquitard window
+ Qv_aqui = cbf0[~idx].sum() # Flow across aquitard
+
+ print(f"Total flow across bottom of upper aquifer {Qv_sum:0.2f} m^3/d")
+ print(
+ f"Flow across bottom of upper aquifer to aquitard {Qv_aqui:0.2f} m^3/d"
+ )
+ print(
+ f"Flow across bottom of upper aquifer to lower aquifer {Qv_wind:0.2f} m^3/d"
+ )
+
+ print(np.isclose(-Qwell, Qv_sum, atol=1e-3))
+ assert np.isclose(-Qwell, Qv_sum, atol=1e-3)
+ assert Qv_wind > Qv_aqui
+
+
@pytest.mark.mf6
@requires_exe("mf6")
def test_flowja_residuals(function_tmpdir, mf6_freyberg_path):
diff --git a/autotest/test_seawat.py b/autotest/test_seawat.py
index 4337be778..53fb2c500 100644
--- a/autotest/test_seawat.py
+++ b/autotest/test_seawat.py
@@ -2,9 +2,9 @@
import numpy as np
import pytest
-from autotest.conftest import get_example_data_path
from modflow_devtools.markers import requires_exe
+from autotest.conftest import get_example_data_path
from flopy.modflow import (
Modflow,
ModflowBas,
diff --git a/autotest/test_sfr.py b/autotest/test_sfr.py
index 42630e188..34a35ddc8 100644
--- a/autotest/test_sfr.py
+++ b/autotest/test_sfr.py
@@ -8,9 +8,9 @@
import matplotlib.pyplot as plt
import numpy as np
import pytest
-from autotest.conftest import get_example_data_path, get_project_root_path
from modflow_devtools.markers import requires_exe, requires_pkg
+from autotest.conftest import get_example_data_path, get_project_root_path
from flopy.discretization import StructuredGrid
from flopy.modflow import Modflow, ModflowDis, ModflowSfr2, ModflowStr
from flopy.modflow.mfsfr2 import check
diff --git a/autotest/test_specific_discharge.py b/autotest/test_specific_discharge.py
index 3ffe4c85e..8a9703059 100644
--- a/autotest/test_specific_discharge.py
+++ b/autotest/test_specific_discharge.py
@@ -205,7 +205,7 @@ def mf6_model(function_tmpdir):
gwf = ModflowGwf(
sim,
modelname="mf6",
- model_nam_file=f"mf6.nam",
+ model_nam_file="mf6.nam",
)
gwf.name_file.save_flows = True
@@ -319,7 +319,7 @@ def basic_check(Qx_ext, Qy_ext, Qz_ext):
def local_balance_check(Qx_ext, Qy_ext, Qz_ext, hdsfile=None, model=None):
- # calculate water blance at every cell
+ # calculate water balance at every cell
local_balance = (
Qx_ext[:, :, :-1]
- Qx_ext[:, :, 1:]
diff --git a/autotest/test_usg.py b/autotest/test_usg.py
index cde831e80..969ca6041 100644
--- a/autotest/test_usg.py
+++ b/autotest/test_usg.py
@@ -3,10 +3,10 @@
import numpy as np
import pytest
-from autotest.conftest import get_example_data_path
from flaky import flaky
from modflow_devtools.markers import requires_exe
+from autotest.conftest import get_example_data_path
from flopy.mfusg import MfUsg, MfUsgDisU, MfUsgLpf, MfUsgSms, MfUsgWel
from flopy.modflow import (
ModflowBas,
diff --git a/autotest/test_util_geometry.py b/autotest/test_util_geometry.py
index 2c70c730f..053ef2f63 100644
--- a/autotest/test_util_geometry.py
+++ b/autotest/test_util_geometry.py
@@ -1,7 +1,7 @@
import numpy as np
import pytest
-from autotest.test_grid_cases import GridCases
+from autotest.test_grid_cases import GridCases
from flopy.utils.geometry import is_clockwise, point_in_polygon
@@ -46,7 +46,7 @@ def test_point_in_polygon_interior():
ypts = grid.ycellcenters
mask = point_in_polygon(xpts, ypts, cell)
assert mask.sum() == 1
- assert mask[0, 0] == True
+ assert mask[0, 0]
debug_plot(grid, cell, xpts, ypts, mask)
diff --git a/autotest/test_uzf.py b/autotest/test_uzf.py
index 9a8f3ca17..b95a852bb 100644
--- a/autotest/test_uzf.py
+++ b/autotest/test_uzf.py
@@ -369,8 +369,8 @@ def test_load_write_sfr_option_block(function_tmpdir, options_path):
ext_unit_dict={},
)
- assert sfr3.options.strhc1kh == False
- assert sfr3.options.strhc1kv == False
+ assert sfr3.options.strhc1kh is False
+ assert sfr3.options.strhc1kv is False
def test_load_write_sfr_option_line(function_tmpdir, options_path):
@@ -658,3 +658,18 @@ def test_uzf_negative_iuzfopt(function_tmpdir):
assert (
np.max(extpd) == np.min(extpd) and np.max(extpd) != 0.2
), "Read error for iuzfopt less than 0"
+
+
+def test_optionsblock_auxillary_typo():
+ # Incorrect: auxillary
+ # Correct: auxiliary
+ options = OptionBlock("", ModflowWel, block=True)
+ assert options.auxiliary == []
+ with pytest.deprecated_call():
+ assert options.auxillary == []
+ with pytest.deprecated_call():
+ options.auxillary = ["aux", "iface"]
+ assert options.auxiliary == ["aux", "iface"]
+ options.auxiliary = []
+ with pytest.deprecated_call():
+ assert options.auxillary == []
diff --git a/code.json b/code.json
index 3bc8db38e..89e967b7f 100644
--- a/code.json
+++ b/code.json
@@ -29,9 +29,9 @@
"downloadURL": "https://code.usgs.gov/usgs/modflow/flopy/archive/master.zip",
"vcs": "git",
"laborHours": -1,
- "version": "3.6.0",
+ "version": "3.7.0",
"date": {
- "metadataLastUpdated": "2024-02-08"
+ "metadataLastUpdated": "2024-05-23"
},
"organization": "U.S. Geological Survey",
"permissions": {
diff --git a/docs/PyPI_release.md b/docs/PyPI_release.md
index 11728b9a7..0c8acdce5 100644
--- a/docs/PyPI_release.md
+++ b/docs/PyPI_release.md
@@ -30,7 +30,7 @@ How to Cite
*Software/Code citation for FloPy:*
-[Bakker, Mark, Post, Vincent, Hughes, J. D., Langevin, C. D., White, J. T., Leaf, A. T., Paulinski, S. R., Bellino, J. C., Morway, E. D., Toews, M. W., Larsen, J. D., Fienen, M. N., Starn, J. J., Brakenhoff, D. A., and Bonelli, W. P., 2024, FloPy v3.6.0: U.S. Geological Survey Software Release, 08 February 2024, https://doi.org/10.5066/F7BK19FH](https://doi.org/10.5066/F7BK19FH)
+[Bakker, Mark, Post, Vincent, Hughes, J. D., Langevin, C. D., White, J. T., Leaf, A. T., Paulinski, S. R., Bellino, J. C., Morway, E. D., Toews, M. W., Larsen, J. D., Fienen, M. N., Starn, J. J., Brakenhoff, D. A., and Bonelli, W. P., 2024, FloPy v3.7.0: U.S. Geological Survey Software Release, 23 May 2024, https://doi.org/10.5066/F7BK19FH](https://doi.org/10.5066/F7BK19FH)
Disclaimer
diff --git a/docs/make_release.md b/docs/make_release.md
index 0da0f1703..d65c7619f 100644
--- a/docs/make_release.md
+++ b/docs/make_release.md
@@ -98,9 +98,7 @@ As described above, making a release manually involves the following steps:
- Update MODFLOW 6 dfn files in the repository and MODFLOW 6 package classes by running `python -m flopy.mf6.utils.generate_classes --ref master --no-backup`
-- Run `isort` and `black` on the `flopy` module. This can be achieved by running `python scripts/pull_request_prepare.py` from the project root. The commands `isort .` and `black .` can also be run individually instead.
-
-- Use `run_notebooks.py` in the `scripts` directory to rerun all notebooks in `.docs/Notebooks`.
+- Run `ruff check .` and `ruff format .` from the project root.
- Generate a changelog starting from the last release with [git cliff](https://github.com/orhun/git-cliff), for instance: `git cliff --config cliff.toml --unreleased --tag=`.
@@ -121,7 +119,7 @@ As described above, making a release manually involves the following steps:
2. Set the development version as appropriate: `python scripts/update_version.py -v `. The version number must comply with [PEP 440](https://peps.python.org/pep-0440/).
-3. Lint Python files: `python scripts/pull_request_prepare.py`
+3. Lint and format Python files: `ruff check .` and `ruff format .` from the project root.
4. Commit and push the updated `develop` branch.
diff --git a/etc/environment.yml b/etc/environment.yml
index 58bc7e816..c16a75b5b 100644
--- a/etc/environment.yml
+++ b/etc/environment.yml
@@ -10,11 +10,8 @@ dependencies:
- matplotlib>=1.4.0
# lint
- - black
- cffconvert
- - flake8
- - isort
- - pylint
+ - ruff
# test
- coverage
@@ -22,12 +19,14 @@ dependencies:
- filelock
- jupyter
- jupytext
- - modflow-devtools
- - pytest
+ - pip:
+ - git+https://github.com/MODFLOW-USGS/modflow-devtools.git
+ - pytest!=8.1.0
- pytest-benchmark
- pytest-cov
- pytest-dotenv
- pytest-xdist
+ - syrupy
- virtualenv
# optional
diff --git a/examples/data/freyberg_usg/freyberg.usg.gsf.with_comment b/examples/data/freyberg_usg/freyberg.usg.gsf.with_comment
new file mode 100644
index 000000000..896bc4330
--- /dev/null
+++ b/examples/data/freyberg_usg/freyberg.usg.gsf.with_comment
@@ -0,0 +1,11521 @@
+# a comment line ala Algomesh
+UNSTRUCTURED
+ 4497 3 1 1
+ 7020
+ 619741.400 3373170.900 145.7012
+ 619991.400 3373170.900 145.6833
+ 620241.400 3373170.900 145.6277
+ 620491.400 3373170.900 145.5336
+ 620741.400 3373170.900 145.4159
+ 620991.400 3373170.900 145.2850
+ 621241.400 3373170.900 145.1304
+ 621491.400 3373170.900 144.9718
+ 621741.400 3373170.900 144.8101
+ 621991.400 3373170.900 144.6328
+ 622241.400 3373170.900 144.4576
+ 622491.400 3373170.900 144.2869
+ 622741.400 3373170.900 81.61441
+ 622991.400 3373170.900 18.93144
+ 623241.400 3373170.900 18.73693
+ 623491.400 3373170.900 18.52233
+ 623616.400 3373170.900 18.40686
+ 623678.900 3373170.900 51731.74
+ 623741.400 3373170.900 103445.1
+ 623866.400 3373170.900 206871.7
+ 623991.400 3373170.900 103445.1
+ 624241.400 3373170.900 104431.8
+ 624491.400 3373170.900 104431.8
+ 624741.400 3373170.900 37.11279
+ 623616.400 3373108.400 27.61029
+ 623678.900 3373108.400 25884.29
+ 623741.400 3373108.400 51740.98
+ 623491.400 3373045.900 37.04465
+ 623616.400 3373045.900 36.81372
+ 623678.900 3373045.900 36.85153
+ 623741.400 3373045.900 36.88934
+ 623866.400 3373045.900 36.96497
+ 623991.400 3373045.900 37.00217
+ 623616.400 3372983.400 36.81169
+ 623678.900 3372983.400 36.84941
+ 623741.400 3372983.400 36.88713
+ 619741.400 3372920.900 41.40997
+ 619991.400 3372920.900 41.37215
+ 620241.400 3372920.900 41.25917
+ 620491.400 3372920.900 41.06965
+ 620741.400 3372920.900 40.83479
+ 620991.400 3372920.900 40.57387
+ 621241.400 3372920.900 40.26335
+ 621491.400 3372920.900 39.94088
+ 621741.400 3372920.900 39.61415
+ 621991.400 3372920.900 39.25680
+ 622241.400 3372920.900 38.90248
+ 622491.400 3372920.900 38.56245
+ 622741.400 3372920.900 38.21888
+ 622991.400 3372920.900 37.85370
+ 623241.400 3372920.900 37.46815
+ 623491.400 3372920.900 37.04128
+ 623616.400 3372920.900 36.80966
+ 623678.900 3372920.900 36.84729
+ 623741.400 3372920.900 36.88491
+ 623866.400 3372920.900 36.96017
+ 623991.400 3372920.900 36.99766
+ 624241.400 3372920.900 37.05902
+ 624491.400 3372920.900 37.09561
+ 624741.400 3372920.900 37.10833
+ 623616.400 3372858.400 36.80763
+ 623678.900 3372858.400 36.84517
+ 623741.400 3372858.400 36.88270
+ 623491.400 3372795.900 37.03790
+ 623616.400 3372795.900 36.80560
+ 623678.900 3372795.900 36.84304
+ 623741.400 3372795.900 36.88049
+ 623866.400 3372795.900 36.95537
+ 623991.400 3372795.900 36.99314
+ 623616.400 3372733.400 36.80237
+ 623678.900 3372733.400 36.83963
+ 623741.400 3372733.400 36.87688
+ 619741.400 3372670.900 41.42999
+ 619991.400 3372670.900 41.39122
+ 620241.400 3372670.900 41.27491
+ 620491.400 3372670.900 41.08027
+ 620741.400 3372670.900 40.84487
+ 620991.400 3372670.900 40.58252
+ 621241.400 3372670.900 40.26417
+ 621491.400 3372670.900 39.93151
+ 621741.400 3372670.900 39.59498
+ 621991.400 3372670.900 39.23162
+ 622241.400 3372670.900 38.87133
+ 622491.400 3372670.900 38.52953
+ 622741.400 3372670.900 38.18821
+ 622991.400 3372670.900 37.82729
+ 623241.400 3372670.900 37.45190
+ 623491.400 3372670.900 37.03096
+ 623616.400 3372670.900 36.79914
+ 623678.900 3372670.900 36.83621
+ 623741.400 3372670.900 36.87328
+ 623866.400 3372670.900 36.94741
+ 623991.400 3372670.900 36.98462
+ 624241.400 3372670.900 37.04581
+ 624491.400 3372670.900 37.08234
+ 624741.400 3372670.900 37.09489
+ 623616.400 3372608.400 36.79591
+ 623678.900 3372608.400 36.83279
+ 623741.400 3372608.400 36.86967
+ 623491.400 3372545.900 37.02402
+ 623616.400 3372545.900 36.79268
+ 623678.900 3372545.900 36.82937
+ 623741.400 3372545.900 36.86607
+ 623866.400 3372545.900 36.93945
+ 623991.400 3372545.900 36.97610
+ 623616.400 3372483.400 36.78864
+ 623678.900 3372483.400 36.82513
+ 623741.400 3372483.400 36.86163
+ 619741.400 3372420.900 41.46313
+ 619991.400 3372420.900 41.42532
+ 620241.400 3372420.900 41.30742
+ 620491.400 3372420.900 41.10694
+ 620741.400 3372420.900 40.86389
+ 620991.400 3372420.900 40.59344
+ 621241.400 3372420.900 40.26221
+ 621491.400 3372420.900 39.91306
+ 621741.400 3372420.900 39.56493
+ 621991.400 3372420.900 39.18790
+ 622241.400 3372420.900 38.81541
+ 622491.400 3372420.900 38.47320
+ 622741.400 3372420.900 38.13692
+ 622991.400 3372420.900 37.78656
+ 623241.400 3372420.900 37.42271
+ 623491.400 3372420.900 37.01092
+ 623616.400 3372420.900 36.78461
+ 623678.900 3372420.900 36.82090
+ 623741.400 3372420.900 36.85719
+ 623866.400 3372420.900 36.92976
+ 623991.400 3372420.900 36.96483
+ 624241.400 3372420.900 37.02360
+ 624491.400 3372420.900 37.05954
+ 624741.400 3372420.900 37.07177
+ 623616.400 3372358.400 36.78057
+ 623678.900 3372358.400 36.81666
+ 623741.400 3372358.400 36.85275
+ 623491.400 3372295.900 36.99782
+ 623616.400 3372295.900 36.77654
+ 623678.900 3372295.900 36.81242
+ 623741.400 3372295.900 36.84830
+ 623866.400 3372295.900 36.92007
+ 623991.400 3372295.900 36.95356
+ 623616.400 3372233.400 36.77076
+ 623678.900 3372233.400 36.80573
+ 623741.400 3372233.400 36.84071
+ 619741.400 3372170.900 41.51309
+ 619991.400 3372170.900 41.47330
+ 620241.400 3372170.900 41.35221
+ 620491.400 3372170.900 41.15008
+ 620741.400 3372170.900 40.89734
+ 620991.400 3372170.900 40.60650
+ 621241.400 3372170.900 40.25766
+ 621491.400 3372170.900 39.89431
+ 621741.400 3372170.900 39.52114
+ 621991.400 3372170.900 39.11700
+ 622241.400 3372170.900 38.73747
+ 622491.400 3372170.900 38.40077
+ 622741.400 3372170.900 38.07238
+ 622991.400 3372170.900 37.73398
+ 623241.400 3372170.900 37.37999
+ 623491.400 3372170.900 36.98129
+ 623616.400 3372170.900 36.76498
+ 623678.900 3372170.900 36.79904
+ 623741.400 3372170.900 36.83311
+ 623866.400 3372170.900 36.90125
+ 623991.400 3372170.900 36.93491
+ 624241.400 3372170.900 36.99145
+ 624491.400 3372170.900 37.02624
+ 624741.400 3372170.900 37.03815
+ 623616.400 3372108.400 36.75919
+ 623678.900 3372108.400 36.79235
+ 623741.400 3372108.400 36.82551
+ 623491.400 3372045.900 36.96476
+ 623616.400 3372045.900 36.75341
+ 623678.900 3372045.900 36.78566
+ 623741.400 3372045.900 36.81792
+ 623866.400 3372045.900 36.88242
+ 623991.400 3372045.900 36.91625
+ 623616.400 3371983.400 36.74402
+ 623678.900 3371983.400 36.77578
+ 623741.400 3371983.400 36.80753
+ 619741.400 3371920.900 41.57386
+ 619991.400 3371920.900 41.53532
+ 620241.400 3371920.900 41.41300
+ 620491.400 3371920.900 41.20740
+ 620741.400 3371920.900 40.94358
+ 620991.400 3371920.900 40.62772
+ 621241.400 3371920.900 40.25702
+ 621491.400 3371920.900 39.86302
+ 621741.400 3371920.900 39.45404
+ 621991.400 3371920.900 39.03312
+ 622241.400 3371920.900 38.64526
+ 622491.400 3371920.900 38.31112
+ 622741.400 3371920.900 37.99491
+ 622991.400 3371920.900 37.66809
+ 623241.400 3371920.900 37.32624
+ 623491.400 3371920.900 36.94252
+ 623616.400 3371920.900 36.73463
+ 623678.900 3371920.900 36.76589
+ 623741.400 3371920.900 36.79714
+ 623866.400 3371920.900 36.85966
+ 623991.400 3371920.900 36.89172
+ 624241.400 3371920.900 36.94709
+ 624491.400 3371920.900 36.98278
+ 624741.400 3371920.900 36.99516
+ 623616.400 3371858.400 36.72524
+ 623678.900 3371858.400 36.75600
+ 623741.400 3371858.400 36.78676
+ 623491.400 3371795.900 36.92029
+ 623616.400 3371795.900 36.71585
+ 623678.900 3371795.900 36.74611
+ 623741.400 3371795.900 36.77637
+ 623866.400 3371795.900 36.83689
+ 623991.400 3371795.900 36.86719
+ 623616.400 3371733.400 36.70379
+ 623678.900 3371733.400 36.73329
+ 623741.400 3371733.400 36.76280
+ 619741.400 3371670.900 41.64447
+ 619991.400 3371670.900 41.60873
+ 620241.400 3371670.900 41.49374
+ 620491.400 3371670.900 41.28640
+ 620741.400 3371670.900 41.00404
+ 620991.400 3371670.900 40.65430
+ 621241.400 3371670.900 40.25104
+ 621491.400 3371670.900 39.80391
+ 621741.400 3371670.900 39.35122
+ 621991.400 3371670.900 38.92010
+ 622241.400 3371670.900 38.52485
+ 622491.400 3371670.900 38.20036
+ 622741.400 3371670.900 37.89978
+ 622991.400 3371670.900 37.58685
+ 623241.400 3371670.900 37.25916
+ 623491.400 3371670.900 36.89127
+ 623616.400 3371670.900 36.69173
+ 623678.900 3371670.900 36.72047
+ 623741.400 3371670.900 36.74923
+ 623866.400 3371670.900 36.80673
+ 623991.400 3371670.900 36.83672
+ 624241.400 3371670.900 36.89104
+ 624491.400 3371670.900 36.92899
+ 624741.400 3371670.900 36.94261
+ 623616.400 3371608.400 36.67966
+ 623678.900 3371608.400 36.70766
+ 623741.400 3371608.400 36.73566
+ 623491.400 3371545.900 36.86226
+ 623616.400 3371545.900 36.66760
+ 623678.900 3371545.900 36.69484
+ 623741.400 3371545.900 36.72208
+ 623866.400 3371545.900 36.77657
+ 623991.400 3371545.900 36.80625
+ 623616.400 3371483.400 36.65213
+ 623678.900 3371483.400 36.67761
+ 623741.400 3371483.400 36.70309
+ 619741.400 3371420.900 41.74498
+ 619991.400 3371420.900 41.70860
+ 620241.400 3371420.900 41.60336
+ 620491.400 3371420.900 41.40850
+ 620741.400 3371420.900 41.09499
+ 620991.400 3371420.900 40.68279
+ 621241.400 3371420.900 40.22522
+ 621491.400 3371420.900 39.70788
+ 621741.400 3371420.900 39.19129
+ 621991.400 3371420.900 38.74755
+ 622241.400 3371420.900 38.37401
+ 622491.400 3371420.900 38.07304
+ 622741.400 3371420.900 37.78854
+ 622991.400 3371420.900 37.48923
+ 623241.400 3371420.900 37.17512
+ 623491.400 3371420.900 36.82575
+ 623616.400 3371420.900 36.63667
+ 623678.900 3371420.900 36.66038
+ 623741.400 3371420.900 36.68409
+ 623866.400 3371420.900 36.73151
+ 623991.400 3371420.900 36.76406
+ 624241.400 3371420.900 36.82338
+ 624491.400 3371420.900 36.86641
+ 624741.400 3371420.900 36.88267
+ 623616.400 3371358.400 36.62120
+ 623678.900 3371358.400 36.64315
+ 623741.400 3371358.400 36.66509
+ 623491.400 3371295.900 36.78925
+ 623616.400 3371295.900 36.60574
+ 623678.900 3371295.900 36.62592
+ 623741.400 3371295.900 36.64609
+ 623866.400 3371295.900 36.68644
+ 623991.400 3371295.900 36.72187
+ 623616.400 3371233.400 36.58494
+ 623678.900 3371233.400 36.60138
+ 623741.400 3371233.400 36.61782
+ 619741.400 3371170.900 41.86501
+ 619991.400 3371170.900 41.83358
+ 620241.400 3371170.900 41.75099
+ 620491.400 3371170.900 41.62193
+ 620741.400 3371170.900 -231.4914
+ 620991.400 3371170.900 -504.6455
+ 621241.400 3371170.900 -504.8905
+ 621491.400 3371170.900 -232.9443
+ 621741.400 3371170.900 38.90502
+ 621991.400 3371170.900 38.50877
+ 622241.400 3371170.900 38.19754
+ 622491.400 3371170.900 37.92876
+ 622741.400 3371170.900 37.66025
+ 622991.400 3371170.900 37.37538
+ 623241.400 3371170.900 37.07647
+ 623491.400 3371170.900 36.74431
+ 623616.400 3371170.900 36.56413
+ 623678.900 3371170.900 36.57685
+ 623741.400 3371170.900 36.58956
+ 623866.400 3371170.900 36.61499
+ 623991.400 3371170.900 36.66027
+ 624241.400 3371170.900 36.74256
+ 624491.400 3371170.900 36.80008
+ 624741.400 3371170.900 36.82060
+ 623616.400 3371108.400 36.54333
+ 623678.900 3371108.400 36.55231
+ 623741.400 3371108.400 36.56130
+ 623491.400 3371045.900 36.69938
+ 623616.400 3371045.900 36.52253
+ 623678.900 3371045.900 36.52778
+ 623741.400 3371045.900 36.53304
+ 623866.400 3371045.900 36.54354
+ 623991.400 3371045.900 36.59866
+ 623616.400 3370983.400 36.49778
+ 623678.900 3370983.400 36.49093
+ 623741.400 3370983.400 36.48408
+ 619741.400 3370920.900 41.98124
+ 619991.400 3370920.900 41.95790
+ 620241.400 3370920.900 41.90726
+ 620491.400 3370920.900 41.85276
+ 620741.400 3370920.900 -504.0822
+ 620991.400 3370920.900 -1049.990
+ 621241.400 3370920.900 -1049.990
+ 621491.400 3370920.900 -777.7626
+ 621741.400 3370920.900 -233.5979
+ 621991.400 3370920.900 38.22767
+ 622241.400 3370920.900 38.00327
+ 622491.400 3370920.900 37.77077
+ 622741.400 3370920.900 37.51904
+ 622991.400 3370920.900 37.24588
+ 623241.400 3370920.900 36.96375
+ 623491.400 3370920.900 36.64793
+ 623616.400 3370920.900 36.47303
+ 623678.900 3370920.900 36.45407
+ 623741.400 3370920.900 36.43512
+ 623803.900 3370920.900 36.41617
+ 623866.400 3370920.900 36.39722
+ 623928.900 3370920.900 36.44816
+ 623991.400 3370920.900 36.49911
+ 624116.400 3370920.900 36.60100
+ 624241.400 3370920.900 36.65810
+ 624491.400 3370920.900 36.74071
+ 624741.400 3370920.900 36.76624
+ 623616.400 3370858.400 36.44828
+ 623678.900 3370858.400 36.41722
+ 623741.400 3370858.400 36.38617
+ 623803.900 3370858.400 36.35511
+ 623835.150 3370858.400 36.33958
+ 623866.400 3370858.400 36.32405
+ 623897.650 3370858.400 36.35537
+ 623928.900 3370858.400 36.38669
+ 623991.400 3370858.400 36.44933
+ 623803.900 3370827.150 36.32458
+ 623835.150 3370827.150 36.30603
+ 623866.400 3370827.150 36.28747
+ 623897.650 3370827.150 36.32171
+ 623928.900 3370827.150 36.35595
+ 623491.400 3370795.900 36.59649
+ 623616.400 3370795.900 36.42353
+ 623678.900 3370795.900 36.38037
+ 623741.400 3370795.900 36.33721
+ 623803.900 3370795.900 36.29405
+ 623835.150 3370795.900 36.27247
+ 623866.400 3370795.900 36.25089
+ 623897.650 3370795.900 36.28806
+ 623928.900 3370795.900 36.32522
+ 623991.400 3370795.900 36.39955
+ 624116.400 3370795.900 36.54821
+ 624241.400 3370795.900 36.61752
+ 623803.900 3370764.650 36.31374
+ 623835.150 3370764.650 36.29540
+ 623866.400 3370764.650 36.27707
+ 623897.650 3370764.650 36.31153
+ 623928.900 3370764.650 36.34598
+ 623616.400 3370733.400 36.42393
+ 623678.900 3370733.400 36.39376
+ 623741.400 3370733.400 36.36359
+ 623803.900 3370733.400 36.33342
+ 623835.150 3370733.400 36.31834
+ 623866.400 3370733.400 36.30325
+ 623897.650 3370733.400 36.33500
+ 623928.900 3370733.400 36.36674
+ 623991.400 3370733.400 36.43024
+ 619741.400 3370670.900 42.07608
+ 619991.400 3370670.900 42.06009
+ 620241.400 3370670.900 42.03029
+ 620491.400 3370670.900 42.00392
+ 620741.400 3370670.900 -503.9993
+ 620991.400 3370670.900 -1049.990
+ 621241.400 3370670.900 -1049.990
+ 621491.400 3370670.900 -1049.990
+ 621741.400 3370670.900 -505.9740
+ 621991.400 3370670.900 37.97384
+ 622241.400 3370670.900 37.81371
+ 622491.400 3370670.900 37.61304
+ 622741.400 3370670.900 37.37298
+ 622991.400 3370670.900 37.09650
+ 623116.400 3370670.900 36.95142
+ 623241.400 3370670.900 36.83696
+ 623491.400 3370670.900 36.57341
+ 623616.400 3370670.900 36.42432
+ 623678.900 3370670.900 36.40714
+ 623741.400 3370670.900 36.38997
+ 623803.900 3370670.900 36.37279
+ 623866.400 3370670.900 36.35561
+ 623928.900 3370670.900 36.40827
+ 623991.400 3370670.900 36.46092
+ 624116.400 3370670.900 36.56623
+ 624241.400 3370670.900 36.62444
+ 624491.400 3370670.900 36.70855
+ 624741.400 3370670.900 36.73444
+ 623616.400 3370608.400 36.42471
+ 623678.900 3370608.400 36.42053
+ 623741.400 3370608.400 36.41634
+ 622991.400 3370545.900 37.01597
+ 623116.400 3370545.900 36.86620
+ 623241.400 3370545.900 36.77089
+ 623491.400 3370545.900 36.55034
+ 623616.400 3370545.900 36.42511
+ 623678.900 3370545.900 36.43392
+ 623741.400 3370545.900 36.44273
+ 623866.400 3370545.900 36.46034
+ 623991.400 3370545.900 36.52229
+ 623616.400 3370483.400 36.42444
+ 623678.900 3370483.400 36.43786
+ 623741.400 3370483.400 36.45128
+ 619741.400 3370420.900 42.12753
+ 619991.400 3370420.900 42.11935
+ 620241.400 3370420.900 42.10287
+ 620491.400 3370420.900 42.08947
+ 620741.400 3370420.900 -503.9528
+ 620991.400 3370420.900 -1049.990
+ 621241.400 3370420.900 -1049.990
+ 621491.400 3370420.900 -1049.990
+ 621741.400 3370420.900 -506.0809
+ 621991.400 3370420.900 37.77913
+ 622241.400 3370420.900 37.65294
+ 622491.400 3370420.900 37.47448
+ 622741.400 3370420.900 37.23260
+ 622866.400 3370420.900 37.09211
+ 622991.400 3370420.900 36.90323
+ 623053.900 3370420.900 36.80879
+ 623116.400 3370420.900 36.71435
+ 623178.900 3370420.900 36.69324
+ 623241.400 3370420.900 36.67214
+ 623366.400 3370420.900 36.62993
+ 623491.400 3370420.900 36.52685
+ 623616.400 3370420.900 36.42377
+ 623678.900 3370420.900 36.44181
+ 623741.400 3370420.900 36.45984
+ 623866.400 3370420.900 36.49590
+ 623991.400 3370420.900 36.54873
+ 624241.400 3370420.900 36.64225
+ 624491.400 3370420.900 36.70403
+ 624741.400 3370420.900 36.72512
+ 622991.400 3370358.400 36.84686
+ 623053.900 3370358.400 36.74264
+ 623085.150 3370358.400 36.69053
+ 623116.400 3370358.400 36.63842
+ 623147.650 3370358.400 36.63451
+ 623178.900 3370358.400 36.63060
+ 623241.400 3370358.400 36.62277
+ 623616.400 3370358.400 36.42311
+ 623678.900 3370358.400 36.44575
+ 623741.400 3370358.400 36.46839
+ 623053.900 3370327.150 36.70957
+ 623085.150 3370327.150 36.65501
+ 623116.400 3370327.150 36.60046
+ 623147.650 3370327.150 36.59987
+ 623178.900 3370327.150 36.59927
+ 622741.400 3370295.900 37.16576
+ 622866.400 3370295.900 37.01848
+ 622991.400 3370295.900 36.79049
+ 623053.900 3370295.900 36.67649
+ 623085.150 3370295.900 36.61950
+ 623116.400 3370295.900 36.56250
+ 623147.650 3370295.900 36.56522
+ 623178.900 3370295.900 36.56795
+ 623241.400 3370295.900 36.57339
+ 623366.400 3370295.900 36.58429
+ 623491.400 3370295.900 36.50336
+ 623616.400 3370295.900 36.42244
+ 623678.900 3370295.900 36.44970
+ 623741.400 3370295.900 36.47695
+ 623866.400 3370295.900 36.53146
+ 623991.400 3370295.900 36.57516
+ 623053.900 3370264.650 36.69584
+ 623085.150 3370264.650 36.64199
+ 623116.400 3370264.650 36.58813
+ 623147.650 3370264.650 36.58833
+ 623178.900 3370264.650 36.58853
+ 622991.400 3370233.400 36.81659
+ 623053.900 3370233.400 36.71518
+ 623085.150 3370233.400 36.66447
+ 623116.400 3370233.400 36.61377
+ 623147.650 3370233.400 36.61144
+ 623178.900 3370233.400 36.60912
+ 623241.400 3370233.400 36.60446
+ 623616.400 3370233.400 36.42596
+ 623678.900 3370233.400 36.45427
+ 623741.400 3370233.400 36.48257
+ 619741.400 3370170.900 42.13811
+ 619991.400 3370170.900 42.13384
+ 620241.400 3370170.900 42.12491
+ 620491.400 3370170.900 42.11679
+ 620741.400 3370170.900 -503.9383
+ 620991.400 3370170.900 -1049.990
+ 621241.400 3370170.900 -1049.990
+ 621491.400 3370170.900 -1049.990
+ 621741.400 3370170.900 -506.1574
+ 621991.400 3370170.900 37.63647
+ 622241.400 3370170.900 37.52989
+ 622491.400 3370170.900 37.37064
+ 622741.400 3370170.900 37.14979
+ 622866.400 3370170.900 37.02034
+ 622991.400 3370170.900 36.84269
+ 623053.900 3370170.900 36.75386
+ 623116.400 3370170.900 36.66504
+ 623178.900 3370170.900 36.65028
+ 623241.400 3370170.900 36.63553
+ 623366.400 3370170.900 36.60602
+ 623491.400 3370170.900 36.51775
+ 623616.400 3370170.900 36.42947
+ 623678.900 3370170.900 36.45884
+ 623741.400 3370170.900 36.48820
+ 623866.400 3370170.900 36.54694
+ 623991.400 3370170.900 36.58827
+ 624241.400 3370170.900 36.66128
+ 624491.400 3370170.900 36.70980
+ 624741.400 3370170.900 36.72665
+ 623616.400 3370108.400 36.43298
+ 623678.900 3370108.400 36.46341
+ 623741.400 3370108.400 36.49383
+ 622991.400 3370045.900 36.89489
+ 623116.400 3370045.900 36.76757
+ 623241.400 3370045.900 36.69766
+ 623491.400 3370045.900 36.53213
+ 623616.400 3370045.900 36.43650
+ 623678.900 3370045.900 36.46798
+ 623741.400 3370045.900 36.49945
+ 623866.400 3370045.900 36.56241
+ 623991.400 3370045.900 36.60139
+ 623616.400 3369983.400 36.43906
+ 623678.900 3369983.400 36.47085
+ 623741.400 3369983.400 36.50264
+ 619741.400 3369920.900 42.10980
+ 619991.400 3369920.900 42.10649
+ 620241.400 3369920.900 42.09847
+ 620491.400 3369920.900 42.09065
+ 620741.400 3369920.900 -503.9512
+ 620991.400 3369920.900 -1049.990
+ 621241.400 3369920.900 -1049.990
+ 621491.400 3369920.900 -1049.990
+ 621741.400 3369920.900 -506.2113
+ 621991.400 3369920.900 37.53402
+ 622241.400 3369920.900 37.44143
+ 622491.400 3369920.900 37.30451
+ 622741.400 3369920.900 37.12637
+ 622991.400 3369920.900 36.91373
+ 623116.400 3369920.900 36.80164
+ 623241.400 3369920.900 36.72330
+ 623491.400 3369920.900 36.54329
+ 623616.400 3369920.900 36.44162
+ 623678.900 3369920.900 36.47372
+ 623741.400 3369920.900 36.50582
+ 623866.400 3369920.900 36.57002
+ 623991.400 3369920.900 36.60831
+ 624241.400 3369920.900 36.67429
+ 624491.400 3369920.900 36.71638
+ 624741.400 3369920.900 36.73076
+ 623616.400 3369858.400 36.44418
+ 623678.900 3369858.400 36.47659
+ 623741.400 3369858.400 36.50900
+ 623491.400 3369795.900 36.55445
+ 623616.400 3369795.900 36.44673
+ 623678.900 3369795.900 36.47946
+ 623741.400 3369795.900 36.51218
+ 623866.400 3369795.900 36.57764
+ 623991.400 3369795.900 36.61523
+ 623616.400 3369733.400 36.44722
+ 623678.900 3369733.400 36.48014
+ 623741.400 3369733.400 36.51307
+ 619741.400 3369670.900 42.03670
+ 619991.400 3369670.900 42.03447
+ 620241.400 3369670.900 42.02671
+ 620491.400 3369670.900 42.01825
+ 620741.400 3369670.900 -503.9873
+ 620991.400 3369670.900 -1049.990
+ 621241.400 3369670.900 -1049.990
+ 621491.400 3369670.900 -1049.990
+ 621741.400 3369670.900 -506.2504
+ 621991.400 3369670.900 37.45941
+ 622241.400 3369670.900 37.37757
+ 622491.400 3369670.900 37.25970
+ 622741.400 3369670.900 37.11048
+ 622991.400 3369670.900 36.93562
+ 623241.400 3369670.900 36.75603
+ 623491.400 3369670.900 36.55781
+ 623616.400 3369670.900 36.44772
+ 623678.900 3369670.900 36.48083
+ 623741.400 3369670.900 36.51395
+ 623866.400 3369670.900 36.58018
+ 623991.400 3369670.900 36.61737
+ 624241.400 3369670.900 36.68027
+ 624491.400 3369670.900 36.71935
+ 624741.400 3369670.900 36.73272
+ 623616.400 3369608.400 36.44821
+ 623678.900 3369608.400 36.48152
+ 623741.400 3369608.400 36.51483
+ 623491.400 3369545.900 36.56116
+ 623616.400 3369545.900 36.44870
+ 623678.900 3369545.900 36.48220
+ 623741.400 3369545.900 36.51571
+ 623866.400 3369545.900 36.58272
+ 623991.400 3369545.900 36.61953
+ 623616.400 3369483.400 36.44685
+ 623678.900 3369483.400 36.48045
+ 623741.400 3369483.400 36.51406
+ 619741.400 3369420.900 41.92336
+ 619991.400 3369420.900 41.92085
+ 620241.400 3369420.900 41.91286
+ 620491.400 3369420.900 41.90541
+ 620741.400 3369420.900 -504.0433
+ 620991.400 3369420.900 -1049.990
+ 621241.400 3369420.900 -1049.990
+ 621491.400 3369420.900 -1049.990
+ 621741.400 3369420.900 -506.2798
+ 621991.400 3369420.900 37.40295
+ 622241.400 3369420.900 37.32919
+ 622491.400 3369420.900 37.22425
+ 622741.400 3369420.900 37.09126
+ 622991.400 3369420.900 36.93333
+ 623241.400 3369420.900 36.76060
+ 623491.400 3369420.900 36.55827
+ 623616.400 3369420.900 36.44500
+ 623678.900 3369420.900 36.47871
+ 623741.400 3369420.900 36.51241
+ 623866.400 3369420.900 36.57982
+ 623991.400 3369420.900 36.61691
+ 624241.400 3369420.900 36.67920
+ 624491.400 3369420.900 36.71751
+ 624741.400 3369420.900 36.73061
+ 623616.400 3369358.400 36.44315
+ 623678.900 3369358.400 36.47696
+ 623741.400 3369358.400 36.51076
+ 623491.400 3369295.900 36.55537
+ 623616.400 3369295.900 36.44130
+ 623678.900 3369295.900 36.47520
+ 623741.400 3369295.900 36.50911
+ 623866.400 3369295.900 36.57692
+ 623991.400 3369295.900 36.61429
+ 623616.400 3369233.400 36.43785
+ 623678.900 3369233.400 36.47168
+ 623741.400 3369233.400 36.50551
+ 619741.400 3369170.900 41.76676
+ 619991.400 3369170.900 41.76095
+ 620241.400 3369170.900 41.75272
+ 620491.400 3369170.900 41.75116
+ 620741.400 3369170.900 -504.1190
+ 620991.400 3369170.900 -1049.990
+ 621241.400 3369170.900 -1049.990
+ 621491.400 3369170.900 -1049.990
+ 621741.400 3369170.900 -506.3015
+ 621991.400 3369170.900 37.36118
+ 622241.400 3369170.900 37.29174
+ 622491.400 3369170.900 37.19262
+ 622741.400 3369170.900 37.06719
+ 622991.400 3369170.900 36.91686
+ 623241.400 3369170.900 36.74840
+ 623491.400 3369170.900 36.54739
+ 623616.400 3369170.900 36.43440
+ 623678.900 3369170.900 36.46815
+ 623741.400 3369170.900 36.50191
+ 623866.400 3369170.900 36.56942
+ 623991.400 3369170.900 36.60764
+ 624241.400 3369170.900 36.67155
+ 624491.400 3369170.900 36.71035
+ 624741.400 3369170.900 36.72348
+ 623616.400 3369108.400 36.43095
+ 623678.900 3369108.400 36.46463
+ 623741.400 3369108.400 36.49831
+ 623491.400 3369045.900 36.53941
+ 623616.400 3369045.900 36.42750
+ 623678.900 3369045.900 36.46111
+ 623741.400 3369045.900 36.49471
+ 623866.400 3369045.900 36.56192
+ 623991.400 3369045.900 36.60100
+ 623616.400 3368983.400 36.42179
+ 623678.900 3368983.400 36.45544
+ 623741.400 3368983.400 36.48908
+ 619741.400 3368920.900 41.57409
+ 619991.400 3368920.900 41.56663
+ 620241.400 3368920.900 41.55628
+ 620491.400 3368920.900 41.55607
+ 620741.400 3368920.900 -504.2156
+ 620991.400 3368920.900 -1049.990
+ 621241.400 3368920.900 -1049.990
+ 621491.400 3368920.900 -1049.990
+ 621741.400 3368920.900 -506.3162
+ 621991.400 3368920.900 37.33193
+ 622241.400 3368920.900 37.26199
+ 622491.400 3368920.900 37.16281
+ 622741.400 3368920.900 37.03867
+ 622991.400 3368920.900 36.88947
+ 623241.400 3368920.900 36.72237
+ 623491.400 3368920.900 36.52563
+ 623616.400 3368920.900 36.41608
+ 623678.900 3368920.900 36.44977
+ 623741.400 3368920.900 36.48345
+ 623866.400 3368920.900 36.55081
+ 623991.400 3368920.900 36.59086
+ 624241.400 3368920.900 36.65760
+ 624491.400 3368920.900 36.69789
+ 624741.400 3368920.900 36.71149
+ 623616.400 3368858.400 36.41038
+ 623678.900 3368858.400 36.44410
+ 623741.400 3368858.400 36.47782
+ 623491.400 3368795.900 36.51186
+ 623616.400 3368795.900 36.40467
+ 623678.900 3368795.900 36.43843
+ 623741.400 3368795.900 36.47218
+ 623866.400 3368795.900 36.53970
+ 623991.400 3368795.900 36.58072
+ 623616.400 3368733.400 36.39599
+ 623678.900 3368733.400 36.43011
+ 623741.400 3368733.400 36.46423
+ 619741.400 3368670.900 41.35204
+ 619991.400 3368670.900 41.34578
+ 620241.400 3368670.900 41.33145
+ 620491.400 3368670.900 41.32513
+ 620741.400 3368670.900 -504.3316
+ 620991.400 3368670.900 -1049.990
+ 621241.400 3368670.900 -1049.990
+ 621491.400 3368670.900 -1049.990
+ 621741.400 3368670.900 -506.3248
+ 621991.400 3368670.900 37.31271
+ 622241.400 3368670.900 37.23891
+ 622491.400 3368670.900 37.13565
+ 622741.400 3368670.900 37.00653
+ 622991.400 3368670.900 36.85128
+ 623241.400 3368670.900 36.67906
+ 623491.400 3368670.900 36.48870
+ 623616.400 3368670.900 36.38731
+ 623678.900 3368670.900 36.42179
+ 623741.400 3368670.900 36.45626
+ 623866.400 3368670.900 36.52521
+ 623991.400 3368670.900 36.56782
+ 624241.400 3368670.900 36.63873
+ 624491.400 3368670.900 36.68170
+ 624741.400 3368670.900 36.69637
+ 623616.400 3368608.400 36.37864
+ 623678.900 3368608.400 36.41347
+ 623741.400 3368608.400 36.44830
+ 623491.400 3368545.900 36.46554
+ 623616.400 3368545.900 36.36996
+ 623678.900 3368545.900 36.40515
+ 623741.400 3368545.900 36.44034
+ 623866.400 3368545.900 36.51072
+ 623991.400 3368545.900 36.55492
+ 623616.400 3368483.400 36.35694
+ 623678.900 3368483.400 36.39317
+ 623741.400 3368483.400 36.42941
+ 619741.400 3368420.900 41.09259
+ 619991.400 3368420.900 41.08430
+ 620241.400 3368420.900 41.06548
+ 620491.400 3368420.900 41.05369
+ 620741.400 3368420.900 -504.4688
+ 620991.400 3368420.900 -1049.990
+ 621241.400 3368420.900 -1049.990
+ 621491.400 3368420.900 -1049.990
+ 621741.400 3368420.900 -506.3264
+ 621991.400 3368420.900 37.30586
+ 622241.400 3368420.900 37.22443
+ 622491.400 3368420.900 37.11251
+ 622741.400 3368420.900 36.97227
+ 622991.400 3368420.900 36.80063
+ 623241.400 3368420.900 36.60659
+ 623366.400 3368420.900 36.50585
+ 623491.400 3368420.900 36.42489
+ 623616.400 3368420.900 36.34393
+ 623678.900 3368420.900 36.38120
+ 623741.400 3368420.900 36.41847
+ 623866.400 3368420.900 36.49302
+ 623991.400 3368420.900 36.53989
+ 624241.400 3368420.900 36.61753
+ 624491.400 3368420.900 36.66386
+ 624741.400 3368420.900 36.67942
+ 623616.400 3368358.400 36.33091
+ 623678.900 3368358.400 36.36922
+ 623741.400 3368358.400 36.40754
+ 623241.400 3368295.900 36.56105
+ 623366.400 3368295.900 36.45059
+ 623491.400 3368295.900 36.38424
+ 623616.400 3368295.900 36.31789
+ 623678.900 3368295.900 36.35725
+ 623741.400 3368295.900 36.39661
+ 623866.400 3368295.900 36.47532
+ 623991.400 3368295.900 36.52486
+ 623616.400 3368233.400 36.30203
+ 623678.900 3368233.400 36.34341
+ 623741.400 3368233.400 36.38479
+ 619741.400 3368170.900 40.79752
+ 619991.400 3368170.900 40.78728
+ 620241.400 3368170.900 40.76482
+ 620491.400 3368170.900 40.74174
+ 620741.400 3368170.900 -504.6295
+ 620991.400 3368170.900 -1049.990
+ 621241.400 3368170.900 -1049.990
+ 621491.400 3368170.900 -1049.990
+ 621741.400 3368170.900 -506.3168
+ 621991.400 3368170.900 37.31679
+ 622241.400 3368170.900 37.22072
+ 622491.400 3368170.900 37.09584
+ 622741.400 3368170.900 36.94051
+ 622991.400 3368170.900 36.74189
+ 623116.400 3368170.900 36.63025
+ 623241.400 3368170.900 36.47591
+ 623303.900 3368170.900 36.39874
+ 623366.400 3368170.900 36.32157
+ 623428.900 3368170.900 36.31272
+ 623491.400 3368170.900 36.30387
+ 623616.400 3368170.900 36.28617
+ 623678.900 3368170.900 36.32957
+ 623741.400 3368170.900 36.37297
+ 623866.400 3368170.900 36.45976
+ 623991.400 3368170.900 36.51170
+ 624241.400 3368170.900 36.59694
+ 624491.400 3368170.900 36.64625
+ 624741.400 3368170.900 36.66224
+ 623241.400 3368108.400 36.43333
+ 623303.900 3368108.400 36.34520
+ 623335.150 3368108.400 36.30113
+ 623366.400 3368108.400 36.25706
+ 623397.650 3368108.400 36.25872
+ 623428.900 3368108.400 36.26038
+ 623491.400 3368108.400 36.26369
+ 623616.400 3368108.400 36.27032
+ 623678.900 3368108.400 36.31573
+ 623741.400 3368108.400 36.36115
+ 623303.900 3368077.150 36.31843
+ 623335.150 3368077.150 36.27161
+ 623366.400 3368077.150 36.22480
+ 623397.650 3368077.150 36.22950
+ 623428.900 3368077.150 36.23420
+ 622991.400 3368045.900 36.71188
+ 623116.400 3368045.900 36.58897
+ 623241.400 3368045.900 36.39076
+ 623303.900 3368045.900 36.29166
+ 623335.150 3368045.900 36.24210
+ 623366.400 3368045.900 36.19255
+ 623397.650 3368045.900 36.20029
+ 623428.900 3368045.900 36.20803
+ 623491.400 3368045.900 36.22350
+ 623616.400 3368045.900 36.25446
+ 623678.900 3368045.900 36.30190
+ 623741.400 3368045.900 36.34933
+ 623866.400 3368045.900 36.44421
+ 623991.400 3368045.900 36.49854
+ 623303.900 3368014.650 36.31357
+ 623335.150 3368014.650 36.26679
+ 623366.400 3368014.650 36.22001
+ 623397.650 3368014.650 36.22483
+ 623428.900 3368014.650 36.22966
+ 623241.400 3367983.400 36.42350
+ 623303.900 3367983.400 36.33549
+ 623335.150 3367983.400 36.29148
+ 623366.400 3367983.400 36.24747
+ 623397.650 3367983.400 36.24938
+ 623428.900 3367983.400 36.25129
+ 623491.400 3367983.400 36.25512
+ 623616.400 3367983.400 36.26276
+ 623678.900 3367983.400 36.30817
+ 623741.400 3367983.400 36.35358
+ 619741.400 3367920.900 40.48670
+ 619991.400 3367920.900 40.46994
+ 620241.400 3367920.900 40.42810
+ 620491.400 3367920.900 40.37987
+ 620741.400 3367920.900 -504.8166
+ 620991.400 3367920.900 -1049.990
+ 621241.400 3367920.900 -778.0557
+ 621491.400 3367920.900 -506.1477
+ 621741.400 3367920.900 -234.3819
+ 621991.400 3367920.900 37.35302
+ 622241.400 3367920.900 37.22760
+ 622491.400 3367920.900 37.08640
+ 622741.400 3367920.900 36.92402
+ 622991.400 3367920.900 36.72243
+ 623116.400 3367920.900 36.61011
+ 623241.400 3367920.900 36.45625
+ 623303.900 3367920.900 36.37931
+ 623366.400 3367920.900 36.30238
+ 623428.900 3367920.900 36.29456
+ 623491.400 3367920.900 36.28672
+ 623616.400 3367920.900 36.27106
+ 623678.900 3367920.900 36.31444
+ 623741.400 3367920.900 36.35781
+ 623866.400 3367920.900 36.44456
+ 623991.400 3367920.900 36.49604
+ 624241.400 3367920.900 36.58086
+ 624491.400 3367920.900 36.63046
+ 624741.400 3367920.900 36.64671
+ 623616.400 3367858.400 36.27937
+ 623678.900 3367858.400 36.32071
+ 623741.400 3367858.400 36.36205
+ 623241.400 3367795.900 36.52173
+ 623366.400 3367795.900 36.41222
+ 623491.400 3367795.900 36.34995
+ 623616.400 3367795.900 36.28767
+ 623678.900 3367795.900 36.32698
+ 623741.400 3367795.900 36.36629
+ 623866.400 3367795.900 36.44492
+ 623991.400 3367795.900 36.49355
+ 623616.400 3367733.400 36.29279
+ 623678.900 3367733.400 36.33107
+ 623741.400 3367733.400 36.36936
+ 619741.400 3367670.900 40.15652
+ 619991.400 3367670.900 40.13159
+ 620241.400 3367670.900 40.06378
+ 620491.400 3367670.900 39.96610
+ 620741.400 3367670.900 -232.7097
+ 620991.400 3367670.900 -777.6603
+ 621241.400 3367670.900 -506.1049
+ 621491.400 3367670.900 37.71908
+ 621741.400 3367670.900 37.56117
+ 621991.400 3367670.900 37.38771
+ 622241.400 3367670.900 37.23119
+ 622491.400 3367670.900 37.07671
+ 622741.400 3367670.900 36.91820
+ 622991.400 3367670.900 36.74054
+ 623241.400 3367670.900 36.54819
+ 623366.400 3367670.900 36.44947
+ 623491.400 3367670.900 36.37369
+ 623616.400 3367670.900 36.29790
+ 623678.900 3367670.900 36.33517
+ 623741.400 3367670.900 36.37243
+ 623866.400 3367670.900 36.44695
+ 623991.400 3367670.900 36.49298
+ 624241.400 3367670.900 36.57007
+ 624491.400 3367670.900 36.61695
+ 624741.400 3367670.900 36.63278
+ 623616.400 3367608.400 36.30302
+ 623678.900 3367608.400 36.33926
+ 623741.400 3367608.400 36.37549
+ 623491.400 3367545.900 36.39743
+ 623616.400 3367545.900 36.30814
+ 623678.900 3367545.900 36.34335
+ 623741.400 3367545.900 36.37856
+ 623866.400 3367545.900 36.44897
+ 623991.400 3367545.900 36.49241
+ 623616.400 3367483.400 36.30912
+ 623678.900 3367483.400 36.34395
+ 623741.400 3367483.400 36.37878
+ 619741.400 3367420.900 39.83095
+ 619991.400 3367420.900 39.79891
+ 620241.400 3367420.900 39.71323
+ 620491.400 3367420.900 39.57022
+ 620741.400 3367420.900 39.31099
+ 620991.400 3367420.900 -233.3224
+ 621241.400 3367420.900 -233.9453
+ 621491.400 3367420.900 37.79170
+ 621741.400 3367420.900 37.58703
+ 621991.400 3367420.900 37.39308
+ 622241.400 3367420.900 37.21344
+ 622491.400 3367420.900 37.05259
+ 622741.400 3367420.900 36.90173
+ 622991.400 3367420.900 36.74412
+ 623241.400 3367420.900 36.57980
+ 623491.400 3367420.900 36.40320
+ 623616.400 3367420.900 36.31010
+ 623678.900 3367420.900 36.34456
+ 623741.400 3367420.900 36.37902
+ 623866.400 3367420.900 36.44793
+ 623991.400 3367420.900 36.48977
+ 624241.400 3367420.900 36.56065
+ 624491.400 3367420.900 36.60459
+ 624741.400 3367420.900 36.61948
+ 623616.400 3367358.400 36.31108
+ 623678.900 3367358.400 36.34517
+ 623741.400 3367358.400 36.37925
+ 623491.400 3367295.900 36.40897
+ 623616.400 3367295.900 36.31206
+ 623678.900 3367295.900 36.34577
+ 623741.400 3367295.900 36.37948
+ 623866.400 3367295.900 36.44689
+ 623991.400 3367295.900 36.48713
+ 623616.400 3367233.400 36.30997
+ 623678.900 3367233.400 36.34366
+ 623741.400 3367233.400 36.37735
+ 619741.400 3367170.900 39.53230
+ 619991.400 3367170.900 39.49362
+ 620241.400 3367170.900 39.39274
+ 620491.400 3367170.900 39.23680
+ 620741.400 3367170.900 38.97574
+ 620991.400 3367170.900 38.57680
+ 621241.400 3367170.900 38.15640
+ 621491.400 3367170.900 37.82993
+ 621741.400 3367170.900 37.58077
+ 621991.400 3367170.900 37.36043
+ 622241.400 3367170.900 37.16082
+ 622491.400 3367170.900 37.00025
+ 622741.400 3367170.900 36.86313
+ 622991.400 3367170.900 36.72475
+ 623241.400 3367170.900 36.57758
+ 623491.400 3367170.900 36.40469
+ 623616.400 3367170.900 36.30787
+ 623678.900 3367170.900 36.34155
+ 623741.400 3367170.900 36.37522
+ 623866.400 3367170.900 36.44257
+ 623991.400 3367170.900 36.48191
+ 624241.400 3367170.900 36.54905
+ 624491.400 3367170.900 36.59091
+ 624741.400 3367170.900 36.60497
+ 623616.400 3367108.400 36.30577
+ 623678.900 3367108.400 36.33943
+ 623741.400 3367108.400 36.37309
+ 623491.400 3367045.900 36.40040
+ 623616.400 3367045.900 36.30368
+ 623678.900 3367045.900 36.33732
+ 623741.400 3367045.900 36.37096
+ 623866.400 3367045.900 36.43824
+ 623991.400 3367045.900 36.47669
+ 623616.400 3366983.400 36.29972
+ 623678.900 3366983.400 36.33329
+ 623741.400 3366983.400 36.36687
+ 619741.400 3366920.900 39.24512
+ 619991.400 3366920.900 39.20729
+ 620241.400 3366920.900 39.10585
+ 620491.400 3366920.900 38.93959
+ 620741.400 3366920.900 38.68872
+ 620991.400 3366920.900 38.37056
+ 621241.400 3366920.900 38.05480
+ 621491.400 3366920.900 37.77380
+ 621741.400 3366920.900 37.51900
+ 621991.400 3366920.900 37.28210
+ 622241.400 3366920.900 37.06105
+ 622366.400 3366920.900 36.95730
+ 622491.400 3366920.900 36.90412
+ 622741.400 3366920.900 36.79837
+ 622991.400 3366920.900 36.68541
+ 623241.400 3366920.900 36.55544
+ 623491.400 3366920.900 36.39080
+ 623616.400 3366920.900 36.29575
+ 623678.900 3366920.900 36.32927
+ 623741.400 3366920.900 36.36278
+ 623866.400 3366920.900 36.42981
+ 623991.400 3366920.900 36.46810
+ 624241.400 3366920.900 36.53342
+ 624491.400 3366920.900 36.57408
+ 624741.400 3366920.900 36.58771
+ 623616.400 3366858.400 36.29179
+ 623678.900 3366858.400 36.32524
+ 623741.400 3366858.400 36.35869
+ 622241.400 3366795.900 36.99819
+ 622366.400 3366795.900 36.88301
+ 622491.400 3366795.900 36.84289
+ 623491.400 3366795.900 36.38120
+ 623616.400 3366795.900 36.28783
+ 623678.900 3366795.900 36.32122
+ 623741.400 3366795.900 36.35460
+ 623866.400 3366795.900 36.42137
+ 623991.400 3366795.900 36.45952
+ 623616.400 3366733.400 36.28262
+ 623678.900 3366733.400 36.31600
+ 623741.400 3366733.400 36.34937
+ 619741.400 3366670.900 38.97533
+ 619991.400 3366670.900 38.94085
+ 620241.400 3366670.900 38.84261
+ 620491.400 3366670.900 38.67522
+ 620741.400 3366670.900 38.44333
+ 620991.400 3366670.900 38.18071
+ 621241.400 3366670.900 37.91521
+ 621491.400 3366670.900 37.65902
+ 621741.400 3366670.900 37.41442
+ 621991.400 3366670.900 37.16966
+ 622116.400 3366670.900 37.04443
+ 622241.400 3366670.900 36.88859
+ 622303.900 3366670.900 36.81067
+ 622366.400 3366670.900 36.73274
+ 622428.900 3366670.900 36.73534
+ 622491.400 3366670.900 36.73794
+ 622616.400 3366670.900 36.74314
+ 622741.400 3366670.900 36.71342
+ 622991.400 3366670.900 36.63445
+ 623241.400 3366670.900 36.52229
+ 623491.400 3366670.900 36.36840
+ 623616.400 3366670.900 36.27741
+ 623678.900 3366670.900 36.31078
+ 623741.400 3366670.900 36.34415
+ 623866.400 3366670.900 36.41087
+ 623991.400 3366670.900 36.44891
+ 624241.400 3366670.900 36.51303
+ 624491.400 3366670.900 36.55271
+ 624741.400 3366670.900 36.56631
+ 622241.400 3366608.400 36.83379
+ 622303.900 3366608.400 36.74570
+ 622335.150 3366608.400 36.70165
+ 622366.400 3366608.400 36.65760
+ 622397.650 3366608.400 36.66457
+ 622428.900 3366608.400 36.67154
+ 622491.400 3366608.400 36.68547
+ 623616.400 3366608.400 36.27221
+ 623678.900 3366608.400 36.30556
+ 623741.400 3366608.400 36.33892
+ 622303.900 3366577.150 36.71321
+ 622335.150 3366577.150 36.66663
+ 622366.400 3366577.150 36.62004
+ 622397.650 3366577.150 36.62984
+ 622428.900 3366577.150 36.63964
+ 621991.400 3366545.900 37.10662
+ 622116.400 3366545.900 36.97550
+ 622241.400 3366545.900 36.77898
+ 622303.900 3366545.900 36.68073
+ 622335.150 3366545.900 36.63160
+ 622366.400 3366545.900 36.58247
+ 622397.650 3366545.900 36.59510
+ 622428.900 3366545.900 36.60773
+ 622491.400 3366545.900 36.63300
+ 622616.400 3366545.900 36.68353
+ 622741.400 3366545.900 36.66737
+ 623491.400 3366545.900 36.35561
+ 623616.400 3366545.900 36.26700
+ 623678.900 3366545.900 36.30034
+ 623741.400 3366545.900 36.33369
+ 623866.400 3366545.900 36.40038
+ 623991.400 3366545.900 36.43832
+ 622303.900 3366514.650 36.69428
+ 622335.150 3366514.650 36.64818
+ 622366.400 3366514.650 36.60208
+ 622397.650 3366514.650 36.61219
+ 622428.900 3366514.650 36.62231
+ 622241.400 3366483.400 36.79398
+ 622303.900 3366483.400 36.70783
+ 622335.150 3366483.400 36.66476
+ 622366.400 3366483.400 36.62169
+ 622397.650 3366483.400 36.62928
+ 622428.900 3366483.400 36.63688
+ 622491.400 3366483.400 36.65208
+ 623616.400 3366483.400 36.26093
+ 623678.900 3366483.400 36.29413
+ 623741.400 3366483.400 36.32734
+ 619741.400 3366420.900 38.73071
+ 619991.400 3366420.900 38.69707
+ 620241.400 3366420.900 38.59716
+ 620491.400 3366420.900 38.44066
+ 620741.400 3366420.900 38.22942
+ 620991.400 3366420.900 37.98656
+ 621241.400 3366420.900 37.73962
+ 621491.400 3366420.900 37.50603
+ 621741.400 3366420.900 37.29217
+ 621991.400 3366420.900 37.07193
+ 622116.400 3366420.900 36.95704
+ 622241.400 3366420.900 36.80897
+ 622303.900 3366420.900 36.73494
+ 622366.400 3366420.900 36.66090
+ 622428.900 3366420.900 36.66603
+ 622491.400 3366420.900 36.67115
+ 622616.400 3366420.900 36.68141
+ 622741.400 3366420.900 36.65683
+ 622991.400 3366420.900 36.58786
+ 623241.400 3366420.900 36.48537
+ 623491.400 3366420.900 36.34107
+ 623616.400 3366420.900 36.25485
+ 623678.900 3366420.900 36.28792
+ 623741.400 3366420.900 36.32100
+ 623866.400 3366420.900 36.38714
+ 623991.400 3366420.900 36.42496
+ 624241.400 3366420.900 36.48809
+ 624491.400 3366420.900 36.52685
+ 624741.400 3366420.900 36.54031
+ 623616.400 3366358.400 36.24877
+ 623678.900 3366358.400 36.28171
+ 623741.400 3366358.400 36.31465
+ 622241.400 3366295.900 36.83895
+ 622366.400 3366295.900 36.73933
+ 622491.400 3366295.900 36.70931
+ 623491.400 3366295.900 36.32653
+ 623616.400 3366295.900 36.24270
+ 623678.900 3366295.900 36.27550
+ 623741.400 3366295.900 36.30830
+ 623866.400 3366295.900 36.37390
+ 623991.400 3366295.900 36.41161
+ 623616.400 3366233.400 36.23560
+ 623678.900 3366233.400 36.26821
+ 623741.400 3366233.400 36.30083
+ 619741.400 3366170.900 38.51360
+ 619991.400 3366170.900 38.47585
+ 620241.400 3366170.900 38.37385
+ 620491.400 3366170.900 38.22036
+ 620741.400 3366170.900 38.01366
+ 620991.400 3366170.900 37.77369
+ 621241.400 3366170.900 37.52220
+ 621366.400 3366170.900 37.39322
+ 621491.400 3366170.900 37.31252
+ 621741.400 3366170.900 37.15493
+ 621991.400 3366170.900 36.99375
+ 622241.400 3366170.900 36.82583
+ 622366.400 3366170.900 36.74221
+ 622491.400 3366170.900 36.70438
+ 622741.400 3366170.900 36.62922
+ 622991.400 3366170.900 36.54622
+ 623241.400 3366170.900 36.44559
+ 623491.400 3366170.900 36.30956
+ 623616.400 3366170.900 36.22850
+ 623678.900 3366170.900 36.26093
+ 623741.400 3366170.900 36.29335
+ 623866.400 3366170.900 36.35821
+ 623991.400 3366170.900 36.39572
+ 624241.400 3366170.900 36.45848
+ 624491.400 3366170.900 36.49710
+ 624741.400 3366170.900 36.51047
+ 623616.400 3366108.400 36.22140
+ 623678.900 3366108.400 36.25364
+ 623741.400 3366108.400 36.28588
+ 621241.400 3366045.900 37.40071
+ 621366.400 3366045.900 37.26489
+ 621491.400 3366045.900 37.20354
+ 623491.400 3366045.900 36.29258
+ 623616.400 3366045.900 36.21430
+ 623678.900 3366045.900 36.24635
+ 623741.400 3366045.900 36.27840
+ 623866.400 3366045.900 36.34251
+ 623991.400 3366045.900 36.37984
+ 623616.400 3365983.400 36.20596
+ 623678.900 3365983.400 36.23773
+ 623741.400 3365983.400 36.26950
+ 619741.400 3365920.900 38.31310
+ 619991.400 3365920.900 38.27230
+ 620241.400 3365920.900 38.16677
+ 620491.400 3365920.900 38.01072
+ 620741.400 3365920.900 37.80515
+ 620991.400 3365920.900 37.55416
+ 621116.400 3365920.900 37.41742
+ 621241.400 3365920.900 37.23652
+ 621303.900 3365920.900 37.14606
+ 621366.400 3365920.900 37.05561
+ 621428.900 3365920.900 37.05308
+ 621491.400 3365920.900 37.05055
+ 621616.400 3365920.900 37.04549
+ 621741.400 3365920.900 37.00077
+ 621991.400 3365920.900 36.89607
+ 622241.400 3365920.900 36.77573
+ 622491.400 3365920.900 36.66929
+ 622741.400 3365920.900 36.58064
+ 622991.400 3365920.900 36.49294
+ 623241.400 3365920.900 36.39674
+ 623491.400 3365920.900 36.27164
+ 623616.400 3365920.900 36.19762
+ 623678.900 3365920.900 36.22911
+ 623741.400 3365920.900 36.26060
+ 623866.400 3365920.900 36.32358
+ 623991.400 3365920.900 36.36102
+ 624241.400 3365920.900 36.42377
+ 624491.400 3365920.900 36.46252
+ 624741.400 3365920.900 36.47596
+ 621241.400 3365858.400 37.15442
+ 621303.900 3365858.400 37.05269
+ 621335.150 3365858.400 37.00183
+ 621366.400 3365858.400 36.95097
+ 621397.650 3365858.400 36.95674
+ 621428.900 3365858.400 36.96251
+ 621491.400 3365858.400 36.97406
+ 623616.400 3365858.400 36.18928
+ 623678.900 3365858.400 36.22049
+ 623741.400 3365858.400 36.25170
+ 621303.900 3365827.150 37.00601
+ 621335.150 3365827.150 36.95233
+ 621366.400 3365827.150 36.89865
+ 621397.650 3365827.150 36.90794
+ 621428.900 3365827.150 36.91723
+ 620991.400 3365795.900 37.44605
+ 621116.400 3365795.900 37.29831
+ 621241.400 3365795.900 37.07232
+ 621303.900 3365795.900 36.95932
+ 621335.150 3365795.900 36.90282
+ 621366.400 3365795.900 36.84633
+ 621397.650 3365795.900 36.85914
+ 621428.900 3365795.900 36.87195
+ 621491.400 3365795.900 36.89756
+ 621616.400 3365795.900 36.94880
+ 621741.400 3365795.900 36.92035
+ 623491.400 3365795.900 36.25070
+ 623616.400 3365795.900 36.18094
+ 623678.900 3365795.900 36.21187
+ 623741.400 3365795.900 36.24279
+ 623866.400 3365795.900 36.30465
+ 623991.400 3365795.900 36.34222
+ 621303.900 3365764.650 36.96786
+ 621335.150 3365764.650 36.91453
+ 621366.400 3365764.650 36.86120
+ 621397.650 3365764.650 36.87093
+ 621428.900 3365764.650 36.88066
+ 621241.400 3365733.400 37.07672
+ 621303.900 3365733.400 36.97640
+ 621335.150 3365733.400 36.92624
+ 621366.400 3365733.400 36.87608
+ 621397.650 3365733.400 36.88273
+ 621428.900 3365733.400 36.88939
+ 621491.400 3365733.400 36.90269
+ 623616.400 3365733.400 36.17076
+ 623678.900 3365733.400 36.20155
+ 623741.400 3365733.400 36.23233
+ 619741.400 3365670.900 38.14164
+ 619991.400 3365670.900 38.09942
+ 620241.400 3365670.900 37.98871
+ 620491.400 3365670.900 37.83083
+ 620741.400 3365670.900 37.62817
+ 620991.400 3365670.900 37.38566
+ 621116.400 3365670.900 37.25643
+ 621241.400 3365670.900 37.08113
+ 621303.900 3365670.900 36.99348
+ 621366.400 3365670.900 36.90582
+ 621428.900 3365670.900 36.90683
+ 621491.400 3365670.900 36.90783
+ 621616.400 3365670.900 36.90983
+ 621741.400 3365670.900 36.87331
+ 621991.400 3365670.900 36.78725
+ 622241.400 3365670.900 36.68660
+ 622491.400 3365670.900 36.59003
+ 622741.400 3365670.900 36.50234
+ 622991.400 3365670.900 36.41885
+ 623241.400 3365670.900 36.33326
+ 623491.400 3365670.900 36.22476
+ 623616.400 3365670.900 36.16059
+ 623678.900 3365670.900 36.19123
+ 623741.400 3365670.900 36.22187
+ 623866.400 3365670.900 36.28316
+ 623991.400 3365670.900 36.32071
+ 624241.400 3365670.900 36.38388
+ 624491.400 3365670.900 36.42289
+ 624741.400 3365670.900 36.43629
+ 623616.400 3365608.400 36.15041
+ 623678.900 3365608.400 36.18091
+ 623741.400 3365608.400 36.21141
+ 621241.400 3365545.900 37.08994
+ 621366.400 3365545.900 36.96532
+ 621491.400 3365545.900 36.91809
+ 623491.400 3365545.900 36.19881
+ 623616.400 3365545.900 36.14024
+ 623678.900 3365545.900 36.17059
+ 623741.400 3365545.900 36.20095
+ 623866.400 3365545.900 36.26166
+ 623991.400 3365545.900 36.29921
+ 623616.400 3365483.400 36.12812
+ 623678.900 3365483.400 36.15832
+ 623741.400 3365483.400 36.18852
+ 619741.400 3365420.900 38.02341
+ 619991.400 3365420.900 37.96744
+ 620241.400 3365420.900 37.83786
+ 620491.400 3365420.900 37.66835
+ 620741.400 3365420.900 37.46898
+ 620991.400 3365420.900 37.26033
+ 621241.400 3365420.900 37.04450
+ 621366.400 3365420.900 36.93382
+ 621491.400 3365420.900 36.87544
+ 621741.400 3365420.900 36.76823
+ 621991.400 3365420.900 36.66836
+ 622241.400 3365420.900 36.56788
+ 622491.400 3365420.900 36.47402
+ 622741.400 3365420.900 36.39046
+ 622991.400 3365420.900 36.31745
+ 623241.400 3365420.900 36.25023
+ 623491.400 3365420.900 36.16644
+ 623616.400 3365420.900 36.11601
+ 623678.900 3365420.900 36.14605
+ 623741.400 3365420.900 36.17609
+ 623866.400 3365420.900 36.23617
+ 623991.400 3365420.900 36.27439
+ 624241.400 3365420.900 36.33884
+ 624491.400 3365420.900 36.37911
+ 624741.400 3365420.900 36.39317
+ 623616.400 3365358.400 36.10390
+ 623678.900 3365358.400 36.13378
+ 623741.400 3365358.400 36.16366
+ 623491.400 3365295.900 36.13408
+ 623616.400 3365295.900 36.09178
+ 623678.900 3365295.900 36.12151
+ 623741.400 3365295.900 36.15123
+ 623866.400 3365295.900 36.21067
+ 623991.400 3365295.900 36.24959
+ 623616.400 3365233.400 36.07728
+ 623678.900 3365233.400 36.10699
+ 623741.400 3365233.400 36.13670
+ 619741.400 3365170.900 -506.0049
+ 619991.400 3365170.900 -234.1163
+ 620241.400 3365170.900 37.68964
+ 620491.400 3365170.900 37.50093
+ 620741.400 3365170.900 37.30266
+ 620991.400 3365170.900 37.11320
+ 621241.400 3365170.900 36.92326
+ 621491.400 3365170.900 36.76027
+ 621741.400 3365170.900 36.63281
+ 621991.400 3365170.900 36.52142
+ 622241.400 3365170.900 36.41639
+ 622491.400 3365170.900 36.32043
+ 622741.400 3365170.900 36.23784
+ 622991.400 3365170.900 36.17966
+ 623241.400 3365170.900 36.14217
+ 623491.400 3365170.900 36.09410
+ 623616.400 3365170.900 36.06277
+ 623678.900 3365170.900 36.09247
+ 623741.400 3365170.900 36.12217
+ 623866.400 3365170.900 36.18158
+ 623991.400 3365170.900 36.22153
+ 624241.400 3365170.900 36.28900
+ 624491.400 3365170.900 36.33186
+ 624741.400 3365170.900 36.34719
+ 623616.400 3365108.400 36.04826
+ 623678.900 3365108.400 36.07796
+ 623741.400 3365108.400 36.10765
+ 623491.400 3365045.900 36.05413
+ 623616.400 3365045.900 36.03376
+ 623678.900 3365045.900 36.06344
+ 623741.400 3365045.900 36.09312
+ 623866.400 3365045.900 36.15248
+ 623991.400 3365045.900 36.19347
+ 623616.400 3364983.400 36.01714
+ 623678.900 3364983.400 36.04690
+ 623741.400 3364983.400 36.07665
+ 619741.400 3364920.900 -1049.990
+ 619991.400 3364920.900 -778.0673
+ 620241.400 3364920.900 -234.3553
+ 620491.400 3364920.900 37.32452
+ 620741.400 3364920.900 37.11735
+ 620991.400 3364920.900 36.92598
+ 621241.400 3364920.900 36.74506
+ 621491.400 3364920.900 36.58873
+ 621741.400 3364920.900 36.45779
+ 621991.400 3364920.900 36.33854
+ 622241.400 3364920.900 36.22828
+ 622491.400 3364920.900 36.12536
+ 622741.400 3364920.900 36.03124
+ 622866.400 3364920.900 35.98724
+ 622991.400 3364920.900 35.99186
+ 623241.400 3364920.900 36.00475
+ 623491.400 3364920.900 36.00677
+ 623616.400 3364920.900 36.00053
+ 623678.900 3364920.900 36.03035
+ 623741.400 3364920.900 36.06017
+ 623866.400 3364920.900 36.11982
+ 623991.400 3364920.900 36.16196
+ 624241.400 3364920.900 36.23435
+ 624491.400 3364920.900 36.28253
+ 624741.400 3364920.900 36.30046
+ 623616.400 3364858.400 35.98392
+ 623678.900 3364858.400 36.01381
+ 623741.400 3364858.400 36.04370
+ 622741.400 3364795.900 35.91220
+ 622866.400 3364795.900 35.86173
+ 622991.400 3364795.900 35.88334
+ 623491.400 3364795.900 35.95941
+ 623616.400 3364795.900 35.96730
+ 623678.900 3364795.900 35.99726
+ 623741.400 3364795.900 36.02723
+ 623866.400 3364795.900 36.08716
+ 623991.400 3364795.900 36.13045
+ 623616.400 3364733.400 35.94910
+ 623678.900 3364733.400 35.97901
+ 623741.400 3364733.400 36.00893
+ 619741.400 3364670.900 -1049.990
+ 619991.400 3364670.900 -1049.990
+ 620241.400 3364670.900 -778.1569
+ 620491.400 3364670.900 -234.6561
+ 620741.400 3364670.900 36.89640
+ 620991.400 3364670.900 36.68990
+ 621241.400 3364670.900 36.51886
+ 621491.400 3364670.900 36.37212
+ 621741.400 3364670.900 36.24115
+ 621991.400 3364670.900 36.11989
+ 622241.400 3364670.900 36.00845
+ 622491.400 3364670.900 35.89199
+ 622616.400 3364670.900 35.82970
+ 622741.400 3364670.900 35.74055
+ 622803.900 3364670.900 35.69597
+ 622866.400 3364670.900 35.65139
+ 622928.900 3364670.900 35.68778
+ 622991.400 3364670.900 35.72417
+ 623116.400 3364670.900 35.79695
+ 623241.400 3364670.900 35.84043
+ 623491.400 3364670.900 35.90740
+ 623616.400 3364670.900 35.93089
+ 623678.900 3364670.900 35.96076
+ 623741.400 3364670.900 35.99063
+ 623866.400 3364670.900 36.05036
+ 623991.400 3364670.900 36.09504
+ 624241.400 3364670.900 36.17347
+ 624491.400 3364670.900 36.23370
+ 624741.400 3364670.900 36.26019
+ 622741.400 3364608.400 35.65472
+ 622803.900 3364608.400 35.60047
+ 622835.150 3364608.400 35.57335
+ 622866.400 3364608.400 35.54622
+ 622897.650 3364608.400 35.57081
+ 622928.900 3364608.400 35.59541
+ 622991.400 3364608.400 35.64459
+ 623616.400 3364608.400 35.91269
+ 623678.900 3364608.400 35.94251
+ 623741.400 3364608.400 35.97233
+ 622803.900 3364577.150 35.55272
+ 622835.150 3364577.150 35.52318
+ 622866.400 3364577.150 35.49364
+ 622897.650 3364577.150 35.52143
+ 622928.900 3364577.150 35.54922
+ 622491.400 3364545.900 35.76703
+ 622616.400 3364545.900 35.69673
+ 622741.400 3364545.900 35.56889
+ 622803.900 3364545.900 35.50497
+ 622835.150 3364545.900 35.47301
+ 622866.400 3364545.900 35.44105
+ 622897.650 3364545.900 35.47204
+ 622928.900 3364545.900 35.50303
+ 622991.400 3364545.900 35.56501
+ 623116.400 3364545.900 35.68896
+ 623241.400 3364545.900 35.75262
+ 623491.400 3364545.900 35.85539
+ 623616.400 3364545.900 35.89449
+ 623678.900 3364545.900 35.92426
+ 623741.400 3364545.900 35.95403
+ 623866.400 3364545.900 36.01356
+ 623991.400 3364545.900 36.05963
+ 622803.900 3364514.650 35.50187
+ 622835.150 3364514.650 35.47303
+ 622866.400 3364514.650 35.44418
+ 622897.650 3364514.650 35.47292
+ 622928.900 3364514.650 35.50166
+ 622741.400 3364483.400 35.55024
+ 622803.900 3364483.400 35.49878
+ 622835.150 3364483.400 35.47304
+ 622866.400 3364483.400 35.44731
+ 622897.650 3364483.400 35.47380
+ 622928.900 3364483.400 35.50029
+ 622991.400 3364483.400 35.55326
+ 623616.400 3364483.400 35.87550
+ 623678.900 3364483.400 35.90493
+ 623741.400 3364483.400 35.93437
+ 619741.400 3364420.900 -1049.990
+ 619991.400 3364420.900 -1049.990
+ 620241.400 3364420.900 -1049.990
+ 620491.400 3364420.900 -778.2661
+ 620741.400 3364420.900 -235.0329
+ 620991.400 3364420.900 36.39463
+ 621241.400 3364420.900 36.24020
+ 621491.400 3364420.900 36.10070
+ 621741.400 3364420.900 35.97445
+ 621991.400 3364420.900 35.86480
+ 622241.400 3364420.900 35.76664
+ 622491.400 3364420.900 35.66411
+ 622616.400 3364420.900 35.60959
+ 622741.400 3364420.900 35.53158
+ 622803.900 3364420.900 35.49258
+ 622866.400 3364420.900 35.45357
+ 622928.900 3364420.900 35.49754
+ 622991.400 3364420.900 35.54151
+ 623116.400 3364420.900 35.62946
+ 623241.400 3364420.900 35.69219
+ 623491.400 3364420.900 35.80571
+ 623616.400 3364420.900 35.85651
+ 623678.900 3364420.900 35.88561
+ 623741.400 3364420.900 35.91471
+ 623866.400 3364420.900 35.97292
+ 623991.400 3364420.900 36.01947
+ 624241.400 3364420.900 36.09945
+ 624491.400 3364420.900 -235.3704
+ 624741.400 3364420.900 -506.8736
+ 623616.400 3364358.400 35.83751
+ 623678.900 3364358.400 35.86629
+ 623741.400 3364358.400 35.89506
+ 622741.400 3364295.900 35.49427
+ 622866.400 3364295.900 35.46609
+ 622991.400 3364295.900 35.51802
+ 623491.400 3364295.900 35.75603
+ 623616.400 3364295.900 35.81852
+ 623678.900 3364295.900 35.84696
+ 623741.400 3364295.900 35.87540
+ 623866.400 3364295.900 35.93229
+ 623991.400 3364295.900 35.97931
+ 623616.400 3364233.400 35.79647
+ 623678.900 3364233.400 35.82480
+ 623741.400 3364233.400 35.85313
+ 619741.400 3364170.900 -1049.990
+ 619991.400 3364170.900 -1049.990
+ 620241.400 3364170.900 -1049.990
+ 620491.400 3364170.900 -1049.990
+ 620741.400 3364170.900 -506.8995
+ 620991.400 3364170.900 36.08540
+ 621241.400 3364170.900 35.90540
+ 621491.400 3364170.900 35.76601
+ 621741.400 3364170.900 35.65467
+ 621991.400 3364170.900 35.57000
+ 622241.400 3364170.900 35.49770
+ 622491.400 3364170.900 35.43660
+ 622741.400 3364170.900 35.39779
+ 622866.400 3364170.900 35.38617
+ 622991.400 3364170.900 35.43493
+ 623241.400 3364170.900 35.55037
+ 623491.400 3364170.900 35.69574
+ 623616.400 3364170.900 35.77442
+ 623678.900 3364170.900 35.80264
+ 623741.400 3364170.900 35.83086
+ 623866.400 3364170.900 35.88731
+ 623991.400 3364170.900 35.93745
+ 624241.400 3364170.900 36.02463
+ 624491.400 3364170.900 -506.9642
+ 624741.400 3364170.900 -1049.990
+ 623616.400 3364108.400 35.75237
+ 623678.900 3364108.400 35.78048
+ 623741.400 3364108.400 35.80859
+ 623491.400 3364045.900 35.63544
+ 623616.400 3364045.900 35.73032
+ 623678.900 3364045.900 35.75832
+ 623741.400 3364045.900 35.78632
+ 623866.400 3364045.900 35.84232
+ 623991.400 3364045.900 35.89558
+ 623616.400 3363983.400 35.70329
+ 623678.900 3363983.400 35.73165
+ 623741.400 3363983.400 35.76001
+ 619741.400 3363920.900 -1049.990
+ 619991.400 3363920.900 -1049.990
+ 620241.400 3363920.900 -1049.990
+ 620491.400 3363920.900 -1049.990
+ 620741.400 3363920.900 -778.4729
+ 620991.400 3363920.900 -235.7131
+ 621241.400 3363920.900 35.47300
+ 621491.400 3363920.900 35.36847
+ 621741.400 3363920.900 35.28998
+ 621991.400 3363920.900 35.23293
+ 622241.400 3363920.900 35.18675
+ 622491.400 3363920.900 35.15804
+ 622741.400 3363920.900 35.15974
+ 622991.400 3363920.900 35.21761
+ 623241.400 3363920.900 35.34723
+ 623491.400 3363920.900 35.55292
+ 623616.400 3363920.900 35.67626
+ 623678.900 3363920.900 35.70498
+ 623741.400 3363920.900 35.73370
+ 623866.400 3363920.900 35.79113
+ 623991.400 3363920.900 35.84763
+ 624241.400 3363920.900 -235.5369
+ 624491.400 3363920.900 -778.4839
+ 624741.400 3363920.900 -1049.990
+ 623616.400 3363858.400 35.64923
+ 623678.900 3363858.400 35.67831
+ 623741.400 3363858.400 35.70739
+ 623491.400 3363795.900 35.47039
+ 623616.400 3363795.900 35.62220
+ 623678.900 3363795.900 35.65164
+ 623741.400 3363795.900 35.68108
+ 623866.400 3363795.900 35.73995
+ 623991.400 3363795.900 35.79967
+ 623616.400 3363733.400 35.59326
+ 623678.900 3363733.400 35.62270
+ 623741.400 3363733.400 35.65213
+ 619741.400 3363670.900 -1049.990
+ 619991.400 3363670.900 -1049.990
+ 620241.400 3363670.900 -1049.990
+ 620491.400 3363670.900 -1049.990
+ 620741.400 3363670.900 -1049.990
+ 620991.400 3363670.900 -507.4991
+ 621241.400 3363670.900 34.97008
+ 621491.400 3363670.900 34.92463
+ 621741.400 3363670.900 34.88313
+ 621991.400 3363670.900 34.84970
+ 622241.400 3363670.900 34.82450
+ 622491.400 3363670.900 34.81554
+ 622741.400 3363670.900 34.83227
+ 622991.400 3363670.900 34.89447
+ 623241.400 3363670.900 35.03934
+ 623491.400 3363670.900 35.35128
+ 623616.400 3363670.900 35.56432
+ 623678.900 3363670.900 35.59375
+ 623741.400 3363670.900 35.62318
+ 623866.400 3363670.900 35.68204
+ 623991.400 3363670.900 -235.6916
+ 624241.400 3363670.900 -778.5276
+ 624491.400 3363670.900 -1049.990
+ 624741.400 3363670.900 -1049.990
+ 623616.400 3363608.400 35.53539
+ 623678.900 3363608.400 35.56481
+ 623741.400 3363608.400 35.59424
+ 623491.400 3363545.900 35.23216
+ 623616.400 3363545.900 35.50645
+ 623678.900 3363545.900 35.53587
+ 623741.400 3363545.900 35.56529
+ 623866.400 3363545.900 35.62413
+ 623991.400 3363545.900 -507.1829
+ 623616.400 3363483.400 -235.8677
+ 623678.900 3363483.400 -235.8456
+ 623741.400 3363483.400 -235.8235
+ 619741.400 3363420.900 -1049.990
+ 619991.400 3363420.900 -1049.990
+ 620241.400 3363420.900 -1049.990
+ 620491.400 3363420.900 -1049.990
+ 620741.400 3363420.900 -1049.990
+ 620991.400 3363420.900 -507.7803
+ 621241.400 3363420.900 34.42590
+ 621491.400 3363420.900 34.41481
+ 621741.400 3363420.900 34.40053
+ 621991.400 3363420.900 34.38868
+ 622241.400 3363420.900 34.38070
+ 622491.400 3363420.900 34.37954
+ 622741.400 3363420.900 34.38935
+ 622991.400 3363420.900 34.41937
+ 623241.400 3363420.900 34.49410
+ 623491.400 3363420.900 -236.3474
+ 623616.400 3363420.900 -507.2418
+ 623678.900 3363420.900 -507.2271
+ 623741.400 3363420.900 -507.2123
+ 623866.400 3363420.900 -507.1829
+ 623991.400 3363420.900 -778.5865
+ 624241.400 3363420.900 -1049.990
+ 624491.400 3363420.900 -1049.990
+ 624741.400 3363420.900 -1049.990
+ 623616.400 3363358.400 -778.6159
+ 623678.900 3363358.400 -778.6085
+ 623741.400 3363358.400 -778.6012
+ 623491.400 3363295.900 -507.9269
+ 623616.400 3363295.900 -1049.990
+ 623678.900 3363295.900 -1049.990
+ 623741.400 3363295.900 -1049.990
+ 623866.400 3363295.900 -1049.990
+ 623991.400 3363295.900 -1049.990
+ 623616.400 3363233.400 -1049.990
+ 623678.900 3363233.400 -1049.990
+ 623741.400 3363233.400 -1049.990
+ 619741.400 3363170.900 -1049.990
+ 619991.400 3363170.900 -1049.990
+ 620241.400 3363170.900 -1049.990
+ 620491.400 3363170.900 -1049.990
+ 620741.400 3363170.900 -1049.990
+ 620991.400 3363170.900 -507.9288
+ 621241.400 3363170.900 34.13218
+ 621491.400 3363170.900 34.13216
+ 621741.400 3363170.900 34.13215
+ 621991.400 3363170.900 34.13198
+ 622241.400 3363170.900 34.13198
+ 622491.400 3363170.900 34.13206
+ 622741.400 3363170.900 34.13234
+ 622991.400 3363170.900 34.13321
+ 623241.400 3363170.900 34.13497
+ 623491.400 3363170.900 -507.9269
+ 623616.400 3363170.900 -1049.990
+ 623678.900 3363170.900 -1049.990
+ 623741.400 3363170.900 -1049.990
+ 623866.400 3363170.900 -1049.990
+ 623991.400 3363170.900 -1049.990
+ 624241.400 3363170.900 -1049.990
+ 624491.400 3363170.900 -1049.990
+ 624741.400 3363170.900 -1049.990
+ 619741.400 3373170.900 32.50000
+ 619991.400 3373170.900 -508.7450
+ 620241.400 3373170.900 -508.7450
+ 620491.400 3373170.900 -508.7450
+ 620741.400 3373170.900 -508.7450
+ 620991.400 3373170.900 -237.7144
+ 621241.400 3373170.900 33.31609
+ 621491.400 3373170.900 33.31608
+ 621741.400 3373170.900 33.31607
+ 621991.400 3373170.900 33.31599
+ 622241.400 3373170.900 33.31599
+ 622491.400 3373170.900 33.31603
+ 622741.400 3373170.900 33.31617
+ 622991.400 3373170.900 33.31660
+ 623241.400 3373170.900 33.31749
+ 623491.400 3373170.900 -237.7135
+ 623616.400 3373170.900 -508.7450
+ 623678.900 3373170.900 -508.7450
+ 623741.400 3373170.900 -508.7450
+ 623866.400 3373170.900 -508.7450
+ 623991.400 3373170.900 -508.7450
+ 624241.400 3373170.900 -508.7450
+ 624491.400 3373170.900 -508.7450
+ 624741.400 3373170.900 32.50000
+ 623616.400 3373108.400 -238.1225
+ 623678.900 3373108.400 -238.1225
+ 623741.400 3373108.400 -238.1225
+ 623491.400 3373045.900 32.50000
+ 623616.400 3373045.900 32.50000
+ 623678.900 3373045.900 32.50000
+ 623741.400 3373045.900 32.50000
+ 623866.400 3373045.900 32.50000
+ 623991.400 3373045.900 32.50000
+ 623616.400 3372983.400 32.50000
+ 623678.900 3372983.400 32.50000
+ 623741.400 3372983.400 32.50000
+ 619741.400 3372920.900 32.50000
+ 619991.400 3372920.900 32.50000
+ 620241.400 3372920.900 32.50000
+ 620491.400 3372920.900 32.50000
+ 620741.400 3372920.900 32.50000
+ 620991.400 3372920.900 32.50000
+ 621241.400 3372920.900 32.50000
+ 621491.400 3372920.900 32.50000
+ 621741.400 3372920.900 32.50000
+ 621991.400 3372920.900 32.50000
+ 622241.400 3372920.900 32.50000
+ 622491.400 3372920.900 32.50000
+ 622741.400 3372920.900 32.50000
+ 622991.400 3372920.900 32.50000
+ 623241.400 3372920.900 32.50000
+ 623491.400 3372920.900 32.50000
+ 623616.400 3372920.900 32.50000
+ 623678.900 3372920.900 32.50000
+ 623741.400 3372920.900 32.50000
+ 623866.400 3372920.900 32.50000
+ 623991.400 3372920.900 32.50000
+ 624241.400 3372920.900 32.50000
+ 624491.400 3372920.900 32.50000
+ 624741.400 3372920.900 32.50000
+ 623616.400 3372858.400 32.50000
+ 623678.900 3372858.400 32.50000
+ 623741.400 3372858.400 32.50000
+ 623491.400 3372795.900 32.50000
+ 623616.400 3372795.900 32.50000
+ 623678.900 3372795.900 32.50000
+ 623741.400 3372795.900 32.50000
+ 623866.400 3372795.900 32.50000
+ 623991.400 3372795.900 32.50000
+ 623616.400 3372733.400 32.50000
+ 623678.900 3372733.400 32.50000
+ 623741.400 3372733.400 32.50000
+ 619741.400 3372670.900 32.50000
+ 619991.400 3372670.900 32.50000
+ 620241.400 3372670.900 32.50000
+ 620491.400 3372670.900 32.50000
+ 620741.400 3372670.900 32.50000
+ 620991.400 3372670.900 32.50000
+ 621241.400 3372670.900 32.50000
+ 621491.400 3372670.900 32.50000
+ 621741.400 3372670.900 32.50000
+ 621991.400 3372670.900 32.50000
+ 622241.400 3372670.900 32.50000
+ 622491.400 3372670.900 32.50000
+ 622741.400 3372670.900 32.50000
+ 622991.400 3372670.900 32.50000
+ 623241.400 3372670.900 32.50000
+ 623491.400 3372670.900 32.50000
+ 623616.400 3372670.900 32.50000
+ 623678.900 3372670.900 32.50000
+ 623741.400 3372670.900 32.50000
+ 623866.400 3372670.900 32.50000
+ 623991.400 3372670.900 32.50000
+ 624241.400 3372670.900 32.50000
+ 624491.400 3372670.900 32.50000
+ 624741.400 3372670.900 32.50000
+ 623616.400 3372608.400 32.50000
+ 623678.900 3372608.400 32.50000
+ 623741.400 3372608.400 32.50000
+ 623491.400 3372545.900 32.50000
+ 623616.400 3372545.900 32.50000
+ 623678.900 3372545.900 32.50000
+ 623741.400 3372545.900 32.50000
+ 623866.400 3372545.900 32.50000
+ 623991.400 3372545.900 32.50000
+ 623616.400 3372483.400 32.50000
+ 623678.900 3372483.400 32.50000
+ 623741.400 3372483.400 32.50000
+ 619741.400 3372420.900 32.50000
+ 619991.400 3372420.900 32.50000
+ 620241.400 3372420.900 32.50000
+ 620491.400 3372420.900 32.50000
+ 620741.400 3372420.900 32.50000
+ 620991.400 3372420.900 32.50000
+ 621241.400 3372420.900 32.50000
+ 621491.400 3372420.900 32.50000
+ 621741.400 3372420.900 32.50000
+ 621991.400 3372420.900 32.50000
+ 622241.400 3372420.900 32.50000
+ 622491.400 3372420.900 32.50000
+ 622741.400 3372420.900 32.50000
+ 622991.400 3372420.900 32.50000
+ 623241.400 3372420.900 32.50000
+ 623491.400 3372420.900 32.50000
+ 623616.400 3372420.900 32.50000
+ 623678.900 3372420.900 32.50000
+ 623741.400 3372420.900 32.50000
+ 623866.400 3372420.900 32.50000
+ 623991.400 3372420.900 32.50000
+ 624241.400 3372420.900 32.50000
+ 624491.400 3372420.900 32.50000
+ 624741.400 3372420.900 32.50000
+ 623616.400 3372358.400 32.50000
+ 623678.900 3372358.400 32.50000
+ 623741.400 3372358.400 32.50000
+ 623491.400 3372295.900 32.50000
+ 623616.400 3372295.900 32.50000
+ 623678.900 3372295.900 32.50000
+ 623741.400 3372295.900 32.50000
+ 623866.400 3372295.900 32.50000
+ 623991.400 3372295.900 32.50000
+ 623616.400 3372233.400 32.50000
+ 623678.900 3372233.400 32.50000
+ 623741.400 3372233.400 32.50000
+ 619741.400 3372170.900 32.50000
+ 619991.400 3372170.900 32.50000
+ 620241.400 3372170.900 32.50000
+ 620491.400 3372170.900 32.50000
+ 620741.400 3372170.900 32.50000
+ 620991.400 3372170.900 32.50000
+ 621241.400 3372170.900 32.50000
+ 621491.400 3372170.900 32.50000
+ 621741.400 3372170.900 32.50000
+ 621991.400 3372170.900 32.50000
+ 622241.400 3372170.900 32.50000
+ 622491.400 3372170.900 32.50000
+ 622741.400 3372170.900 32.50000
+ 622991.400 3372170.900 32.50000
+ 623241.400 3372170.900 32.50000
+ 623491.400 3372170.900 32.50000
+ 623616.400 3372170.900 32.50000
+ 623678.900 3372170.900 32.50000
+ 623741.400 3372170.900 32.50000
+ 623866.400 3372170.900 32.50000
+ 623991.400 3372170.900 32.50000
+ 624241.400 3372170.900 32.50000
+ 624491.400 3372170.900 32.50000
+ 624741.400 3372170.900 32.50000
+ 623616.400 3372108.400 32.50000
+ 623678.900 3372108.400 32.50000
+ 623741.400 3372108.400 32.50000
+ 623491.400 3372045.900 32.50000
+ 623616.400 3372045.900 32.50000
+ 623678.900 3372045.900 32.50000
+ 623741.400 3372045.900 32.50000
+ 623866.400 3372045.900 32.50000
+ 623991.400 3372045.900 32.50000
+ 623616.400 3371983.400 32.50000
+ 623678.900 3371983.400 32.50000
+ 623741.400 3371983.400 32.50000
+ 619741.400 3371920.900 32.50000
+ 619991.400 3371920.900 32.50000
+ 620241.400 3371920.900 32.50000
+ 620491.400 3371920.900 32.50000
+ 620741.400 3371920.900 32.50000
+ 620991.400 3371920.900 32.50000
+ 621241.400 3371920.900 32.50000
+ 621491.400 3371920.900 32.50000
+ 621741.400 3371920.900 32.50000
+ 621991.400 3371920.900 32.50000
+ 622241.400 3371920.900 32.50000
+ 622491.400 3371920.900 32.50000
+ 622741.400 3371920.900 32.50000
+ 622991.400 3371920.900 32.50000
+ 623241.400 3371920.900 32.50000
+ 623491.400 3371920.900 32.50000
+ 623616.400 3371920.900 32.50000
+ 623678.900 3371920.900 32.50000
+ 623741.400 3371920.900 32.50000
+ 623866.400 3371920.900 32.50000
+ 623991.400 3371920.900 32.50000
+ 624241.400 3371920.900 32.50000
+ 624491.400 3371920.900 32.50000
+ 624741.400 3371920.900 32.50000
+ 623616.400 3371858.400 32.50000
+ 623678.900 3371858.400 32.50000
+ 623741.400 3371858.400 32.50000
+ 623491.400 3371795.900 32.50000
+ 623616.400 3371795.900 32.50000
+ 623678.900 3371795.900 32.50000
+ 623741.400 3371795.900 32.50000
+ 623866.400 3371795.900 32.50000
+ 623991.400 3371795.900 32.50000
+ 623616.400 3371733.400 32.50000
+ 623678.900 3371733.400 32.50000
+ 623741.400 3371733.400 32.50000
+ 619741.400 3371670.900 32.50000
+ 619991.400 3371670.900 32.50000
+ 620241.400 3371670.900 32.50000
+ 620491.400 3371670.900 32.50000
+ 620741.400 3371670.900 32.50000
+ 620991.400 3371670.900 32.50000
+ 621241.400 3371670.900 32.50000
+ 621491.400 3371670.900 32.50000
+ 621741.400 3371670.900 32.50000
+ 621991.400 3371670.900 32.50000
+ 622241.400 3371670.900 32.50000
+ 622491.400 3371670.900 32.50000
+ 622741.400 3371670.900 32.50000
+ 622991.400 3371670.900 32.50000
+ 623241.400 3371670.900 32.50000
+ 623491.400 3371670.900 32.50000
+ 623616.400 3371670.900 32.50000
+ 623678.900 3371670.900 32.50000
+ 623741.400 3371670.900 32.50000
+ 623866.400 3371670.900 32.50000
+ 623991.400 3371670.900 32.50000
+ 624241.400 3371670.900 32.50000
+ 624491.400 3371670.900 32.50000
+ 624741.400 3371670.900 32.50000
+ 623616.400 3371608.400 32.50000
+ 623678.900 3371608.400 32.50000
+ 623741.400 3371608.400 32.50000
+ 623491.400 3371545.900 32.50000
+ 623616.400 3371545.900 32.50000
+ 623678.900 3371545.900 32.50000
+ 623741.400 3371545.900 32.50000
+ 623866.400 3371545.900 32.50000
+ 623991.400 3371545.900 32.50000
+ 623616.400 3371483.400 32.50000
+ 623678.900 3371483.400 32.50000
+ 623741.400 3371483.400 32.50000
+ 619741.400 3371420.900 32.50000
+ 619991.400 3371420.900 32.50000
+ 620241.400 3371420.900 32.50000
+ 620491.400 3371420.900 32.50000
+ 620741.400 3371420.900 32.50000
+ 620991.400 3371420.900 32.50000
+ 621241.400 3371420.900 32.50000
+ 621491.400 3371420.900 32.50000
+ 621741.400 3371420.900 32.50000
+ 621991.400 3371420.900 32.50000
+ 622241.400 3371420.900 32.50000
+ 622491.400 3371420.900 32.50000
+ 622741.400 3371420.900 32.50000
+ 622991.400 3371420.900 32.50000
+ 623241.400 3371420.900 32.50000
+ 623491.400 3371420.900 32.50000
+ 623616.400 3371420.900 32.50000
+ 623678.900 3371420.900 32.50000
+ 623741.400 3371420.900 32.50000
+ 623866.400 3371420.900 32.50000
+ 623991.400 3371420.900 32.50000
+ 624241.400 3371420.900 32.50000
+ 624491.400 3371420.900 32.50000
+ 624741.400 3371420.900 32.50000
+ 623616.400 3371358.400 32.50000
+ 623678.900 3371358.400 32.50000
+ 623741.400 3371358.400 32.50000
+ 623491.400 3371295.900 32.50000
+ 623616.400 3371295.900 32.50000
+ 623678.900 3371295.900 32.50000
+ 623741.400 3371295.900 32.50000
+ 623866.400 3371295.900 32.50000
+ 623991.400 3371295.900 32.50000
+ 623616.400 3371233.400 32.50000
+ 623678.900 3371233.400 32.50000
+ 623741.400 3371233.400 32.50000
+ 619741.400 3371170.900 32.50000
+ 619991.400 3371170.900 32.50000
+ 620241.400 3371170.900 32.50000
+ 620491.400 3371170.900 32.50000
+ 620741.400 3371170.900 32.50000
+ 620991.400 3371170.900 32.50000
+ 621241.400 3371170.900 32.50000
+ 621491.400 3371170.900 32.50000
+ 621741.400 3371170.900 32.50000
+ 621991.400 3371170.900 32.50000
+ 622241.400 3371170.900 32.50000
+ 622491.400 3371170.900 32.50000
+ 622741.400 3371170.900 32.50000
+ 622991.400 3371170.900 32.50000
+ 623241.400 3371170.900 32.50000
+ 623491.400 3371170.900 32.50000
+ 623616.400 3371170.900 32.50000
+ 623678.900 3371170.900 32.50000
+ 623741.400 3371170.900 32.50000
+ 623866.400 3371170.900 32.50000
+ 623991.400 3371170.900 32.50000
+ 624241.400 3371170.900 32.50000
+ 624491.400 3371170.900 32.50000
+ 624741.400 3371170.900 32.50000
+ 623616.400 3371108.400 32.50000
+ 623678.900 3371108.400 32.50000
+ 623741.400 3371108.400 32.50000
+ 623491.400 3371045.900 32.50000
+ 623616.400 3371045.900 32.50000
+ 623678.900 3371045.900 32.50000
+ 623741.400 3371045.900 32.50000
+ 623866.400 3371045.900 32.50000
+ 623991.400 3371045.900 32.50000
+ 623616.400 3370983.400 32.50000
+ 623678.900 3370983.400 32.50000
+ 623741.400 3370983.400 32.50000
+ 619741.400 3370920.900 32.50000
+ 619991.400 3370920.900 32.50000
+ 620241.400 3370920.900 32.50000
+ 620491.400 3370920.900 32.50000
+ 620741.400 3370920.900 32.50000
+ 620991.400 3370920.900 32.50000
+ 621241.400 3370920.900 32.50000
+ 621491.400 3370920.900 32.50000
+ 621741.400 3370920.900 32.50000
+ 621991.400 3370920.900 32.50000
+ 622241.400 3370920.900 32.50000
+ 622491.400 3370920.900 32.50000
+ 622741.400 3370920.900 32.50000
+ 622991.400 3370920.900 32.50000
+ 623241.400 3370920.900 32.50000
+ 623491.400 3370920.900 32.50000
+ 623616.400 3370920.900 32.50000
+ 623678.900 3370920.900 32.50000
+ 623741.400 3370920.900 32.50000
+ 623803.900 3370920.900 32.50000
+ 623866.400 3370920.900 32.50000
+ 623928.900 3370920.900 32.50000
+ 623991.400 3370920.900 32.50000
+ 624116.400 3370920.900 32.50000
+ 624241.400 3370920.900 32.50000
+ 624491.400 3370920.900 32.50000
+ 624741.400 3370920.900 32.50000
+ 623616.400 3370858.400 32.50000
+ 623678.900 3370858.400 32.50000
+ 623741.400 3370858.400 32.50000
+ 623803.900 3370858.400 32.50000
+ 623835.150 3370858.400 32.50000
+ 623866.400 3370858.400 32.50000
+ 623897.650 3370858.400 32.50000
+ 623928.900 3370858.400 32.50000
+ 623991.400 3370858.400 32.50000
+ 623803.900 3370827.150 32.50000
+ 623835.150 3370827.150 32.50000
+ 623866.400 3370827.150 32.50000
+ 623897.650 3370827.150 32.50000
+ 623928.900 3370827.150 32.50000
+ 623491.400 3370795.900 32.50000
+ 623616.400 3370795.900 32.50000
+ 623678.900 3370795.900 32.50000
+ 623741.400 3370795.900 32.50000
+ 623803.900 3370795.900 32.50000
+ 623835.150 3370795.900 32.50000
+ 623866.400 3370795.900 32.50000
+ 623897.650 3370795.900 32.50000
+ 623928.900 3370795.900 32.50000
+ 623991.400 3370795.900 32.50000
+ 624116.400 3370795.900 32.50000
+ 624241.400 3370795.900 32.50000
+ 623803.900 3370764.650 32.50000
+ 623835.150 3370764.650 32.50000
+ 623866.400 3370764.650 32.50000
+ 623897.650 3370764.650 32.50000
+ 623928.900 3370764.650 32.50000
+ 623616.400 3370733.400 32.50000
+ 623678.900 3370733.400 32.50000
+ 623741.400 3370733.400 32.50000
+ 623803.900 3370733.400 32.50000
+ 623835.150 3370733.400 32.50000
+ 623866.400 3370733.400 32.50000
+ 623897.650 3370733.400 32.50000
+ 623928.900 3370733.400 32.50000
+ 623991.400 3370733.400 32.50000
+ 619741.400 3370670.900 32.50000
+ 619991.400 3370670.900 32.50000
+ 620241.400 3370670.900 32.50000
+ 620491.400 3370670.900 32.50000
+ 620741.400 3370670.900 32.50000
+ 620991.400 3370670.900 32.50000
+ 621241.400 3370670.900 32.50000
+ 621491.400 3370670.900 32.50000
+ 621741.400 3370670.900 32.50000
+ 621991.400 3370670.900 32.50000
+ 622241.400 3370670.900 32.50000
+ 622491.400 3370670.900 32.50000
+ 622741.400 3370670.900 32.50000
+ 622991.400 3370670.900 32.50000
+ 623116.400 3370670.900 32.50000
+ 623241.400 3370670.900 32.50000
+ 623491.400 3370670.900 32.50000
+ 623616.400 3370670.900 32.50000
+ 623678.900 3370670.900 32.50000
+ 623741.400 3370670.900 32.50000
+ 623803.900 3370670.900 32.50000
+ 623866.400 3370670.900 32.50000
+ 623928.900 3370670.900 32.50000
+ 623991.400 3370670.900 32.50000
+ 624116.400 3370670.900 32.50000
+ 624241.400 3370670.900 32.50000
+ 624491.400 3370670.900 32.50000
+ 624741.400 3370670.900 32.50000
+ 623616.400 3370608.400 32.50000
+ 623678.900 3370608.400 32.50000
+ 623741.400 3370608.400 32.50000
+ 622991.400 3370545.900 32.50000
+ 623116.400 3370545.900 32.50000
+ 623241.400 3370545.900 32.50000
+ 623491.400 3370545.900 32.50000
+ 623616.400 3370545.900 32.50000
+ 623678.900 3370545.900 32.50000
+ 623741.400 3370545.900 32.50000
+ 623866.400 3370545.900 32.50000
+ 623991.400 3370545.900 32.50000
+ 623616.400 3370483.400 32.50000
+ 623678.900 3370483.400 32.50000
+ 623741.400 3370483.400 32.50000
+ 619741.400 3370420.900 32.50000
+ 619991.400 3370420.900 32.50000
+ 620241.400 3370420.900 32.50000
+ 620491.400 3370420.900 32.50000
+ 620741.400 3370420.900 32.50000
+ 620991.400 3370420.900 32.50000
+ 621241.400 3370420.900 32.50000
+ 621491.400 3370420.900 32.50000
+ 621741.400 3370420.900 32.50000
+ 621991.400 3370420.900 32.50000
+ 622241.400 3370420.900 32.50000
+ 622491.400 3370420.900 32.50000
+ 622741.400 3370420.900 32.50000
+ 622866.400 3370420.900 32.50000
+ 622991.400 3370420.900 32.50000
+ 623053.900 3370420.900 32.50000
+ 623116.400 3370420.900 32.50000
+ 623178.900 3370420.900 32.50000
+ 623241.400 3370420.900 32.50000
+ 623366.400 3370420.900 32.50000
+ 623491.400 3370420.900 32.50000
+ 623616.400 3370420.900 32.50000
+ 623678.900 3370420.900 32.50000
+ 623741.400 3370420.900 32.50000
+ 623866.400 3370420.900 32.50000
+ 623991.400 3370420.900 32.50000
+ 624241.400 3370420.900 32.50000
+ 624491.400 3370420.900 32.50000
+ 624741.400 3370420.900 32.50000
+ 622991.400 3370358.400 32.50000
+ 623053.900 3370358.400 32.50000
+ 623085.150 3370358.400 32.50000
+ 623116.400 3370358.400 32.50000
+ 623147.650 3370358.400 32.50000
+ 623178.900 3370358.400 32.50000
+ 623241.400 3370358.400 32.50000
+ 623616.400 3370358.400 32.50000
+ 623678.900 3370358.400 32.50000
+ 623741.400 3370358.400 32.50000
+ 623053.900 3370327.150 32.50000
+ 623085.150 3370327.150 32.50000
+ 623116.400 3370327.150 32.50000
+ 623147.650 3370327.150 32.50000
+ 623178.900 3370327.150 32.50000
+ 622741.400 3370295.900 32.50000
+ 622866.400 3370295.900 32.50000
+ 622991.400 3370295.900 32.50000
+ 623053.900 3370295.900 32.50000
+ 623085.150 3370295.900 32.50000
+ 623116.400 3370295.900 32.50000
+ 623147.650 3370295.900 32.50000
+ 623178.900 3370295.900 32.50000
+ 623241.400 3370295.900 32.50000
+ 623366.400 3370295.900 32.50000
+ 623491.400 3370295.900 32.50000
+ 623616.400 3370295.900 32.50000
+ 623678.900 3370295.900 32.50000
+ 623741.400 3370295.900 32.50000
+ 623866.400 3370295.900 32.50000
+ 623991.400 3370295.900 32.50000
+ 623053.900 3370264.650 32.50000
+ 623085.150 3370264.650 32.50000
+ 623116.400 3370264.650 32.50000
+ 623147.650 3370264.650 32.50000
+ 623178.900 3370264.650 32.50000
+ 622991.400 3370233.400 32.50000
+ 623053.900 3370233.400 32.50000
+ 623085.150 3370233.400 32.50000
+ 623116.400 3370233.400 32.50000
+ 623147.650 3370233.400 32.50000
+ 623178.900 3370233.400 32.50000
+ 623241.400 3370233.400 32.50000
+ 623616.400 3370233.400 32.50000
+ 623678.900 3370233.400 32.50000
+ 623741.400 3370233.400 32.50000
+ 619741.400 3370170.900 32.50000
+ 619991.400 3370170.900 32.50000
+ 620241.400 3370170.900 32.50000
+ 620491.400 3370170.900 32.50000
+ 620741.400 3370170.900 32.50000
+ 620991.400 3370170.900 32.50000
+ 621241.400 3370170.900 32.50000
+ 621491.400 3370170.900 32.50000
+ 621741.400 3370170.900 32.50000
+ 621991.400 3370170.900 32.50000
+ 622241.400 3370170.900 32.50000
+ 622491.400 3370170.900 32.50000
+ 622741.400 3370170.900 32.50000
+ 622866.400 3370170.900 32.50000
+ 622991.400 3370170.900 32.50000
+ 623053.900 3370170.900 32.50000
+ 623116.400 3370170.900 32.50000
+ 623178.900 3370170.900 32.50000
+ 623241.400 3370170.900 32.50000
+ 623366.400 3370170.900 32.50000
+ 623491.400 3370170.900 32.50000
+ 623616.400 3370170.900 32.50000
+ 623678.900 3370170.900 32.50000
+ 623741.400 3370170.900 32.50000
+ 623866.400 3370170.900 32.50000
+ 623991.400 3370170.900 32.50000
+ 624241.400 3370170.900 32.50000
+ 624491.400 3370170.900 32.50000
+ 624741.400 3370170.900 32.50000
+ 623616.400 3370108.400 32.50000
+ 623678.900 3370108.400 32.50000
+ 623741.400 3370108.400 32.50000
+ 622991.400 3370045.900 32.50000
+ 623116.400 3370045.900 32.50000
+ 623241.400 3370045.900 32.50000
+ 623491.400 3370045.900 32.50000
+ 623616.400 3370045.900 32.50000
+ 623678.900 3370045.900 32.50000
+ 623741.400 3370045.900 32.50000
+ 623866.400 3370045.900 32.50000
+ 623991.400 3370045.900 32.50000
+ 623616.400 3369983.400 32.50000
+ 623678.900 3369983.400 32.50000
+ 623741.400 3369983.400 32.50000
+ 619741.400 3369920.900 32.50000
+ 619991.400 3369920.900 32.50000
+ 620241.400 3369920.900 32.50000
+ 620491.400 3369920.900 32.50000
+ 620741.400 3369920.900 32.50000
+ 620991.400 3369920.900 32.50000
+ 621241.400 3369920.900 32.50000
+ 621491.400 3369920.900 32.50000
+ 621741.400 3369920.900 32.50000
+ 621991.400 3369920.900 32.50000
+ 622241.400 3369920.900 32.50000
+ 622491.400 3369920.900 32.50000
+ 622741.400 3369920.900 32.50000
+ 622991.400 3369920.900 32.50000
+ 623116.400 3369920.900 32.50000
+ 623241.400 3369920.900 32.50000
+ 623491.400 3369920.900 32.50000
+ 623616.400 3369920.900 32.50000
+ 623678.900 3369920.900 32.50000
+ 623741.400 3369920.900 32.50000
+ 623866.400 3369920.900 32.50000
+ 623991.400 3369920.900 32.50000
+ 624241.400 3369920.900 32.50000
+ 624491.400 3369920.900 32.50000
+ 624741.400 3369920.900 32.50000
+ 623616.400 3369858.400 32.50000
+ 623678.900 3369858.400 32.50000
+ 623741.400 3369858.400 32.50000
+ 623491.400 3369795.900 32.50000
+ 623616.400 3369795.900 32.50000
+ 623678.900 3369795.900 32.50000
+ 623741.400 3369795.900 32.50000
+ 623866.400 3369795.900 32.50000
+ 623991.400 3369795.900 32.50000
+ 623616.400 3369733.400 32.50000
+ 623678.900 3369733.400 32.50000
+ 623741.400 3369733.400 32.50000
+ 619741.400 3369670.900 32.50000
+ 619991.400 3369670.900 32.50000
+ 620241.400 3369670.900 32.50000
+ 620491.400 3369670.900 32.50000
+ 620741.400 3369670.900 32.50000
+ 620991.400 3369670.900 32.50000
+ 621241.400 3369670.900 32.50000
+ 621491.400 3369670.900 32.50000
+ 621741.400 3369670.900 32.50000
+ 621991.400 3369670.900 32.50000
+ 622241.400 3369670.900 32.50000
+ 622491.400 3369670.900 32.50000
+ 622741.400 3369670.900 32.50000
+ 622991.400 3369670.900 32.50000
+ 623241.400 3369670.900 32.50000
+ 623491.400 3369670.900 32.50000
+ 623616.400 3369670.900 32.50000
+ 623678.900 3369670.900 32.50000
+ 623741.400 3369670.900 32.50000
+ 623866.400 3369670.900 32.50000
+ 623991.400 3369670.900 32.50000
+ 624241.400 3369670.900 32.50000
+ 624491.400 3369670.900 32.50000
+ 624741.400 3369670.900 32.50000
+ 623616.400 3369608.400 32.50000
+ 623678.900 3369608.400 32.50000
+ 623741.400 3369608.400 32.50000
+ 623491.400 3369545.900 32.50000
+ 623616.400 3369545.900 32.50000
+ 623678.900 3369545.900 32.50000
+ 623741.400 3369545.900 32.50000
+ 623866.400 3369545.900 32.50000
+ 623991.400 3369545.900 32.50000
+ 623616.400 3369483.400 32.50000
+ 623678.900 3369483.400 32.50000
+ 623741.400 3369483.400 32.50000
+ 619741.400 3369420.900 32.50000
+ 619991.400 3369420.900 32.50000
+ 620241.400 3369420.900 32.50000
+ 620491.400 3369420.900 32.50000
+ 620741.400 3369420.900 32.50000
+ 620991.400 3369420.900 32.50000
+ 621241.400 3369420.900 32.50000
+ 621491.400 3369420.900 32.50000
+ 621741.400 3369420.900 32.50000
+ 621991.400 3369420.900 32.50000
+ 622241.400 3369420.900 32.50000
+ 622491.400 3369420.900 32.50000
+ 622741.400 3369420.900 32.50000
+ 622991.400 3369420.900 32.50000
+ 623241.400 3369420.900 32.50000
+ 623491.400 3369420.900 32.50000
+ 623616.400 3369420.900 32.50000
+ 623678.900 3369420.900 32.50000
+ 623741.400 3369420.900 32.50000
+ 623866.400 3369420.900 32.50000
+ 623991.400 3369420.900 32.50000
+ 624241.400 3369420.900 32.50000
+ 624491.400 3369420.900 32.50000
+ 624741.400 3369420.900 32.50000
+ 623616.400 3369358.400 32.50000
+ 623678.900 3369358.400 32.50000
+ 623741.400 3369358.400 32.50000
+ 623491.400 3369295.900 32.50000
+ 623616.400 3369295.900 32.50000
+ 623678.900 3369295.900 32.50000
+ 623741.400 3369295.900 32.50000
+ 623866.400 3369295.900 32.50000
+ 623991.400 3369295.900 32.50000
+ 623616.400 3369233.400 32.50000
+ 623678.900 3369233.400 32.50000
+ 623741.400 3369233.400 32.50000
+ 619741.400 3369170.900 32.50000
+ 619991.400 3369170.900 32.50000
+ 620241.400 3369170.900 32.50000
+ 620491.400 3369170.900 32.50000
+ 620741.400 3369170.900 32.50000
+ 620991.400 3369170.900 32.50000
+ 621241.400 3369170.900 32.50000
+ 621491.400 3369170.900 32.50000
+ 621741.400 3369170.900 32.50000
+ 621991.400 3369170.900 32.50000
+ 622241.400 3369170.900 32.50000
+ 622491.400 3369170.900 32.50000
+ 622741.400 3369170.900 32.50000
+ 622991.400 3369170.900 32.50000
+ 623241.400 3369170.900 32.50000
+ 623491.400 3369170.900 32.50000
+ 623616.400 3369170.900 32.50000
+ 623678.900 3369170.900 32.50000
+ 623741.400 3369170.900 32.50000
+ 623866.400 3369170.900 32.50000
+ 623991.400 3369170.900 32.50000
+ 624241.400 3369170.900 32.50000
+ 624491.400 3369170.900 32.50000
+ 624741.400 3369170.900 32.50000
+ 623616.400 3369108.400 32.50000
+ 623678.900 3369108.400 32.50000
+ 623741.400 3369108.400 32.50000
+ 623491.400 3369045.900 32.50000
+ 623616.400 3369045.900 32.50000
+ 623678.900 3369045.900 32.50000
+ 623741.400 3369045.900 32.50000
+ 623866.400 3369045.900 32.50000
+ 623991.400 3369045.900 32.50000
+ 623616.400 3368983.400 32.50000
+ 623678.900 3368983.400 32.50000
+ 623741.400 3368983.400 32.50000
+ 619741.400 3368920.900 32.50000
+ 619991.400 3368920.900 32.50000
+ 620241.400 3368920.900 32.50000
+ 620491.400 3368920.900 32.50000
+ 620741.400 3368920.900 32.50000
+ 620991.400 3368920.900 32.50000
+ 621241.400 3368920.900 32.50000
+ 621491.400 3368920.900 32.50000
+ 621741.400 3368920.900 32.50000
+ 621991.400 3368920.900 32.50000
+ 622241.400 3368920.900 32.50000
+ 622491.400 3368920.900 32.50000
+ 622741.400 3368920.900 32.50000
+ 622991.400 3368920.900 32.50000
+ 623241.400 3368920.900 32.50000
+ 623491.400 3368920.900 32.50000
+ 623616.400 3368920.900 32.50000
+ 623678.900 3368920.900 32.50000
+ 623741.400 3368920.900 32.50000
+ 623866.400 3368920.900 32.50000
+ 623991.400 3368920.900 32.50000
+ 624241.400 3368920.900 32.50000
+ 624491.400 3368920.900 32.50000
+ 624741.400 3368920.900 32.50000
+ 623616.400 3368858.400 32.50000
+ 623678.900 3368858.400 32.50000
+ 623741.400 3368858.400 32.50000
+ 623491.400 3368795.900 32.50000
+ 623616.400 3368795.900 32.50000
+ 623678.900 3368795.900 32.50000
+ 623741.400 3368795.900 32.50000
+ 623866.400 3368795.900 32.50000
+ 623991.400 3368795.900 32.50000
+ 623616.400 3368733.400 32.50000
+ 623678.900 3368733.400 32.50000
+ 623741.400 3368733.400 32.50000
+ 619741.400 3368670.900 32.50000
+ 619991.400 3368670.900 32.50000
+ 620241.400 3368670.900 32.50000
+ 620491.400 3368670.900 32.50000
+ 620741.400 3368670.900 32.50000
+ 620991.400 3368670.900 32.50000
+ 621241.400 3368670.900 32.50000
+ 621491.400 3368670.900 32.50000
+ 621741.400 3368670.900 32.50000
+ 621991.400 3368670.900 32.50000
+ 622241.400 3368670.900 32.50000
+ 622491.400 3368670.900 32.50000
+ 622741.400 3368670.900 32.50000
+ 622991.400 3368670.900 32.50000
+ 623241.400 3368670.900 32.50000
+ 623491.400 3368670.900 32.50000
+ 623616.400 3368670.900 32.50000
+ 623678.900 3368670.900 32.50000
+ 623741.400 3368670.900 32.50000
+ 623866.400 3368670.900 32.50000
+ 623991.400 3368670.900 32.50000
+ 624241.400 3368670.900 32.50000
+ 624491.400 3368670.900 32.50000
+ 624741.400 3368670.900 32.50000
+ 623616.400 3368608.400 32.50000
+ 623678.900 3368608.400 32.50000
+ 623741.400 3368608.400 32.50000
+ 623491.400 3368545.900 32.50000
+ 623616.400 3368545.900 32.50000
+ 623678.900 3368545.900 32.50000
+ 623741.400 3368545.900 32.50000
+ 623866.400 3368545.900 32.50000
+ 623991.400 3368545.900 32.50000
+ 623616.400 3368483.400 32.50000
+ 623678.900 3368483.400 32.50000
+ 623741.400 3368483.400 32.50000
+ 619741.400 3368420.900 32.50000
+ 619991.400 3368420.900 32.50000
+ 620241.400 3368420.900 32.50000
+ 620491.400 3368420.900 32.50000
+ 620741.400 3368420.900 32.50000
+ 620991.400 3368420.900 32.50000
+ 621241.400 3368420.900 32.50000
+ 621491.400 3368420.900 32.50000
+ 621741.400 3368420.900 32.50000
+ 621991.400 3368420.900 32.50000
+ 622241.400 3368420.900 32.50000
+ 622491.400 3368420.900 32.50000
+ 622741.400 3368420.900 32.50000
+ 622991.400 3368420.900 32.50000
+ 623241.400 3368420.900 32.50000
+ 623366.400 3368420.900 32.50000
+ 623491.400 3368420.900 32.50000
+ 623616.400 3368420.900 32.50000
+ 623678.900 3368420.900 32.50000
+ 623741.400 3368420.900 32.50000
+ 623866.400 3368420.900 32.50000
+ 623991.400 3368420.900 32.50000
+ 624241.400 3368420.900 32.50000
+ 624491.400 3368420.900 32.50000
+ 624741.400 3368420.900 32.50000
+ 623616.400 3368358.400 32.50000
+ 623678.900 3368358.400 32.50000
+ 623741.400 3368358.400 32.50000
+ 623241.400 3368295.900 32.50000
+ 623366.400 3368295.900 32.50000
+ 623491.400 3368295.900 32.50000
+ 623616.400 3368295.900 32.50000
+ 623678.900 3368295.900 32.50000
+ 623741.400 3368295.900 32.50000
+ 623866.400 3368295.900 32.50000
+ 623991.400 3368295.900 32.50000
+ 623616.400 3368233.400 32.50000
+ 623678.900 3368233.400 32.50000
+ 623741.400 3368233.400 32.50000
+ 619741.400 3368170.900 32.50000
+ 619991.400 3368170.900 32.50000
+ 620241.400 3368170.900 32.50000
+ 620491.400 3368170.900 32.50000
+ 620741.400 3368170.900 32.50000
+ 620991.400 3368170.900 32.50000
+ 621241.400 3368170.900 32.50000
+ 621491.400 3368170.900 32.50000
+ 621741.400 3368170.900 32.50000
+ 621991.400 3368170.900 32.50000
+ 622241.400 3368170.900 32.50000
+ 622491.400 3368170.900 32.50000
+ 622741.400 3368170.900 32.50000
+ 622991.400 3368170.900 32.50000
+ 623116.400 3368170.900 32.50000
+ 623241.400 3368170.900 32.50000
+ 623303.900 3368170.900 32.50000
+ 623366.400 3368170.900 32.50000
+ 623428.900 3368170.900 32.50000
+ 623491.400 3368170.900 32.50000
+ 623616.400 3368170.900 32.50000
+ 623678.900 3368170.900 32.50000
+ 623741.400 3368170.900 32.50000
+ 623866.400 3368170.900 32.50000
+ 623991.400 3368170.900 32.50000
+ 624241.400 3368170.900 32.50000
+ 624491.400 3368170.900 32.50000
+ 624741.400 3368170.900 32.50000
+ 623241.400 3368108.400 32.50000
+ 623303.900 3368108.400 32.50000
+ 623335.150 3368108.400 32.50000
+ 623366.400 3368108.400 32.50000
+ 623397.650 3368108.400 32.50000
+ 623428.900 3368108.400 32.50000
+ 623491.400 3368108.400 32.50000
+ 623616.400 3368108.400 32.50000
+ 623678.900 3368108.400 32.50000
+ 623741.400 3368108.400 32.50000
+ 623303.900 3368077.150 32.50000
+ 623335.150 3368077.150 32.50000
+ 623366.400 3368077.150 32.50000
+ 623397.650 3368077.150 32.50000
+ 623428.900 3368077.150 32.50000
+ 622991.400 3368045.900 32.50000
+ 623116.400 3368045.900 32.50000
+ 623241.400 3368045.900 32.50000
+ 623303.900 3368045.900 32.50000
+ 623335.150 3368045.900 32.50000
+ 623366.400 3368045.900 32.50000
+ 623397.650 3368045.900 32.50000
+ 623428.900 3368045.900 32.50000
+ 623491.400 3368045.900 32.50000
+ 623616.400 3368045.900 32.50000
+ 623678.900 3368045.900 32.50000
+ 623741.400 3368045.900 32.50000
+ 623866.400 3368045.900 32.50000
+ 623991.400 3368045.900 32.50000
+ 623303.900 3368014.650 32.50000
+ 623335.150 3368014.650 32.50000
+ 623366.400 3368014.650 32.50000
+ 623397.650 3368014.650 32.50000
+ 623428.900 3368014.650 32.50000
+ 623241.400 3367983.400 32.50000
+ 623303.900 3367983.400 32.50000
+ 623335.150 3367983.400 32.50000
+ 623366.400 3367983.400 32.50000
+ 623397.650 3367983.400 32.50000
+ 623428.900 3367983.400 32.50000
+ 623491.400 3367983.400 32.50000
+ 623616.400 3367983.400 32.50000
+ 623678.900 3367983.400 32.50000
+ 623741.400 3367983.400 32.50000
+ 619741.400 3367920.900 32.50000
+ 619991.400 3367920.900 32.50000
+ 620241.400 3367920.900 32.50000
+ 620491.400 3367920.900 32.50000
+ 620741.400 3367920.900 32.50000
+ 620991.400 3367920.900 32.50000
+ 621241.400 3367920.900 32.50000
+ 621491.400 3367920.900 32.50000
+ 621741.400 3367920.900 32.50000
+ 621991.400 3367920.900 32.50000
+ 622241.400 3367920.900 32.50000
+ 622491.400 3367920.900 32.50000
+ 622741.400 3367920.900 32.50000
+ 622991.400 3367920.900 32.50000
+ 623116.400 3367920.900 32.50000
+ 623241.400 3367920.900 32.50000
+ 623303.900 3367920.900 32.50000
+ 623366.400 3367920.900 32.50000
+ 623428.900 3367920.900 32.50000
+ 623491.400 3367920.900 32.50000
+ 623616.400 3367920.900 32.50000
+ 623678.900 3367920.900 32.50000
+ 623741.400 3367920.900 32.50000
+ 623866.400 3367920.900 32.50000
+ 623991.400 3367920.900 32.50000
+ 624241.400 3367920.900 32.50000
+ 624491.400 3367920.900 32.50000
+ 624741.400 3367920.900 32.50000
+ 623616.400 3367858.400 32.50000
+ 623678.900 3367858.400 32.50000
+ 623741.400 3367858.400 32.50000
+ 623241.400 3367795.900 32.50000
+ 623366.400 3367795.900 32.50000
+ 623491.400 3367795.900 32.50000
+ 623616.400 3367795.900 32.50000
+ 623678.900 3367795.900 32.50000
+ 623741.400 3367795.900 32.50000
+ 623866.400 3367795.900 32.50000
+ 623991.400 3367795.900 32.50000
+ 623616.400 3367733.400 32.50000
+ 623678.900 3367733.400 32.50000
+ 623741.400 3367733.400 32.50000
+ 619741.400 3367670.900 32.50000
+ 619991.400 3367670.900 32.50000
+ 620241.400 3367670.900 32.50000
+ 620491.400 3367670.900 32.50000
+ 620741.400 3367670.900 32.50000
+ 620991.400 3367670.900 32.50000
+ 621241.400 3367670.900 32.50000
+ 621491.400 3367670.900 32.50000
+ 621741.400 3367670.900 32.50000
+ 621991.400 3367670.900 32.50000
+ 622241.400 3367670.900 32.50000
+ 622491.400 3367670.900 32.50000
+ 622741.400 3367670.900 32.50000
+ 622991.400 3367670.900 32.50000
+ 623241.400 3367670.900 32.50000
+ 623366.400 3367670.900 32.50000
+ 623491.400 3367670.900 32.50000
+ 623616.400 3367670.900 32.50000
+ 623678.900 3367670.900 32.50000
+ 623741.400 3367670.900 32.50000
+ 623866.400 3367670.900 32.50000
+ 623991.400 3367670.900 32.50000
+ 624241.400 3367670.900 32.50000
+ 624491.400 3367670.900 32.50000
+ 624741.400 3367670.900 32.50000
+ 623616.400 3367608.400 32.50000
+ 623678.900 3367608.400 32.50000
+ 623741.400 3367608.400 32.50000
+ 623491.400 3367545.900 32.50000
+ 623616.400 3367545.900 32.50000
+ 623678.900 3367545.900 32.50000
+ 623741.400 3367545.900 32.50000
+ 623866.400 3367545.900 32.50000
+ 623991.400 3367545.900 32.50000
+ 623616.400 3367483.400 32.50000
+ 623678.900 3367483.400 32.50000
+ 623741.400 3367483.400 32.50000
+ 619741.400 3367420.900 32.50000
+ 619991.400 3367420.900 32.50000
+ 620241.400 3367420.900 32.50000
+ 620491.400 3367420.900 32.50000
+ 620741.400 3367420.900 32.50000
+ 620991.400 3367420.900 32.50000
+ 621241.400 3367420.900 32.50000
+ 621491.400 3367420.900 32.50000
+ 621741.400 3367420.900 32.50000
+ 621991.400 3367420.900 32.50000
+ 622241.400 3367420.900 32.50000
+ 622491.400 3367420.900 32.50000
+ 622741.400 3367420.900 32.50000
+ 622991.400 3367420.900 32.50000
+ 623241.400 3367420.900 32.50000
+ 623491.400 3367420.900 32.50000
+ 623616.400 3367420.900 32.50000
+ 623678.900 3367420.900 32.50000
+ 623741.400 3367420.900 32.50000
+ 623866.400 3367420.900 32.50000
+ 623991.400 3367420.900 32.50000
+ 624241.400 3367420.900 32.50000
+ 624491.400 3367420.900 32.50000
+ 624741.400 3367420.900 32.50000
+ 623616.400 3367358.400 32.50000
+ 623678.900 3367358.400 32.50000
+ 623741.400 3367358.400 32.50000
+ 623491.400 3367295.900 32.50000
+ 623616.400 3367295.900 32.50000
+ 623678.900 3367295.900 32.50000
+ 623741.400 3367295.900 32.50000
+ 623866.400 3367295.900 32.50000
+ 623991.400 3367295.900 32.50000
+ 623616.400 3367233.400 32.50000
+ 623678.900 3367233.400 32.50000
+ 623741.400 3367233.400 32.50000
+ 619741.400 3367170.900 32.50000
+ 619991.400 3367170.900 32.50000
+ 620241.400 3367170.900 32.50000
+ 620491.400 3367170.900 32.50000
+ 620741.400 3367170.900 32.50000
+ 620991.400 3367170.900 32.50000
+ 621241.400 3367170.900 32.50000
+ 621491.400 3367170.900 32.50000
+ 621741.400 3367170.900 32.50000
+ 621991.400 3367170.900 32.50000
+ 622241.400 3367170.900 32.50000
+ 622491.400 3367170.900 32.50000
+ 622741.400 3367170.900 32.50000
+ 622991.400 3367170.900 32.50000
+ 623241.400 3367170.900 32.50000
+ 623491.400 3367170.900 32.50000
+ 623616.400 3367170.900 32.50000
+ 623678.900 3367170.900 32.50000
+ 623741.400 3367170.900 32.50000
+ 623866.400 3367170.900 32.50000
+ 623991.400 3367170.900 32.50000
+ 624241.400 3367170.900 32.50000
+ 624491.400 3367170.900 32.50000
+ 624741.400 3367170.900 32.50000
+ 623616.400 3367108.400 32.50000
+ 623678.900 3367108.400 32.50000
+ 623741.400 3367108.400 32.50000
+ 623491.400 3367045.900 32.50000
+ 623616.400 3367045.900 32.50000
+ 623678.900 3367045.900 32.50000
+ 623741.400 3367045.900 32.50000
+ 623866.400 3367045.900 32.50000
+ 623991.400 3367045.900 32.50000
+ 623616.400 3366983.400 32.50000
+ 623678.900 3366983.400 32.50000
+ 623741.400 3366983.400 32.50000
+ 619741.400 3366920.900 32.50000
+ 619991.400 3366920.900 32.50000
+ 620241.400 3366920.900 32.50000
+ 620491.400 3366920.900 32.50000
+ 620741.400 3366920.900 32.50000
+ 620991.400 3366920.900 32.50000
+ 621241.400 3366920.900 32.50000
+ 621491.400 3366920.900 32.50000
+ 621741.400 3366920.900 32.50000
+ 621991.400 3366920.900 32.50000
+ 622241.400 3366920.900 32.50000
+ 622366.400 3366920.900 32.50000
+ 622491.400 3366920.900 32.50000
+ 622741.400 3366920.900 32.50000
+ 622991.400 3366920.900 32.50000
+ 623241.400 3366920.900 32.50000
+ 623491.400 3366920.900 32.50000
+ 623616.400 3366920.900 32.50000
+ 623678.900 3366920.900 32.50000
+ 623741.400 3366920.900 32.50000
+ 623866.400 3366920.900 32.50000
+ 623991.400 3366920.900 32.50000
+ 624241.400 3366920.900 32.50000
+ 624491.400 3366920.900 32.50000
+ 624741.400 3366920.900 32.50000
+ 623616.400 3366858.400 32.50000
+ 623678.900 3366858.400 32.50000
+ 623741.400 3366858.400 32.50000
+ 622241.400 3366795.900 32.50000
+ 622366.400 3366795.900 32.50000
+ 622491.400 3366795.900 32.50000
+ 623491.400 3366795.900 32.50000
+ 623616.400 3366795.900 32.50000
+ 623678.900 3366795.900 32.50000
+ 623741.400 3366795.900 32.50000
+ 623866.400 3366795.900 32.50000
+ 623991.400 3366795.900 32.50000
+ 623616.400 3366733.400 32.50000
+ 623678.900 3366733.400 32.50000
+ 623741.400 3366733.400 32.50000
+ 619741.400 3366670.900 32.50000
+ 619991.400 3366670.900 32.50000
+ 620241.400 3366670.900 32.50000
+ 620491.400 3366670.900 32.50000
+ 620741.400 3366670.900 32.50000
+ 620991.400 3366670.900 32.50000
+ 621241.400 3366670.900 32.50000
+ 621491.400 3366670.900 32.50000
+ 621741.400 3366670.900 32.50000
+ 621991.400 3366670.900 32.50000
+ 622116.400 3366670.900 32.50000
+ 622241.400 3366670.900 32.50000
+ 622303.900 3366670.900 32.50000
+ 622366.400 3366670.900 32.50000
+ 622428.900 3366670.900 32.50000
+ 622491.400 3366670.900 32.50000
+ 622616.400 3366670.900 32.50000
+ 622741.400 3366670.900 32.50000
+ 622991.400 3366670.900 32.50000
+ 623241.400 3366670.900 32.50000
+ 623491.400 3366670.900 32.50000
+ 623616.400 3366670.900 32.50000
+ 623678.900 3366670.900 32.50000
+ 623741.400 3366670.900 32.50000
+ 623866.400 3366670.900 32.50000
+ 623991.400 3366670.900 32.50000
+ 624241.400 3366670.900 32.50000
+ 624491.400 3366670.900 32.50000
+ 624741.400 3366670.900 32.50000
+ 622241.400 3366608.400 32.50000
+ 622303.900 3366608.400 32.50000
+ 622335.150 3366608.400 32.50000
+ 622366.400 3366608.400 32.50000
+ 622397.650 3366608.400 32.50000
+ 622428.900 3366608.400 32.50000
+ 622491.400 3366608.400 32.50000
+ 623616.400 3366608.400 32.50000
+ 623678.900 3366608.400 32.50000
+ 623741.400 3366608.400 32.50000
+ 622303.900 3366577.150 32.50000
+ 622335.150 3366577.150 32.50000
+ 622366.400 3366577.150 32.50000
+ 622397.650 3366577.150 32.50000
+ 622428.900 3366577.150 32.50000
+ 621991.400 3366545.900 32.50000
+ 622116.400 3366545.900 32.50000
+ 622241.400 3366545.900 32.50000
+ 622303.900 3366545.900 32.50000
+ 622335.150 3366545.900 32.50000
+ 622366.400 3366545.900 32.50000
+ 622397.650 3366545.900 32.50000
+ 622428.900 3366545.900 32.50000
+ 622491.400 3366545.900 32.50000
+ 622616.400 3366545.900 32.50000
+ 622741.400 3366545.900 32.50000
+ 623491.400 3366545.900 32.50000
+ 623616.400 3366545.900 32.50000
+ 623678.900 3366545.900 32.50000
+ 623741.400 3366545.900 32.50000
+ 623866.400 3366545.900 32.50000
+ 623991.400 3366545.900 32.50000
+ 622303.900 3366514.650 32.50000
+ 622335.150 3366514.650 32.50000
+ 622366.400 3366514.650 32.50000
+ 622397.650 3366514.650 32.50000
+ 622428.900 3366514.650 32.50000
+ 622241.400 3366483.400 32.50000
+ 622303.900 3366483.400 32.50000
+ 622335.150 3366483.400 32.50000
+ 622366.400 3366483.400 32.50000
+ 622397.650 3366483.400 32.50000
+ 622428.900 3366483.400 32.50000
+ 622491.400 3366483.400 32.50000
+ 623616.400 3366483.400 32.50000
+ 623678.900 3366483.400 32.50000
+ 623741.400 3366483.400 32.50000
+ 619741.400 3366420.900 32.50000
+ 619991.400 3366420.900 32.50000
+ 620241.400 3366420.900 32.50000
+ 620491.400 3366420.900 32.50000
+ 620741.400 3366420.900 32.50000
+ 620991.400 3366420.900 32.50000
+ 621241.400 3366420.900 32.50000
+ 621491.400 3366420.900 32.50000
+ 621741.400 3366420.900 32.50000
+ 621991.400 3366420.900 32.50000
+ 622116.400 3366420.900 32.50000
+ 622241.400 3366420.900 32.50000
+ 622303.900 3366420.900 32.50000
+ 622366.400 3366420.900 32.50000
+ 622428.900 3366420.900 32.50000
+ 622491.400 3366420.900 32.50000
+ 622616.400 3366420.900 32.50000
+ 622741.400 3366420.900 32.50000
+ 622991.400 3366420.900 32.50000
+ 623241.400 3366420.900 32.50000
+ 623491.400 3366420.900 32.50000
+ 623616.400 3366420.900 32.50000
+ 623678.900 3366420.900 32.50000
+ 623741.400 3366420.900 32.50000
+ 623866.400 3366420.900 32.50000
+ 623991.400 3366420.900 32.50000
+ 624241.400 3366420.900 32.50000
+ 624491.400 3366420.900 32.50000
+ 624741.400 3366420.900 32.50000
+ 623616.400 3366358.400 32.50000
+ 623678.900 3366358.400 32.50000
+ 623741.400 3366358.400 32.50000
+ 622241.400 3366295.900 32.50000
+ 622366.400 3366295.900 32.50000
+ 622491.400 3366295.900 32.50000
+ 623491.400 3366295.900 32.50000
+ 623616.400 3366295.900 32.50000
+ 623678.900 3366295.900 32.50000
+ 623741.400 3366295.900 32.50000
+ 623866.400 3366295.900 32.50000
+ 623991.400 3366295.900 32.50000
+ 623616.400 3366233.400 32.50000
+ 623678.900 3366233.400 32.50000
+ 623741.400 3366233.400 32.50000
+ 619741.400 3366170.900 32.50000
+ 619991.400 3366170.900 32.50000
+ 620241.400 3366170.900 32.50000
+ 620491.400 3366170.900 32.50000
+ 620741.400 3366170.900 32.50000
+ 620991.400 3366170.900 32.50000
+ 621241.400 3366170.900 32.50000
+ 621366.400 3366170.900 32.50000
+ 621491.400 3366170.900 32.50000
+ 621741.400 3366170.900 32.50000
+ 621991.400 3366170.900 32.50000
+ 622241.400 3366170.900 32.50000
+ 622366.400 3366170.900 32.50000
+ 622491.400 3366170.900 32.50000
+ 622741.400 3366170.900 32.50000
+ 622991.400 3366170.900 32.50000
+ 623241.400 3366170.900 32.50000
+ 623491.400 3366170.900 32.50000
+ 623616.400 3366170.900 32.50000
+ 623678.900 3366170.900 32.50000
+ 623741.400 3366170.900 32.50000
+ 623866.400 3366170.900 32.50000
+ 623991.400 3366170.900 32.50000
+ 624241.400 3366170.900 32.50000
+ 624491.400 3366170.900 32.50000
+ 624741.400 3366170.900 32.50000
+ 623616.400 3366108.400 32.50000
+ 623678.900 3366108.400 32.50000
+ 623741.400 3366108.400 32.50000
+ 621241.400 3366045.900 32.50000
+ 621366.400 3366045.900 32.50000
+ 621491.400 3366045.900 32.50000
+ 623491.400 3366045.900 32.50000
+ 623616.400 3366045.900 32.50000
+ 623678.900 3366045.900 32.50000
+ 623741.400 3366045.900 32.50000
+ 623866.400 3366045.900 32.50000
+ 623991.400 3366045.900 32.50000
+ 623616.400 3365983.400 32.50000
+ 623678.900 3365983.400 32.50000
+ 623741.400 3365983.400 32.50000
+ 619741.400 3365920.900 32.50000
+ 619991.400 3365920.900 32.50000
+ 620241.400 3365920.900 32.50000
+ 620491.400 3365920.900 32.50000
+ 620741.400 3365920.900 32.50000
+ 620991.400 3365920.900 32.50000
+ 621116.400 3365920.900 32.50000
+ 621241.400 3365920.900 32.50000
+ 621303.900 3365920.900 32.50000
+ 621366.400 3365920.900 32.50000
+ 621428.900 3365920.900 32.50000
+ 621491.400 3365920.900 32.50000
+ 621616.400 3365920.900 32.50000
+ 621741.400 3365920.900 32.50000
+ 621991.400 3365920.900 32.50000
+ 622241.400 3365920.900 32.50000
+ 622491.400 3365920.900 32.50000
+ 622741.400 3365920.900 32.50000
+ 622991.400 3365920.900 32.50000
+ 623241.400 3365920.900 32.50000
+ 623491.400 3365920.900 32.50000
+ 623616.400 3365920.900 32.50000
+ 623678.900 3365920.900 32.50000
+ 623741.400 3365920.900 32.50000
+ 623866.400 3365920.900 32.50000
+ 623991.400 3365920.900 32.50000
+ 624241.400 3365920.900 32.50000
+ 624491.400 3365920.900 32.50000
+ 624741.400 3365920.900 32.50000
+ 621241.400 3365858.400 32.50000
+ 621303.900 3365858.400 32.50000
+ 621335.150 3365858.400 32.50000
+ 621366.400 3365858.400 32.50000
+ 621397.650 3365858.400 32.50000
+ 621428.900 3365858.400 32.50000
+ 621491.400 3365858.400 32.50000
+ 623616.400 3365858.400 32.50000
+ 623678.900 3365858.400 32.50000
+ 623741.400 3365858.400 32.50000
+ 621303.900 3365827.150 32.50000
+ 621335.150 3365827.150 32.50000
+ 621366.400 3365827.150 32.50000
+ 621397.650 3365827.150 32.50000
+ 621428.900 3365827.150 32.50000
+ 620991.400 3365795.900 32.50000
+ 621116.400 3365795.900 32.50000
+ 621241.400 3365795.900 32.50000
+ 621303.900 3365795.900 32.50000
+ 621335.150 3365795.900 32.50000
+ 621366.400 3365795.900 32.50000
+ 621397.650 3365795.900 32.50000
+ 621428.900 3365795.900 32.50000
+ 621491.400 3365795.900 32.50000
+ 621616.400 3365795.900 32.50000
+ 621741.400 3365795.900 32.50000
+ 623491.400 3365795.900 32.50000
+ 623616.400 3365795.900 32.50000
+ 623678.900 3365795.900 32.50000
+ 623741.400 3365795.900 32.50000
+ 623866.400 3365795.900 32.50000
+ 623991.400 3365795.900 32.50000
+ 621303.900 3365764.650 32.50000
+ 621335.150 3365764.650 32.50000
+ 621366.400 3365764.650 32.50000
+ 621397.650 3365764.650 32.50000
+ 621428.900 3365764.650 32.50000
+ 621241.400 3365733.400 32.50000
+ 621303.900 3365733.400 32.50000
+ 621335.150 3365733.400 32.50000
+ 621366.400 3365733.400 32.50000
+ 621397.650 3365733.400 32.50000
+ 621428.900 3365733.400 32.50000
+ 621491.400 3365733.400 32.50000
+ 623616.400 3365733.400 32.50000
+ 623678.900 3365733.400 32.50000
+ 623741.400 3365733.400 32.50000
+ 619741.400 3365670.900 32.50000
+ 619991.400 3365670.900 32.50000
+ 620241.400 3365670.900 32.50000
+ 620491.400 3365670.900 32.50000
+ 620741.400 3365670.900 32.50000
+ 620991.400 3365670.900 32.50000
+ 621116.400 3365670.900 32.50000
+ 621241.400 3365670.900 32.50000
+ 621303.900 3365670.900 32.50000
+ 621366.400 3365670.900 32.50000
+ 621428.900 3365670.900 32.50000
+ 621491.400 3365670.900 32.50000
+ 621616.400 3365670.900 32.50000
+ 621741.400 3365670.900 32.50000
+ 621991.400 3365670.900 32.50000
+ 622241.400 3365670.900 32.50000
+ 622491.400 3365670.900 32.50000
+ 622741.400 3365670.900 32.50000
+ 622991.400 3365670.900 32.50000
+ 623241.400 3365670.900 32.50000
+ 623491.400 3365670.900 32.50000
+ 623616.400 3365670.900 32.50000
+ 623678.900 3365670.900 32.50000
+ 623741.400 3365670.900 32.50000
+ 623866.400 3365670.900 32.50000
+ 623991.400 3365670.900 32.50000
+ 624241.400 3365670.900 32.50000
+ 624491.400 3365670.900 32.50000
+ 624741.400 3365670.900 32.50000
+ 623616.400 3365608.400 32.50000
+ 623678.900 3365608.400 32.50000
+ 623741.400 3365608.400 32.50000
+ 621241.400 3365545.900 32.50000
+ 621366.400 3365545.900 32.50000
+ 621491.400 3365545.900 32.50000
+ 623491.400 3365545.900 32.50000
+ 623616.400 3365545.900 32.50000
+ 623678.900 3365545.900 32.50000
+ 623741.400 3365545.900 32.50000
+ 623866.400 3365545.900 32.50000
+ 623991.400 3365545.900 32.50000
+ 623616.400 3365483.400 32.50000
+ 623678.900 3365483.400 32.50000
+ 623741.400 3365483.400 32.50000
+ 619741.400 3365420.900 32.50000
+ 619991.400 3365420.900 32.50000
+ 620241.400 3365420.900 32.50000
+ 620491.400 3365420.900 32.50000
+ 620741.400 3365420.900 32.50000
+ 620991.400 3365420.900 32.50000
+ 621241.400 3365420.900 32.50000
+ 621366.400 3365420.900 32.50000
+ 621491.400 3365420.900 32.50000
+ 621741.400 3365420.900 32.50000
+ 621991.400 3365420.900 32.50000
+ 622241.400 3365420.900 32.50000
+ 622491.400 3365420.900 32.50000
+ 622741.400 3365420.900 32.50000
+ 622991.400 3365420.900 32.50000
+ 623241.400 3365420.900 32.50000
+ 623491.400 3365420.900 32.50000
+ 623616.400 3365420.900 32.50000
+ 623678.900 3365420.900 32.50000
+ 623741.400 3365420.900 32.50000
+ 623866.400 3365420.900 32.50000
+ 623991.400 3365420.900 32.50000
+ 624241.400 3365420.900 32.50000
+ 624491.400 3365420.900 32.50000
+ 624741.400 3365420.900 32.50000
+ 623616.400 3365358.400 32.50000
+ 623678.900 3365358.400 32.50000
+ 623741.400 3365358.400 32.50000
+ 623491.400 3365295.900 32.50000
+ 623616.400 3365295.900 32.50000
+ 623678.900 3365295.900 32.50000
+ 623741.400 3365295.900 32.50000
+ 623866.400 3365295.900 32.50000
+ 623991.400 3365295.900 32.50000
+ 623616.400 3365233.400 32.50000
+ 623678.900 3365233.400 32.50000
+ 623741.400 3365233.400 32.50000
+ 619741.400 3365170.900 32.50000
+ 619991.400 3365170.900 32.50000
+ 620241.400 3365170.900 32.50000
+ 620491.400 3365170.900 32.50000
+ 620741.400 3365170.900 32.50000
+ 620991.400 3365170.900 32.50000
+ 621241.400 3365170.900 32.50000
+ 621491.400 3365170.900 32.50000
+ 621741.400 3365170.900 32.50000
+ 621991.400 3365170.900 32.50000
+ 622241.400 3365170.900 32.50000
+ 622491.400 3365170.900 32.50000
+ 622741.400 3365170.900 32.50000
+ 622991.400 3365170.900 32.50000
+ 623241.400 3365170.900 32.50000
+ 623491.400 3365170.900 32.50000
+ 623616.400 3365170.900 32.50000
+ 623678.900 3365170.900 32.50000
+ 623741.400 3365170.900 32.50000
+ 623866.400 3365170.900 32.50000
+ 623991.400 3365170.900 32.50000
+ 624241.400 3365170.900 32.50000
+ 624491.400 3365170.900 32.50000
+ 624741.400 3365170.900 32.50000
+ 623616.400 3365108.400 32.50000
+ 623678.900 3365108.400 32.50000
+ 623741.400 3365108.400 32.50000
+ 623491.400 3365045.900 32.50000
+ 623616.400 3365045.900 32.50000
+ 623678.900 3365045.900 32.50000
+ 623741.400 3365045.900 32.50000
+ 623866.400 3365045.900 32.50000
+ 623991.400 3365045.900 32.50000
+ 623616.400 3364983.400 32.50000
+ 623678.900 3364983.400 32.50000
+ 623741.400 3364983.400 32.50000
+ 619741.400 3364920.900 32.50000
+ 619991.400 3364920.900 32.50000
+ 620241.400 3364920.900 32.50000
+ 620491.400 3364920.900 32.50000
+ 620741.400 3364920.900 32.50000
+ 620991.400 3364920.900 32.50000
+ 621241.400 3364920.900 32.50000
+ 621491.400 3364920.900 32.50000
+ 621741.400 3364920.900 32.50000
+ 621991.400 3364920.900 32.50000
+ 622241.400 3364920.900 32.50000
+ 622491.400 3364920.900 32.50000
+ 622741.400 3364920.900 32.50000
+ 622866.400 3364920.900 32.50000
+ 622991.400 3364920.900 32.50000
+ 623241.400 3364920.900 32.50000
+ 623491.400 3364920.900 32.50000
+ 623616.400 3364920.900 32.50000
+ 623678.900 3364920.900 32.50000
+ 623741.400 3364920.900 32.50000
+ 623866.400 3364920.900 32.50000
+ 623991.400 3364920.900 32.50000
+ 624241.400 3364920.900 32.50000
+ 624491.400 3364920.900 32.50000
+ 624741.400 3364920.900 32.50000
+ 623616.400 3364858.400 32.50000
+ 623678.900 3364858.400 32.50000
+ 623741.400 3364858.400 32.50000
+ 622741.400 3364795.900 32.50000
+ 622866.400 3364795.900 32.50000
+ 622991.400 3364795.900 32.50000
+ 623491.400 3364795.900 32.50000
+ 623616.400 3364795.900 32.50000
+ 623678.900 3364795.900 32.50000
+ 623741.400 3364795.900 32.50000
+ 623866.400 3364795.900 32.50000
+ 623991.400 3364795.900 32.50000
+ 623616.400 3364733.400 32.50000
+ 623678.900 3364733.400 32.50000
+ 623741.400 3364733.400 32.50000
+ 619741.400 3364670.900 32.50000
+ 619991.400 3364670.900 32.50000
+ 620241.400 3364670.900 32.50000
+ 620491.400 3364670.900 32.50000
+ 620741.400 3364670.900 32.50000
+ 620991.400 3364670.900 32.50000
+ 621241.400 3364670.900 32.50000
+ 621491.400 3364670.900 32.50000
+ 621741.400 3364670.900 32.50000
+ 621991.400 3364670.900 32.50000
+ 622241.400 3364670.900 32.50000
+ 622491.400 3364670.900 32.50000
+ 622616.400 3364670.900 32.50000
+ 622741.400 3364670.900 32.50000
+ 622803.900 3364670.900 32.50000
+ 622866.400 3364670.900 32.50000
+ 622928.900 3364670.900 32.50000
+ 622991.400 3364670.900 32.50000
+ 623116.400 3364670.900 32.50000
+ 623241.400 3364670.900 32.50000
+ 623491.400 3364670.900 32.50000
+ 623616.400 3364670.900 32.50000
+ 623678.900 3364670.900 32.50000
+ 623741.400 3364670.900 32.50000
+ 623866.400 3364670.900 32.50000
+ 623991.400 3364670.900 32.50000
+ 624241.400 3364670.900 32.50000
+ 624491.400 3364670.900 32.50000
+ 624741.400 3364670.900 32.50000
+ 622741.400 3364608.400 32.50000
+ 622803.900 3364608.400 32.50000
+ 622835.150 3364608.400 32.50000
+ 622866.400 3364608.400 32.50000
+ 622897.650 3364608.400 32.50000
+ 622928.900 3364608.400 32.50000
+ 622991.400 3364608.400 32.50000
+ 623616.400 3364608.400 32.50000
+ 623678.900 3364608.400 32.50000
+ 623741.400 3364608.400 32.50000
+ 622803.900 3364577.150 32.50000
+ 622835.150 3364577.150 32.50000
+ 622866.400 3364577.150 32.50000
+ 622897.650 3364577.150 32.50000
+ 622928.900 3364577.150 32.50000
+ 622491.400 3364545.900 32.50000
+ 622616.400 3364545.900 32.50000
+ 622741.400 3364545.900 32.50000
+ 622803.900 3364545.900 32.50000
+ 622835.150 3364545.900 32.50000
+ 622866.400 3364545.900 32.50000
+ 622897.650 3364545.900 32.50000
+ 622928.900 3364545.900 32.50000
+ 622991.400 3364545.900 32.50000
+ 623116.400 3364545.900 32.50000
+ 623241.400 3364545.900 32.50000
+ 623491.400 3364545.900 32.50000
+ 623616.400 3364545.900 32.50000
+ 623678.900 3364545.900 32.50000
+ 623741.400 3364545.900 32.50000
+ 623866.400 3364545.900 32.50000
+ 623991.400 3364545.900 32.50000
+ 622803.900 3364514.650 32.50000
+ 622835.150 3364514.650 32.50000
+ 622866.400 3364514.650 32.50000
+ 622897.650 3364514.650 32.50000
+ 622928.900 3364514.650 32.50000
+ 622741.400 3364483.400 32.50000
+ 622803.900 3364483.400 32.50000
+ 622835.150 3364483.400 32.50000
+ 622866.400 3364483.400 32.50000
+ 622897.650 3364483.400 32.50000
+ 622928.900 3364483.400 32.50000
+ 622991.400 3364483.400 32.50000
+ 623616.400 3364483.400 32.50000
+ 623678.900 3364483.400 32.50000
+ 623741.400 3364483.400 32.50000
+ 619741.400 3364420.900 32.50000
+ 619991.400 3364420.900 32.50000
+ 620241.400 3364420.900 32.50000
+ 620491.400 3364420.900 32.50000
+ 620741.400 3364420.900 32.50000
+ 620991.400 3364420.900 32.50000
+ 621241.400 3364420.900 32.50000
+ 621491.400 3364420.900 32.50000
+ 621741.400 3364420.900 32.50000
+ 621991.400 3364420.900 32.50000
+ 622241.400 3364420.900 32.50000
+ 622491.400 3364420.900 32.50000
+ 622616.400 3364420.900 32.50000
+ 622741.400 3364420.900 32.50000
+ 622803.900 3364420.900 32.50000
+ 622866.400 3364420.900 32.50000
+ 622928.900 3364420.900 32.50000
+ 622991.400 3364420.900 32.50000
+ 623116.400 3364420.900 32.50000
+ 623241.400 3364420.900 32.50000
+ 623491.400 3364420.900 32.50000
+ 623616.400 3364420.900 32.50000
+ 623678.900 3364420.900 32.50000
+ 623741.400 3364420.900 32.50000
+ 623866.400 3364420.900 32.50000
+ 623991.400 3364420.900 32.50000
+ 624241.400 3364420.900 32.50000
+ 624491.400 3364420.900 32.50000
+ 624741.400 3364420.900 32.50000
+ 623616.400 3364358.400 32.50000
+ 623678.900 3364358.400 32.50000
+ 623741.400 3364358.400 32.50000
+ 622741.400 3364295.900 32.50000
+ 622866.400 3364295.900 32.50000
+ 622991.400 3364295.900 32.50000
+ 623491.400 3364295.900 32.50000
+ 623616.400 3364295.900 32.50000
+ 623678.900 3364295.900 32.50000
+ 623741.400 3364295.900 32.50000
+ 623866.400 3364295.900 32.50000
+ 623991.400 3364295.900 32.50000
+ 623616.400 3364233.400 32.50000
+ 623678.900 3364233.400 32.50000
+ 623741.400 3364233.400 32.50000
+ 619741.400 3364170.900 32.50000
+ 619991.400 3364170.900 32.50000
+ 620241.400 3364170.900 32.50000
+ 620491.400 3364170.900 32.50000
+ 620741.400 3364170.900 32.50000
+ 620991.400 3364170.900 32.50000
+ 621241.400 3364170.900 32.50000
+ 621491.400 3364170.900 32.50000
+ 621741.400 3364170.900 32.50000
+ 621991.400 3364170.900 32.50000
+ 622241.400 3364170.900 32.50000
+ 622491.400 3364170.900 32.50000
+ 622741.400 3364170.900 32.50000
+ 622866.400 3364170.900 32.50000
+ 622991.400 3364170.900 32.50000
+ 623241.400 3364170.900 32.50000
+ 623491.400 3364170.900 32.50000
+ 623616.400 3364170.900 32.50000
+ 623678.900 3364170.900 32.50000
+ 623741.400 3364170.900 32.50000
+ 623866.400 3364170.900 32.50000
+ 623991.400 3364170.900 32.50000
+ 624241.400 3364170.900 32.50000
+ 624491.400 3364170.900 32.50000
+ 624741.400 3364170.900 32.50000
+ 623616.400 3364108.400 32.50000
+ 623678.900 3364108.400 32.50000
+ 623741.400 3364108.400 32.50000
+ 623491.400 3364045.900 32.50000
+ 623616.400 3364045.900 32.50000
+ 623678.900 3364045.900 32.50000
+ 623741.400 3364045.900 32.50000
+ 623866.400 3364045.900 32.50000
+ 623991.400 3364045.900 32.50000
+ 623616.400 3363983.400 32.50000
+ 623678.900 3363983.400 32.50000
+ 623741.400 3363983.400 32.50000
+ 619741.400 3363920.900 32.50000
+ 619991.400 3363920.900 32.50000
+ 620241.400 3363920.900 32.50000
+ 620491.400 3363920.900 32.50000
+ 620741.400 3363920.900 32.50000
+ 620991.400 3363920.900 32.50000
+ 621241.400 3363920.900 32.50000
+ 621491.400 3363920.900 32.50000
+ 621741.400 3363920.900 32.50000
+ 621991.400 3363920.900 32.50000
+ 622241.400 3363920.900 32.50000
+ 622491.400 3363920.900 32.50000
+ 622741.400 3363920.900 32.50000
+ 622991.400 3363920.900 32.50000
+ 623241.400 3363920.900 32.50000
+ 623491.400 3363920.900 32.50000
+ 623616.400 3363920.900 32.50000
+ 623678.900 3363920.900 32.50000
+ 623741.400 3363920.900 32.50000
+ 623866.400 3363920.900 32.50000
+ 623991.400 3363920.900 32.50000
+ 624241.400 3363920.900 32.50000
+ 624491.400 3363920.900 32.50000
+ 624741.400 3363920.900 32.50000
+ 623616.400 3363858.400 32.50000
+ 623678.900 3363858.400 32.50000
+ 623741.400 3363858.400 32.50000
+ 623491.400 3363795.900 32.50000
+ 623616.400 3363795.900 32.50000
+ 623678.900 3363795.900 32.50000
+ 623741.400 3363795.900 32.50000
+ 623866.400 3363795.900 32.50000
+ 623991.400 3363795.900 32.50000
+ 623616.400 3363733.400 32.50000
+ 623678.900 3363733.400 32.50000
+ 623741.400 3363733.400 32.50000
+ 619741.400 3363670.900 32.50000
+ 619991.400 3363670.900 32.50000
+ 620241.400 3363670.900 32.50000
+ 620491.400 3363670.900 32.50000
+ 620741.400 3363670.900 32.50000
+ 620991.400 3363670.900 32.50000
+ 621241.400 3363670.900 32.50000
+ 621491.400 3363670.900 32.50000
+ 621741.400 3363670.900 32.50000
+ 621991.400 3363670.900 32.50000
+ 622241.400 3363670.900 32.50000
+ 622491.400 3363670.900 32.50000
+ 622741.400 3363670.900 32.50000
+ 622991.400 3363670.900 32.50000
+ 623241.400 3363670.900 32.50000
+ 623491.400 3363670.900 32.50000
+ 623616.400 3363670.900 32.50000
+ 623678.900 3363670.900 32.50000
+ 623741.400 3363670.900 32.50000
+ 623866.400 3363670.900 32.50000
+ 623991.400 3363670.900 32.50000
+ 624241.400 3363670.900 32.50000
+ 624491.400 3363670.900 32.50000
+ 624741.400 3363670.900 32.50000
+ 623616.400 3363608.400 32.50000
+ 623678.900 3363608.400 32.50000
+ 623741.400 3363608.400 32.50000
+ 623491.400 3363545.900 32.50000
+ 623616.400 3363545.900 32.50000
+ 623678.900 3363545.900 32.50000
+ 623741.400 3363545.900 32.50000
+ 623866.400 3363545.900 32.50000
+ 623991.400 3363545.900 32.50000
+ 623616.400 3363483.400 32.50000
+ 623678.900 3363483.400 32.50000
+ 623741.400 3363483.400 32.50000
+ 619741.400 3363420.900 32.50000
+ 619991.400 3363420.900 32.50000
+ 620241.400 3363420.900 32.50000
+ 620491.400 3363420.900 32.50000
+ 620741.400 3363420.900 32.50000
+ 620991.400 3363420.900 32.50000
+ 621241.400 3363420.900 32.50000
+ 621491.400 3363420.900 32.50000
+ 621741.400 3363420.900 32.50000
+ 621991.400 3363420.900 32.50000
+ 622241.400 3363420.900 32.50000
+ 622491.400 3363420.900 32.50000
+ 622741.400 3363420.900 32.50000
+ 622991.400 3363420.900 32.50000
+ 623241.400 3363420.900 32.50000
+ 623491.400 3363420.900 32.50000
+ 623616.400 3363420.900 32.50000
+ 623678.900 3363420.900 32.50000
+ 623741.400 3363420.900 32.50000
+ 623866.400 3363420.900 32.50000
+ 623991.400 3363420.900 32.50000
+ 624241.400 3363420.900 32.50000
+ 624491.400 3363420.900 32.50000
+ 624741.400 3363420.900 32.50000
+ 623616.400 3363358.400 32.50000
+ 623678.900 3363358.400 32.50000
+ 623741.400 3363358.400 32.50000
+ 623491.400 3363295.900 32.50000
+ 623616.400 3363295.900 32.50000
+ 623678.900 3363295.900 32.50000
+ 623741.400 3363295.900 32.50000
+ 623866.400 3363295.900 32.50000
+ 623991.400 3363295.900 32.50000
+ 623616.400 3363233.400 32.50000
+ 623678.900 3363233.400 32.50000
+ 623741.400 3363233.400 32.50000
+ 619741.400 3363170.900 32.50000
+ 619991.400 3363170.900 32.50000
+ 620241.400 3363170.900 32.50000
+ 620491.400 3363170.900 32.50000
+ 620741.400 3363170.900 32.50000
+ 620991.400 3363170.900 32.50000
+ 621241.400 3363170.900 32.50000
+ 621491.400 3363170.900 32.50000
+ 621741.400 3363170.900 32.50000
+ 621991.400 3363170.900 32.50000
+ 622241.400 3363170.900 32.50000
+ 622491.400 3363170.900 32.50000
+ 622741.400 3363170.900 32.50000
+ 622991.400 3363170.900 32.50000
+ 623241.400 3363170.900 32.50000
+ 623491.400 3363170.900 32.50000
+ 623616.400 3363170.900 32.50000
+ 623678.900 3363170.900 32.50000
+ 623741.400 3363170.900 32.50000
+ 623866.400 3363170.900 32.50000
+ 623991.400 3363170.900 32.50000
+ 624241.400 3363170.900 32.50000
+ 624491.400 3363170.900 32.50000
+ 624741.400 3363170.900 32.50000
+ 619741.400 3373170.900 30.00000
+ 619991.400 3373170.900 31.25000
+ 620241.400 3373170.900 31.25000
+ 620491.400 3373170.900 31.25000
+ 620741.400 3373170.900 31.25000
+ 620991.400 3373170.900 31.25000
+ 621241.400 3373170.900 31.25000
+ 621491.400 3373170.900 31.25000
+ 621741.400 3373170.900 31.25000
+ 621991.400 3373170.900 31.25000
+ 622241.400 3373170.900 31.25000
+ 622491.400 3373170.900 31.25000
+ 622741.400 3373170.900 31.25000
+ 622991.400 3373170.900 31.25000
+ 623241.400 3373170.900 31.25000
+ 623491.400 3373170.900 31.25000
+ 623616.400 3373170.900 31.25000
+ 623678.900 3373170.900 31.25000
+ 623741.400 3373170.900 31.25000
+ 623866.400 3373170.900 31.25000
+ 623991.400 3373170.900 31.25000
+ 624241.400 3373170.900 31.25000
+ 624491.400 3373170.900 31.25000
+ 624741.400 3373170.900 30.00000
+ 623616.400 3373108.400 30.62500
+ 623678.900 3373108.400 30.62500
+ 623741.400 3373108.400 30.62500
+ 623491.400 3373045.900 30.00000
+ 623616.400 3373045.900 30.00000
+ 623678.900 3373045.900 30.00000
+ 623741.400 3373045.900 30.00000
+ 623866.400 3373045.900 30.00000
+ 623991.400 3373045.900 30.00000
+ 623616.400 3372983.400 30.00000
+ 623678.900 3372983.400 30.00000
+ 623741.400 3372983.400 30.00000
+ 619741.400 3372920.900 30.00000
+ 619991.400 3372920.900 30.00000
+ 620241.400 3372920.900 30.00000
+ 620491.400 3372920.900 30.00000
+ 620741.400 3372920.900 30.00000
+ 620991.400 3372920.900 30.00000
+ 621241.400 3372920.900 30.00000
+ 621491.400 3372920.900 30.00000
+ 621741.400 3372920.900 30.00000
+ 621991.400 3372920.900 30.00000
+ 622241.400 3372920.900 30.00000
+ 622491.400 3372920.900 30.00000
+ 622741.400 3372920.900 30.00000
+ 622991.400 3372920.900 30.00000
+ 623241.400 3372920.900 30.00000
+ 623491.400 3372920.900 30.00000
+ 623616.400 3372920.900 30.00000
+ 623678.900 3372920.900 30.00000
+ 623741.400 3372920.900 30.00000
+ 623866.400 3372920.900 30.00000
+ 623991.400 3372920.900 30.00000
+ 624241.400 3372920.900 30.00000
+ 624491.400 3372920.900 30.00000
+ 624741.400 3372920.900 30.00000
+ 623616.400 3372858.400 30.00000
+ 623678.900 3372858.400 30.00000
+ 623741.400 3372858.400 30.00000
+ 623491.400 3372795.900 30.00000
+ 623616.400 3372795.900 30.00000
+ 623678.900 3372795.900 30.00000
+ 623741.400 3372795.900 30.00000
+ 623866.400 3372795.900 30.00000
+ 623991.400 3372795.900 30.00000
+ 623616.400 3372733.400 30.00000
+ 623678.900 3372733.400 30.00000
+ 623741.400 3372733.400 30.00000
+ 619741.400 3372670.900 30.00000
+ 619991.400 3372670.900 30.00000
+ 620241.400 3372670.900 30.00000
+ 620491.400 3372670.900 30.00000
+ 620741.400 3372670.900 30.00000
+ 620991.400 3372670.900 30.00000
+ 621241.400 3372670.900 30.00000
+ 621491.400 3372670.900 30.00000
+ 621741.400 3372670.900 30.00000
+ 621991.400 3372670.900 30.00000
+ 622241.400 3372670.900 30.00000
+ 622491.400 3372670.900 30.00000
+ 622741.400 3372670.900 30.00000
+ 622991.400 3372670.900 30.00000
+ 623241.400 3372670.900 30.00000
+ 623491.400 3372670.900 30.00000
+ 623616.400 3372670.900 30.00000
+ 623678.900 3372670.900 30.00000
+ 623741.400 3372670.900 30.00000
+ 623866.400 3372670.900 30.00000
+ 623991.400 3372670.900 30.00000
+ 624241.400 3372670.900 30.00000
+ 624491.400 3372670.900 30.00000
+ 624741.400 3372670.900 30.00000
+ 623616.400 3372608.400 30.00000
+ 623678.900 3372608.400 30.00000
+ 623741.400 3372608.400 30.00000
+ 623491.400 3372545.900 30.00000
+ 623616.400 3372545.900 30.00000
+ 623678.900 3372545.900 30.00000
+ 623741.400 3372545.900 30.00000
+ 623866.400 3372545.900 30.00000
+ 623991.400 3372545.900 30.00000
+ 623616.400 3372483.400 30.00000
+ 623678.900 3372483.400 30.00000
+ 623741.400 3372483.400 30.00000
+ 619741.400 3372420.900 30.00000
+ 619991.400 3372420.900 30.00000
+ 620241.400 3372420.900 30.00000
+ 620491.400 3372420.900 30.00000
+ 620741.400 3372420.900 30.00000
+ 620991.400 3372420.900 30.00000
+ 621241.400 3372420.900 30.00000
+ 621491.400 3372420.900 30.00000
+ 621741.400 3372420.900 30.00000
+ 621991.400 3372420.900 30.00000
+ 622241.400 3372420.900 30.00000
+ 622491.400 3372420.900 30.00000
+ 622741.400 3372420.900 30.00000
+ 622991.400 3372420.900 30.00000
+ 623241.400 3372420.900 30.00000
+ 623491.400 3372420.900 30.00000
+ 623616.400 3372420.900 30.00000
+ 623678.900 3372420.900 30.00000
+ 623741.400 3372420.900 30.00000
+ 623866.400 3372420.900 30.00000
+ 623991.400 3372420.900 30.00000
+ 624241.400 3372420.900 30.00000
+ 624491.400 3372420.900 30.00000
+ 624741.400 3372420.900 30.00000
+ 623616.400 3372358.400 30.00000
+ 623678.900 3372358.400 30.00000
+ 623741.400 3372358.400 30.00000
+ 623491.400 3372295.900 30.00000
+ 623616.400 3372295.900 30.00000
+ 623678.900 3372295.900 30.00000
+ 623741.400 3372295.900 30.00000
+ 623866.400 3372295.900 30.00000
+ 623991.400 3372295.900 30.00000
+ 623616.400 3372233.400 30.00000
+ 623678.900 3372233.400 30.00000
+ 623741.400 3372233.400 30.00000
+ 619741.400 3372170.900 30.00000
+ 619991.400 3372170.900 30.00000
+ 620241.400 3372170.900 30.00000
+ 620491.400 3372170.900 30.00000
+ 620741.400 3372170.900 30.00000
+ 620991.400 3372170.900 30.00000
+ 621241.400 3372170.900 30.00000
+ 621491.400 3372170.900 30.00000
+ 621741.400 3372170.900 30.00000
+ 621991.400 3372170.900 30.00000
+ 622241.400 3372170.900 30.00000
+ 622491.400 3372170.900 30.00000
+ 622741.400 3372170.900 30.00000
+ 622991.400 3372170.900 30.00000
+ 623241.400 3372170.900 30.00000
+ 623491.400 3372170.900 30.00000
+ 623616.400 3372170.900 30.00000
+ 623678.900 3372170.900 30.00000
+ 623741.400 3372170.900 30.00000
+ 623866.400 3372170.900 30.00000
+ 623991.400 3372170.900 30.00000
+ 624241.400 3372170.900 30.00000
+ 624491.400 3372170.900 30.00000
+ 624741.400 3372170.900 30.00000
+ 623616.400 3372108.400 30.00000
+ 623678.900 3372108.400 30.00000
+ 623741.400 3372108.400 30.00000
+ 623491.400 3372045.900 30.00000
+ 623616.400 3372045.900 30.00000
+ 623678.900 3372045.900 30.00000
+ 623741.400 3372045.900 30.00000
+ 623866.400 3372045.900 30.00000
+ 623991.400 3372045.900 30.00000
+ 623616.400 3371983.400 30.00000
+ 623678.900 3371983.400 30.00000
+ 623741.400 3371983.400 30.00000
+ 619741.400 3371920.900 30.00000
+ 619991.400 3371920.900 30.00000
+ 620241.400 3371920.900 30.00000
+ 620491.400 3371920.900 30.00000
+ 620741.400 3371920.900 30.00000
+ 620991.400 3371920.900 30.00000
+ 621241.400 3371920.900 30.00000
+ 621491.400 3371920.900 30.00000
+ 621741.400 3371920.900 30.00000
+ 621991.400 3371920.900 30.00000
+ 622241.400 3371920.900 30.00000
+ 622491.400 3371920.900 30.00000
+ 622741.400 3371920.900 30.00000
+ 622991.400 3371920.900 30.00000
+ 623241.400 3371920.900 30.00000
+ 623491.400 3371920.900 30.00000
+ 623616.400 3371920.900 30.00000
+ 623678.900 3371920.900 30.00000
+ 623741.400 3371920.900 30.00000
+ 623866.400 3371920.900 30.00000
+ 623991.400 3371920.900 30.00000
+ 624241.400 3371920.900 30.00000
+ 624491.400 3371920.900 30.00000
+ 624741.400 3371920.900 30.00000
+ 623616.400 3371858.400 30.00000
+ 623678.900 3371858.400 30.00000
+ 623741.400 3371858.400 30.00000
+ 623491.400 3371795.900 30.00000
+ 623616.400 3371795.900 30.00000
+ 623678.900 3371795.900 30.00000
+ 623741.400 3371795.900 30.00000
+ 623866.400 3371795.900 30.00000
+ 623991.400 3371795.900 30.00000
+ 623616.400 3371733.400 30.00000
+ 623678.900 3371733.400 30.00000
+ 623741.400 3371733.400 30.00000
+ 619741.400 3371670.900 30.00000
+ 619991.400 3371670.900 30.00000
+ 620241.400 3371670.900 30.00000
+ 620491.400 3371670.900 30.00000
+ 620741.400 3371670.900 30.00000
+ 620991.400 3371670.900 30.00000
+ 621241.400 3371670.900 30.00000
+ 621491.400 3371670.900 30.00000
+ 621741.400 3371670.900 30.00000
+ 621991.400 3371670.900 30.00000
+ 622241.400 3371670.900 30.00000
+ 622491.400 3371670.900 30.00000
+ 622741.400 3371670.900 30.00000
+ 622991.400 3371670.900 30.00000
+ 623241.400 3371670.900 30.00000
+ 623491.400 3371670.900 30.00000
+ 623616.400 3371670.900 30.00000
+ 623678.900 3371670.900 30.00000
+ 623741.400 3371670.900 30.00000
+ 623866.400 3371670.900 30.00000
+ 623991.400 3371670.900 30.00000
+ 624241.400 3371670.900 30.00000
+ 624491.400 3371670.900 30.00000
+ 624741.400 3371670.900 30.00000
+ 623616.400 3371608.400 30.00000
+ 623678.900 3371608.400 30.00000
+ 623741.400 3371608.400 30.00000
+ 623491.400 3371545.900 30.00000
+ 623616.400 3371545.900 30.00000
+ 623678.900 3371545.900 30.00000
+ 623741.400 3371545.900 30.00000
+ 623866.400 3371545.900 30.00000
+ 623991.400 3371545.900 30.00000
+ 623616.400 3371483.400 30.00000
+ 623678.900 3371483.400 30.00000
+ 623741.400 3371483.400 30.00000
+ 619741.400 3371420.900 30.00000
+ 619991.400 3371420.900 30.00000
+ 620241.400 3371420.900 30.00000
+ 620491.400 3371420.900 30.00000
+ 620741.400 3371420.900 30.00000
+ 620991.400 3371420.900 30.00000
+ 621241.400 3371420.900 30.00000
+ 621491.400 3371420.900 30.00000
+ 621741.400 3371420.900 30.00000
+ 621991.400 3371420.900 30.00000
+ 622241.400 3371420.900 30.00000
+ 622491.400 3371420.900 30.00000
+ 622741.400 3371420.900 30.00000
+ 622991.400 3371420.900 30.00000
+ 623241.400 3371420.900 30.00000
+ 623491.400 3371420.900 30.00000
+ 623616.400 3371420.900 30.00000
+ 623678.900 3371420.900 30.00000
+ 623741.400 3371420.900 30.00000
+ 623866.400 3371420.900 30.00000
+ 623991.400 3371420.900 30.00000
+ 624241.400 3371420.900 30.00000
+ 624491.400 3371420.900 30.00000
+ 624741.400 3371420.900 30.00000
+ 623616.400 3371358.400 30.00000
+ 623678.900 3371358.400 30.00000
+ 623741.400 3371358.400 30.00000
+ 623491.400 3371295.900 30.00000
+ 623616.400 3371295.900 30.00000
+ 623678.900 3371295.900 30.00000
+ 623741.400 3371295.900 30.00000
+ 623866.400 3371295.900 30.00000
+ 623991.400 3371295.900 30.00000
+ 623616.400 3371233.400 30.00000
+ 623678.900 3371233.400 30.00000
+ 623741.400 3371233.400 30.00000
+ 619741.400 3371170.900 30.00000
+ 619991.400 3371170.900 30.00000
+ 620241.400 3371170.900 30.00000
+ 620491.400 3371170.900 30.00000
+ 620741.400 3371170.900 30.00000
+ 620991.400 3371170.900 30.00000
+ 621241.400 3371170.900 30.00000
+ 621491.400 3371170.900 30.00000
+ 621741.400 3371170.900 30.00000
+ 621991.400 3371170.900 30.00000
+ 622241.400 3371170.900 30.00000
+ 622491.400 3371170.900 30.00000
+ 622741.400 3371170.900 30.00000
+ 622991.400 3371170.900 30.00000
+ 623241.400 3371170.900 30.00000
+ 623491.400 3371170.900 30.00000
+ 623616.400 3371170.900 30.00000
+ 623678.900 3371170.900 30.00000
+ 623741.400 3371170.900 30.00000
+ 623866.400 3371170.900 30.00000
+ 623991.400 3371170.900 30.00000
+ 624241.400 3371170.900 30.00000
+ 624491.400 3371170.900 30.00000
+ 624741.400 3371170.900 30.00000
+ 623616.400 3371108.400 30.00000
+ 623678.900 3371108.400 30.00000
+ 623741.400 3371108.400 30.00000
+ 623491.400 3371045.900 30.00000
+ 623616.400 3371045.900 30.00000
+ 623678.900 3371045.900 30.00000
+ 623741.400 3371045.900 30.00000
+ 623866.400 3371045.900 30.00000
+ 623991.400 3371045.900 30.00000
+ 623616.400 3370983.400 30.00000
+ 623678.900 3370983.400 30.00000
+ 623741.400 3370983.400 30.00000
+ 619741.400 3370920.900 30.00000
+ 619991.400 3370920.900 30.00000
+ 620241.400 3370920.900 30.00000
+ 620491.400 3370920.900 30.00000
+ 620741.400 3370920.900 30.00000
+ 620991.400 3370920.900 30.00000
+ 621241.400 3370920.900 30.00000
+ 621491.400 3370920.900 30.00000
+ 621741.400 3370920.900 30.00000
+ 621991.400 3370920.900 30.00000
+ 622241.400 3370920.900 30.00000
+ 622491.400 3370920.900 30.00000
+ 622741.400 3370920.900 30.00000
+ 622991.400 3370920.900 30.00000
+ 623241.400 3370920.900 30.00000
+ 623491.400 3370920.900 30.00000
+ 623616.400 3370920.900 30.00000
+ 623678.900 3370920.900 30.00000
+ 623741.400 3370920.900 30.00000
+ 623803.900 3370920.900 30.00000
+ 623866.400 3370920.900 30.00000
+ 623928.900 3370920.900 30.00000
+ 623991.400 3370920.900 30.00000
+ 624116.400 3370920.900 30.00000
+ 624241.400 3370920.900 30.00000
+ 624491.400 3370920.900 30.00000
+ 624741.400 3370920.900 30.00000
+ 623616.400 3370858.400 30.00000
+ 623678.900 3370858.400 30.00000
+ 623741.400 3370858.400 30.00000
+ 623803.900 3370858.400 30.00000
+ 623835.150 3370858.400 30.00000
+ 623866.400 3370858.400 30.00000
+ 623897.650 3370858.400 30.00000
+ 623928.900 3370858.400 30.00000
+ 623991.400 3370858.400 30.00000
+ 623803.900 3370827.150 30.00000
+ 623835.150 3370827.150 30.00000
+ 623866.400 3370827.150 30.00000
+ 623897.650 3370827.150 30.00000
+ 623928.900 3370827.150 30.00000
+ 623491.400 3370795.900 30.00000
+ 623616.400 3370795.900 30.00000
+ 623678.900 3370795.900 30.00000
+ 623741.400 3370795.900 30.00000
+ 623803.900 3370795.900 30.00000
+ 623835.150 3370795.900 30.00000
+ 623866.400 3370795.900 30.00000
+ 623897.650 3370795.900 30.00000
+ 623928.900 3370795.900 30.00000
+ 623991.400 3370795.900 30.00000
+ 624116.400 3370795.900 30.00000
+ 624241.400 3370795.900 30.00000
+ 623803.900 3370764.650 30.00000
+ 623835.150 3370764.650 30.00000
+ 623866.400 3370764.650 30.00000
+ 623897.650 3370764.650 30.00000
+ 623928.900 3370764.650 30.00000
+ 623616.400 3370733.400 30.00000
+ 623678.900 3370733.400 30.00000
+ 623741.400 3370733.400 30.00000
+ 623803.900 3370733.400 30.00000
+ 623835.150 3370733.400 30.00000
+ 623866.400 3370733.400 30.00000
+ 623897.650 3370733.400 30.00000
+ 623928.900 3370733.400 30.00000
+ 623991.400 3370733.400 30.00000
+ 619741.400 3370670.900 30.00000
+ 619991.400 3370670.900 30.00000
+ 620241.400 3370670.900 30.00000
+ 620491.400 3370670.900 30.00000
+ 620741.400 3370670.900 30.00000
+ 620991.400 3370670.900 30.00000
+ 621241.400 3370670.900 30.00000
+ 621491.400 3370670.900 30.00000
+ 621741.400 3370670.900 30.00000
+ 621991.400 3370670.900 30.00000
+ 622241.400 3370670.900 30.00000
+ 622491.400 3370670.900 30.00000
+ 622741.400 3370670.900 30.00000
+ 622991.400 3370670.900 30.00000
+ 623116.400 3370670.900 30.00000
+ 623241.400 3370670.900 30.00000
+ 623491.400 3370670.900 30.00000
+ 623616.400 3370670.900 30.00000
+ 623678.900 3370670.900 30.00000
+ 623741.400 3370670.900 30.00000
+ 623803.900 3370670.900 30.00000
+ 623866.400 3370670.900 30.00000
+ 623928.900 3370670.900 30.00000
+ 623991.400 3370670.900 30.00000
+ 624116.400 3370670.900 30.00000
+ 624241.400 3370670.900 30.00000
+ 624491.400 3370670.900 30.00000
+ 624741.400 3370670.900 30.00000
+ 623616.400 3370608.400 30.00000
+ 623678.900 3370608.400 30.00000
+ 623741.400 3370608.400 30.00000
+ 622991.400 3370545.900 30.00000
+ 623116.400 3370545.900 30.00000
+ 623241.400 3370545.900 30.00000
+ 623491.400 3370545.900 30.00000
+ 623616.400 3370545.900 30.00000
+ 623678.900 3370545.900 30.00000
+ 623741.400 3370545.900 30.00000
+ 623866.400 3370545.900 30.00000
+ 623991.400 3370545.900 30.00000
+ 623616.400 3370483.400 30.00000
+ 623678.900 3370483.400 30.00000
+ 623741.400 3370483.400 30.00000
+ 619741.400 3370420.900 30.00000
+ 619991.400 3370420.900 30.00000
+ 620241.400 3370420.900 30.00000
+ 620491.400 3370420.900 30.00000
+ 620741.400 3370420.900 30.00000
+ 620991.400 3370420.900 30.00000
+ 621241.400 3370420.900 30.00000
+ 621491.400 3370420.900 30.00000
+ 621741.400 3370420.900 30.00000
+ 621991.400 3370420.900 30.00000
+ 622241.400 3370420.900 30.00000
+ 622491.400 3370420.900 30.00000
+ 622741.400 3370420.900 30.00000
+ 622866.400 3370420.900 30.00000
+ 622991.400 3370420.900 30.00000
+ 623053.900 3370420.900 30.00000
+ 623116.400 3370420.900 30.00000
+ 623178.900 3370420.900 30.00000
+ 623241.400 3370420.900 30.00000
+ 623366.400 3370420.900 30.00000
+ 623491.400 3370420.900 30.00000
+ 623616.400 3370420.900 30.00000
+ 623678.900 3370420.900 30.00000
+ 623741.400 3370420.900 30.00000
+ 623866.400 3370420.900 30.00000
+ 623991.400 3370420.900 30.00000
+ 624241.400 3370420.900 30.00000
+ 624491.400 3370420.900 30.00000
+ 624741.400 3370420.900 30.00000
+ 622991.400 3370358.400 30.00000
+ 623053.900 3370358.400 30.00000
+ 623085.150 3370358.400 30.00000
+ 623116.400 3370358.400 30.00000
+ 623147.650 3370358.400 30.00000
+ 623178.900 3370358.400 30.00000
+ 623241.400 3370358.400 30.00000
+ 623616.400 3370358.400 30.00000
+ 623678.900 3370358.400 30.00000
+ 623741.400 3370358.400 30.00000
+ 623053.900 3370327.150 30.00000
+ 623085.150 3370327.150 30.00000
+ 623116.400 3370327.150 30.00000
+ 623147.650 3370327.150 30.00000
+ 623178.900 3370327.150 30.00000
+ 622741.400 3370295.900 30.00000
+ 622866.400 3370295.900 30.00000
+ 622991.400 3370295.900 30.00000
+ 623053.900 3370295.900 30.00000
+ 623085.150 3370295.900 30.00000
+ 623116.400 3370295.900 30.00000
+ 623147.650 3370295.900 30.00000
+ 623178.900 3370295.900 30.00000
+ 623241.400 3370295.900 30.00000
+ 623366.400 3370295.900 30.00000
+ 623491.400 3370295.900 30.00000
+ 623616.400 3370295.900 30.00000
+ 623678.900 3370295.900 30.00000
+ 623741.400 3370295.900 30.00000
+ 623866.400 3370295.900 30.00000
+ 623991.400 3370295.900 30.00000
+ 623053.900 3370264.650 30.00000
+ 623085.150 3370264.650 30.00000
+ 623116.400 3370264.650 30.00000
+ 623147.650 3370264.650 30.00000
+ 623178.900 3370264.650 30.00000
+ 622991.400 3370233.400 30.00000
+ 623053.900 3370233.400 30.00000
+ 623085.150 3370233.400 30.00000
+ 623116.400 3370233.400 30.00000
+ 623147.650 3370233.400 30.00000
+ 623178.900 3370233.400 30.00000
+ 623241.400 3370233.400 30.00000
+ 623616.400 3370233.400 30.00000
+ 623678.900 3370233.400 30.00000
+ 623741.400 3370233.400 30.00000
+ 619741.400 3370170.900 30.00000
+ 619991.400 3370170.900 30.00000
+ 620241.400 3370170.900 30.00000
+ 620491.400 3370170.900 30.00000
+ 620741.400 3370170.900 30.00000
+ 620991.400 3370170.900 30.00000
+ 621241.400 3370170.900 30.00000
+ 621491.400 3370170.900 30.00000
+ 621741.400 3370170.900 30.00000
+ 621991.400 3370170.900 30.00000
+ 622241.400 3370170.900 30.00000
+ 622491.400 3370170.900 30.00000
+ 622741.400 3370170.900 30.00000
+ 622866.400 3370170.900 30.00000
+ 622991.400 3370170.900 30.00000
+ 623053.900 3370170.900 30.00000
+ 623116.400 3370170.900 30.00000
+ 623178.900 3370170.900 30.00000
+ 623241.400 3370170.900 30.00000
+ 623366.400 3370170.900 30.00000
+ 623491.400 3370170.900 30.00000
+ 623616.400 3370170.900 30.00000
+ 623678.900 3370170.900 30.00000
+ 623741.400 3370170.900 30.00000
+ 623866.400 3370170.900 30.00000
+ 623991.400 3370170.900 30.00000
+ 624241.400 3370170.900 30.00000
+ 624491.400 3370170.900 30.00000
+ 624741.400 3370170.900 30.00000
+ 623616.400 3370108.400 30.00000
+ 623678.900 3370108.400 30.00000
+ 623741.400 3370108.400 30.00000
+ 622991.400 3370045.900 30.00000
+ 623116.400 3370045.900 30.00000
+ 623241.400 3370045.900 30.00000
+ 623491.400 3370045.900 30.00000
+ 623616.400 3370045.900 30.00000
+ 623678.900 3370045.900 30.00000
+ 623741.400 3370045.900 30.00000
+ 623866.400 3370045.900 30.00000
+ 623991.400 3370045.900 30.00000
+ 623616.400 3369983.400 30.00000
+ 623678.900 3369983.400 30.00000
+ 623741.400 3369983.400 30.00000
+ 619741.400 3369920.900 30.00000
+ 619991.400 3369920.900 30.00000
+ 620241.400 3369920.900 30.00000
+ 620491.400 3369920.900 30.00000
+ 620741.400 3369920.900 30.00000
+ 620991.400 3369920.900 30.00000
+ 621241.400 3369920.900 30.00000
+ 621491.400 3369920.900 30.00000
+ 621741.400 3369920.900 30.00000
+ 621991.400 3369920.900 30.00000
+ 622241.400 3369920.900 30.00000
+ 622491.400 3369920.900 30.00000
+ 622741.400 3369920.900 30.00000
+ 622991.400 3369920.900 30.00000
+ 623116.400 3369920.900 30.00000
+ 623241.400 3369920.900 30.00000
+ 623491.400 3369920.900 30.00000
+ 623616.400 3369920.900 30.00000
+ 623678.900 3369920.900 30.00000
+ 623741.400 3369920.900 30.00000
+ 623866.400 3369920.900 30.00000
+ 623991.400 3369920.900 30.00000
+ 624241.400 3369920.900 30.00000
+ 624491.400 3369920.900 30.00000
+ 624741.400 3369920.900 30.00000
+ 623616.400 3369858.400 30.00000
+ 623678.900 3369858.400 30.00000
+ 623741.400 3369858.400 30.00000
+ 623491.400 3369795.900 30.00000
+ 623616.400 3369795.900 30.00000
+ 623678.900 3369795.900 30.00000
+ 623741.400 3369795.900 30.00000
+ 623866.400 3369795.900 30.00000
+ 623991.400 3369795.900 30.00000
+ 623616.400 3369733.400 30.00000
+ 623678.900 3369733.400 30.00000
+ 623741.400 3369733.400 30.00000
+ 619741.400 3369670.900 30.00000
+ 619991.400 3369670.900 30.00000
+ 620241.400 3369670.900 30.00000
+ 620491.400 3369670.900 30.00000
+ 620741.400 3369670.900 30.00000
+ 620991.400 3369670.900 30.00000
+ 621241.400 3369670.900 30.00000
+ 621491.400 3369670.900 30.00000
+ 621741.400 3369670.900 30.00000
+ 621991.400 3369670.900 30.00000
+ 622241.400 3369670.900 30.00000
+ 622491.400 3369670.900 30.00000
+ 622741.400 3369670.900 30.00000
+ 622991.400 3369670.900 30.00000
+ 623241.400 3369670.900 30.00000
+ 623491.400 3369670.900 30.00000
+ 623616.400 3369670.900 30.00000
+ 623678.900 3369670.900 30.00000
+ 623741.400 3369670.900 30.00000
+ 623866.400 3369670.900 30.00000
+ 623991.400 3369670.900 30.00000
+ 624241.400 3369670.900 30.00000
+ 624491.400 3369670.900 30.00000
+ 624741.400 3369670.900 30.00000
+ 623616.400 3369608.400 30.00000
+ 623678.900 3369608.400 30.00000
+ 623741.400 3369608.400 30.00000
+ 623491.400 3369545.900 30.00000
+ 623616.400 3369545.900 30.00000
+ 623678.900 3369545.900 30.00000
+ 623741.400 3369545.900 30.00000
+ 623866.400 3369545.900 30.00000
+ 623991.400 3369545.900 30.00000
+ 623616.400 3369483.400 30.00000
+ 623678.900 3369483.400 30.00000
+ 623741.400 3369483.400 30.00000
+ 619741.400 3369420.900 30.00000
+ 619991.400 3369420.900 30.00000
+ 620241.400 3369420.900 30.00000
+ 620491.400 3369420.900 30.00000
+ 620741.400 3369420.900 30.00000
+ 620991.400 3369420.900 30.00000
+ 621241.400 3369420.900 30.00000
+ 621491.400 3369420.900 30.00000
+ 621741.400 3369420.900 30.00000
+ 621991.400 3369420.900 30.00000
+ 622241.400 3369420.900 30.00000
+ 622491.400 3369420.900 30.00000
+ 622741.400 3369420.900 30.00000
+ 622991.400 3369420.900 30.00000
+ 623241.400 3369420.900 30.00000
+ 623491.400 3369420.900 30.00000
+ 623616.400 3369420.900 30.00000
+ 623678.900 3369420.900 30.00000
+ 623741.400 3369420.900 30.00000
+ 623866.400 3369420.900 30.00000
+ 623991.400 3369420.900 30.00000
+ 624241.400 3369420.900 30.00000
+ 624491.400 3369420.900 30.00000
+ 624741.400 3369420.900 30.00000
+ 623616.400 3369358.400 30.00000
+ 623678.900 3369358.400 30.00000
+ 623741.400 3369358.400 30.00000
+ 623491.400 3369295.900 30.00000
+ 623616.400 3369295.900 30.00000
+ 623678.900 3369295.900 30.00000
+ 623741.400 3369295.900 30.00000
+ 623866.400 3369295.900 30.00000
+ 623991.400 3369295.900 30.00000
+ 623616.400 3369233.400 30.00000
+ 623678.900 3369233.400 30.00000
+ 623741.400 3369233.400 30.00000
+ 619741.400 3369170.900 30.00000
+ 619991.400 3369170.900 30.00000
+ 620241.400 3369170.900 30.00000
+ 620491.400 3369170.900 30.00000
+ 620741.400 3369170.900 30.00000
+ 620991.400 3369170.900 30.00000
+ 621241.400 3369170.900 30.00000
+ 621491.400 3369170.900 30.00000
+ 621741.400 3369170.900 30.00000
+ 621991.400 3369170.900 30.00000
+ 622241.400 3369170.900 30.00000
+ 622491.400 3369170.900 30.00000
+ 622741.400 3369170.900 30.00000
+ 622991.400 3369170.900 30.00000
+ 623241.400 3369170.900 30.00000
+ 623491.400 3369170.900 30.00000
+ 623616.400 3369170.900 30.00000
+ 623678.900 3369170.900 30.00000
+ 623741.400 3369170.900 30.00000
+ 623866.400 3369170.900 30.00000
+ 623991.400 3369170.900 30.00000
+ 624241.400 3369170.900 30.00000
+ 624491.400 3369170.900 30.00000
+ 624741.400 3369170.900 30.00000
+ 623616.400 3369108.400 30.00000
+ 623678.900 3369108.400 30.00000
+ 623741.400 3369108.400 30.00000
+ 623491.400 3369045.900 30.00000
+ 623616.400 3369045.900 30.00000
+ 623678.900 3369045.900 30.00000
+ 623741.400 3369045.900 30.00000
+ 623866.400 3369045.900 30.00000
+ 623991.400 3369045.900 30.00000
+ 623616.400 3368983.400 30.00000
+ 623678.900 3368983.400 30.00000
+ 623741.400 3368983.400 30.00000
+ 619741.400 3368920.900 30.00000
+ 619991.400 3368920.900 30.00000
+ 620241.400 3368920.900 30.00000
+ 620491.400 3368920.900 30.00000
+ 620741.400 3368920.900 30.00000
+ 620991.400 3368920.900 30.00000
+ 621241.400 3368920.900 30.00000
+ 621491.400 3368920.900 30.00000
+ 621741.400 3368920.900 30.00000
+ 621991.400 3368920.900 30.00000
+ 622241.400 3368920.900 30.00000
+ 622491.400 3368920.900 30.00000
+ 622741.400 3368920.900 30.00000
+ 622991.400 3368920.900 30.00000
+ 623241.400 3368920.900 30.00000
+ 623491.400 3368920.900 30.00000
+ 623616.400 3368920.900 30.00000
+ 623678.900 3368920.900 30.00000
+ 623741.400 3368920.900 30.00000
+ 623866.400 3368920.900 30.00000
+ 623991.400 3368920.900 30.00000
+ 624241.400 3368920.900 30.00000
+ 624491.400 3368920.900 30.00000
+ 624741.400 3368920.900 30.00000
+ 623616.400 3368858.400 30.00000
+ 623678.900 3368858.400 30.00000
+ 623741.400 3368858.400 30.00000
+ 623491.400 3368795.900 30.00000
+ 623616.400 3368795.900 30.00000
+ 623678.900 3368795.900 30.00000
+ 623741.400 3368795.900 30.00000
+ 623866.400 3368795.900 30.00000
+ 623991.400 3368795.900 30.00000
+ 623616.400 3368733.400 30.00000
+ 623678.900 3368733.400 30.00000
+ 623741.400 3368733.400 30.00000
+ 619741.400 3368670.900 30.00000
+ 619991.400 3368670.900 30.00000
+ 620241.400 3368670.900 30.00000
+ 620491.400 3368670.900 30.00000
+ 620741.400 3368670.900 30.00000
+ 620991.400 3368670.900 30.00000
+ 621241.400 3368670.900 30.00000
+ 621491.400 3368670.900 30.00000
+ 621741.400 3368670.900 30.00000
+ 621991.400 3368670.900 30.00000
+ 622241.400 3368670.900 30.00000
+ 622491.400 3368670.900 30.00000
+ 622741.400 3368670.900 30.00000
+ 622991.400 3368670.900 30.00000
+ 623241.400 3368670.900 30.00000
+ 623491.400 3368670.900 30.00000
+ 623616.400 3368670.900 30.00000
+ 623678.900 3368670.900 30.00000
+ 623741.400 3368670.900 30.00000
+ 623866.400 3368670.900 30.00000
+ 623991.400 3368670.900 30.00000
+ 624241.400 3368670.900 30.00000
+ 624491.400 3368670.900 30.00000
+ 624741.400 3368670.900 30.00000
+ 623616.400 3368608.400 30.00000
+ 623678.900 3368608.400 30.00000
+ 623741.400 3368608.400 30.00000
+ 623491.400 3368545.900 30.00000
+ 623616.400 3368545.900 30.00000
+ 623678.900 3368545.900 30.00000
+ 623741.400 3368545.900 30.00000
+ 623866.400 3368545.900 30.00000
+ 623991.400 3368545.900 30.00000
+ 623616.400 3368483.400 30.00000
+ 623678.900 3368483.400 30.00000
+ 623741.400 3368483.400 30.00000
+ 619741.400 3368420.900 30.00000
+ 619991.400 3368420.900 30.00000
+ 620241.400 3368420.900 30.00000
+ 620491.400 3368420.900 30.00000
+ 620741.400 3368420.900 30.00000
+ 620991.400 3368420.900 30.00000
+ 621241.400 3368420.900 30.00000
+ 621491.400 3368420.900 30.00000
+ 621741.400 3368420.900 30.00000
+ 621991.400 3368420.900 30.00000
+ 622241.400 3368420.900 30.00000
+ 622491.400 3368420.900 30.00000
+ 622741.400 3368420.900 30.00000
+ 622991.400 3368420.900 30.00000
+ 623241.400 3368420.900 30.00000
+ 623366.400 3368420.900 30.00000
+ 623491.400 3368420.900 30.00000
+ 623616.400 3368420.900 30.00000
+ 623678.900 3368420.900 30.00000
+ 623741.400 3368420.900 30.00000
+ 623866.400 3368420.900 30.00000
+ 623991.400 3368420.900 30.00000
+ 624241.400 3368420.900 30.00000
+ 624491.400 3368420.900 30.00000
+ 624741.400 3368420.900 30.00000
+ 623616.400 3368358.400 30.00000
+ 623678.900 3368358.400 30.00000
+ 623741.400 3368358.400 30.00000
+ 623241.400 3368295.900 30.00000
+ 623366.400 3368295.900 30.00000
+ 623491.400 3368295.900 30.00000
+ 623616.400 3368295.900 30.00000
+ 623678.900 3368295.900 30.00000
+ 623741.400 3368295.900 30.00000
+ 623866.400 3368295.900 30.00000
+ 623991.400 3368295.900 30.00000
+ 623616.400 3368233.400 30.00000
+ 623678.900 3368233.400 30.00000
+ 623741.400 3368233.400 30.00000
+ 619741.400 3368170.900 30.00000
+ 619991.400 3368170.900 30.00000
+ 620241.400 3368170.900 30.00000
+ 620491.400 3368170.900 30.00000
+ 620741.400 3368170.900 30.00000
+ 620991.400 3368170.900 30.00000
+ 621241.400 3368170.900 30.00000
+ 621491.400 3368170.900 30.00000
+ 621741.400 3368170.900 30.00000
+ 621991.400 3368170.900 30.00000
+ 622241.400 3368170.900 30.00000
+ 622491.400 3368170.900 30.00000
+ 622741.400 3368170.900 30.00000
+ 622991.400 3368170.900 30.00000
+ 623116.400 3368170.900 30.00000
+ 623241.400 3368170.900 30.00000
+ 623303.900 3368170.900 30.00000
+ 623366.400 3368170.900 30.00000
+ 623428.900 3368170.900 30.00000
+ 623491.400 3368170.900 30.00000
+ 623616.400 3368170.900 30.00000
+ 623678.900 3368170.900 30.00000
+ 623741.400 3368170.900 30.00000
+ 623866.400 3368170.900 30.00000
+ 623991.400 3368170.900 30.00000
+ 624241.400 3368170.900 30.00000
+ 624491.400 3368170.900 30.00000
+ 624741.400 3368170.900 30.00000
+ 623241.400 3368108.400 30.00000
+ 623303.900 3368108.400 30.00000
+ 623335.150 3368108.400 30.00000
+ 623366.400 3368108.400 30.00000
+ 623397.650 3368108.400 30.00000
+ 623428.900 3368108.400 30.00000
+ 623491.400 3368108.400 30.00000
+ 623616.400 3368108.400 30.00000
+ 623678.900 3368108.400 30.00000
+ 623741.400 3368108.400 30.00000
+ 623303.900 3368077.150 30.00000
+ 623335.150 3368077.150 30.00000
+ 623366.400 3368077.150 30.00000
+ 623397.650 3368077.150 30.00000
+ 623428.900 3368077.150 30.00000
+ 622991.400 3368045.900 30.00000
+ 623116.400 3368045.900 30.00000
+ 623241.400 3368045.900 30.00000
+ 623303.900 3368045.900 30.00000
+ 623335.150 3368045.900 30.00000
+ 623366.400 3368045.900 30.00000
+ 623397.650 3368045.900 30.00000
+ 623428.900 3368045.900 30.00000
+ 623491.400 3368045.900 30.00000
+ 623616.400 3368045.900 30.00000
+ 623678.900 3368045.900 30.00000
+ 623741.400 3368045.900 30.00000
+ 623866.400 3368045.900 30.00000
+ 623991.400 3368045.900 30.00000
+ 623303.900 3368014.650 30.00000
+ 623335.150 3368014.650 30.00000
+ 623366.400 3368014.650 30.00000
+ 623397.650 3368014.650 30.00000
+ 623428.900 3368014.650 30.00000
+ 623241.400 3367983.400 30.00000
+ 623303.900 3367983.400 30.00000
+ 623335.150 3367983.400 30.00000
+ 623366.400 3367983.400 30.00000
+ 623397.650 3367983.400 30.00000
+ 623428.900 3367983.400 30.00000
+ 623491.400 3367983.400 30.00000
+ 623616.400 3367983.400 30.00000
+ 623678.900 3367983.400 30.00000
+ 623741.400 3367983.400 30.00000
+ 619741.400 3367920.900 30.00000
+ 619991.400 3367920.900 30.00000
+ 620241.400 3367920.900 30.00000
+ 620491.400 3367920.900 30.00000
+ 620741.400 3367920.900 30.00000
+ 620991.400 3367920.900 30.00000
+ 621241.400 3367920.900 30.00000
+ 621491.400 3367920.900 30.00000
+ 621741.400 3367920.900 30.00000
+ 621991.400 3367920.900 30.00000
+ 622241.400 3367920.900 30.00000
+ 622491.400 3367920.900 30.00000
+ 622741.400 3367920.900 30.00000
+ 622991.400 3367920.900 30.00000
+ 623116.400 3367920.900 30.00000
+ 623241.400 3367920.900 30.00000
+ 623303.900 3367920.900 30.00000
+ 623366.400 3367920.900 30.00000
+ 623428.900 3367920.900 30.00000
+ 623491.400 3367920.900 30.00000
+ 623616.400 3367920.900 30.00000
+ 623678.900 3367920.900 30.00000
+ 623741.400 3367920.900 30.00000
+ 623866.400 3367920.900 30.00000
+ 623991.400 3367920.900 30.00000
+ 624241.400 3367920.900 30.00000
+ 624491.400 3367920.900 30.00000
+ 624741.400 3367920.900 30.00000
+ 623616.400 3367858.400 30.00000
+ 623678.900 3367858.400 30.00000
+ 623741.400 3367858.400 30.00000
+ 623241.400 3367795.900 30.00000
+ 623366.400 3367795.900 30.00000
+ 623491.400 3367795.900 30.00000
+ 623616.400 3367795.900 30.00000
+ 623678.900 3367795.900 30.00000
+ 623741.400 3367795.900 30.00000
+ 623866.400 3367795.900 30.00000
+ 623991.400 3367795.900 30.00000
+ 623616.400 3367733.400 30.00000
+ 623678.900 3367733.400 30.00000
+ 623741.400 3367733.400 30.00000
+ 619741.400 3367670.900 30.00000
+ 619991.400 3367670.900 30.00000
+ 620241.400 3367670.900 30.00000
+ 620491.400 3367670.900 30.00000
+ 620741.400 3367670.900 30.00000
+ 620991.400 3367670.900 30.00000
+ 621241.400 3367670.900 30.00000
+ 621491.400 3367670.900 30.00000
+ 621741.400 3367670.900 30.00000
+ 621991.400 3367670.900 30.00000
+ 622241.400 3367670.900 30.00000
+ 622491.400 3367670.900 30.00000
+ 622741.400 3367670.900 30.00000
+ 622991.400 3367670.900 30.00000
+ 623241.400 3367670.900 30.00000
+ 623366.400 3367670.900 30.00000
+ 623491.400 3367670.900 30.00000
+ 623616.400 3367670.900 30.00000
+ 623678.900 3367670.900 30.00000
+ 623741.400 3367670.900 30.00000
+ 623866.400 3367670.900 30.00000
+ 623991.400 3367670.900 30.00000
+ 624241.400 3367670.900 30.00000
+ 624491.400 3367670.900 30.00000
+ 624741.400 3367670.900 30.00000
+ 623616.400 3367608.400 30.00000
+ 623678.900 3367608.400 30.00000
+ 623741.400 3367608.400 30.00000
+ 623491.400 3367545.900 30.00000
+ 623616.400 3367545.900 30.00000
+ 623678.900 3367545.900 30.00000
+ 623741.400 3367545.900 30.00000
+ 623866.400 3367545.900 30.00000
+ 623991.400 3367545.900 30.00000
+ 623616.400 3367483.400 30.00000
+ 623678.900 3367483.400 30.00000
+ 623741.400 3367483.400 30.00000
+ 619741.400 3367420.900 30.00000
+ 619991.400 3367420.900 30.00000
+ 620241.400 3367420.900 30.00000
+ 620491.400 3367420.900 30.00000
+ 620741.400 3367420.900 30.00000
+ 620991.400 3367420.900 30.00000
+ 621241.400 3367420.900 30.00000
+ 621491.400 3367420.900 30.00000
+ 621741.400 3367420.900 30.00000
+ 621991.400 3367420.900 30.00000
+ 622241.400 3367420.900 30.00000
+ 622491.400 3367420.900 30.00000
+ 622741.400 3367420.900 30.00000
+ 622991.400 3367420.900 30.00000
+ 623241.400 3367420.900 30.00000
+ 623491.400 3367420.900 30.00000
+ 623616.400 3367420.900 30.00000
+ 623678.900 3367420.900 30.00000
+ 623741.400 3367420.900 30.00000
+ 623866.400 3367420.900 30.00000
+ 623991.400 3367420.900 30.00000
+ 624241.400 3367420.900 30.00000
+ 624491.400 3367420.900 30.00000
+ 624741.400 3367420.900 30.00000
+ 623616.400 3367358.400 30.00000
+ 623678.900 3367358.400 30.00000
+ 623741.400 3367358.400 30.00000
+ 623491.400 3367295.900 30.00000
+ 623616.400 3367295.900 30.00000
+ 623678.900 3367295.900 30.00000
+ 623741.400 3367295.900 30.00000
+ 623866.400 3367295.900 30.00000
+ 623991.400 3367295.900 30.00000
+ 623616.400 3367233.400 30.00000
+ 623678.900 3367233.400 30.00000
+ 623741.400 3367233.400 30.00000
+ 619741.400 3367170.900 30.00000
+ 619991.400 3367170.900 30.00000
+ 620241.400 3367170.900 30.00000
+ 620491.400 3367170.900 30.00000
+ 620741.400 3367170.900 30.00000
+ 620991.400 3367170.900 30.00000
+ 621241.400 3367170.900 30.00000
+ 621491.400 3367170.900 30.00000
+ 621741.400 3367170.900 30.00000
+ 621991.400 3367170.900 30.00000
+ 622241.400 3367170.900 30.00000
+ 622491.400 3367170.900 30.00000
+ 622741.400 3367170.900 30.00000
+ 622991.400 3367170.900 30.00000
+ 623241.400 3367170.900 30.00000
+ 623491.400 3367170.900 30.00000
+ 623616.400 3367170.900 30.00000
+ 623678.900 3367170.900 30.00000
+ 623741.400 3367170.900 30.00000
+ 623866.400 3367170.900 30.00000
+ 623991.400 3367170.900 30.00000
+ 624241.400 3367170.900 30.00000
+ 624491.400 3367170.900 30.00000
+ 624741.400 3367170.900 30.00000
+ 623616.400 3367108.400 30.00000
+ 623678.900 3367108.400 30.00000
+ 623741.400 3367108.400 30.00000
+ 623491.400 3367045.900 30.00000
+ 623616.400 3367045.900 30.00000
+ 623678.900 3367045.900 30.00000
+ 623741.400 3367045.900 30.00000
+ 623866.400 3367045.900 30.00000
+ 623991.400 3367045.900 30.00000
+ 623616.400 3366983.400 30.00000
+ 623678.900 3366983.400 30.00000
+ 623741.400 3366983.400 30.00000
+ 619741.400 3366920.900 30.00000
+ 619991.400 3366920.900 30.00000
+ 620241.400 3366920.900 30.00000
+ 620491.400 3366920.900 30.00000
+ 620741.400 3366920.900 30.00000
+ 620991.400 3366920.900 30.00000
+ 621241.400 3366920.900 30.00000
+ 621491.400 3366920.900 30.00000
+ 621741.400 3366920.900 30.00000
+ 621991.400 3366920.900 30.00000
+ 622241.400 3366920.900 30.00000
+ 622366.400 3366920.900 30.00000
+ 622491.400 3366920.900 30.00000
+ 622741.400 3366920.900 30.00000
+ 622991.400 3366920.900 30.00000
+ 623241.400 3366920.900 30.00000
+ 623491.400 3366920.900 30.00000
+ 623616.400 3366920.900 30.00000
+ 623678.900 3366920.900 30.00000
+ 623741.400 3366920.900 30.00000
+ 623866.400 3366920.900 30.00000
+ 623991.400 3366920.900 30.00000
+ 624241.400 3366920.900 30.00000
+ 624491.400 3366920.900 30.00000
+ 624741.400 3366920.900 30.00000
+ 623616.400 3366858.400 30.00000
+ 623678.900 3366858.400 30.00000
+ 623741.400 3366858.400 30.00000
+ 622241.400 3366795.900 30.00000
+ 622366.400 3366795.900 30.00000
+ 622491.400 3366795.900 30.00000
+ 623491.400 3366795.900 30.00000
+ 623616.400 3366795.900 30.00000
+ 623678.900 3366795.900 30.00000
+ 623741.400 3366795.900 30.00000
+ 623866.400 3366795.900 30.00000
+ 623991.400 3366795.900 30.00000
+ 623616.400 3366733.400 30.00000
+ 623678.900 3366733.400 30.00000
+ 623741.400 3366733.400 30.00000
+ 619741.400 3366670.900 30.00000
+ 619991.400 3366670.900 30.00000
+ 620241.400 3366670.900 30.00000
+ 620491.400 3366670.900 30.00000
+ 620741.400 3366670.900 30.00000
+ 620991.400 3366670.900 30.00000
+ 621241.400 3366670.900 30.00000
+ 621491.400 3366670.900 30.00000
+ 621741.400 3366670.900 30.00000
+ 621991.400 3366670.900 30.00000
+ 622116.400 3366670.900 30.00000
+ 622241.400 3366670.900 30.00000
+ 622303.900 3366670.900 30.00000
+ 622366.400 3366670.900 30.00000
+ 622428.900 3366670.900 30.00000
+ 622491.400 3366670.900 30.00000
+ 622616.400 3366670.900 30.00000
+ 622741.400 3366670.900 30.00000
+ 622991.400 3366670.900 30.00000
+ 623241.400 3366670.900 30.00000
+ 623491.400 3366670.900 30.00000
+ 623616.400 3366670.900 30.00000
+ 623678.900 3366670.900 30.00000
+ 623741.400 3366670.900 30.00000
+ 623866.400 3366670.900 30.00000
+ 623991.400 3366670.900 30.00000
+ 624241.400 3366670.900 30.00000
+ 624491.400 3366670.900 30.00000
+ 624741.400 3366670.900 30.00000
+ 622241.400 3366608.400 30.00000
+ 622303.900 3366608.400 30.00000
+ 622335.150 3366608.400 30.00000
+ 622366.400 3366608.400 30.00000
+ 622397.650 3366608.400 30.00000
+ 622428.900 3366608.400 30.00000
+ 622491.400 3366608.400 30.00000
+ 623616.400 3366608.400 30.00000
+ 623678.900 3366608.400 30.00000
+ 623741.400 3366608.400 30.00000
+ 622303.900 3366577.150 30.00000
+ 622335.150 3366577.150 30.00000
+ 622366.400 3366577.150 30.00000
+ 622397.650 3366577.150 30.00000
+ 622428.900 3366577.150 30.00000
+ 621991.400 3366545.900 30.00000
+ 622116.400 3366545.900 30.00000
+ 622241.400 3366545.900 30.00000
+ 622303.900 3366545.900 30.00000
+ 622335.150 3366545.900 30.00000
+ 622366.400 3366545.900 30.00000
+ 622397.650 3366545.900 30.00000
+ 622428.900 3366545.900 30.00000
+ 622491.400 3366545.900 30.00000
+ 622616.400 3366545.900 30.00000
+ 622741.400 3366545.900 30.00000
+ 623491.400 3366545.900 30.00000
+ 623616.400 3366545.900 30.00000
+ 623678.900 3366545.900 30.00000
+ 623741.400 3366545.900 30.00000
+ 623866.400 3366545.900 30.00000
+ 623991.400 3366545.900 30.00000
+ 622303.900 3366514.650 30.00000
+ 622335.150 3366514.650 30.00000
+ 622366.400 3366514.650 30.00000
+ 622397.650 3366514.650 30.00000
+ 622428.900 3366514.650 30.00000
+ 622241.400 3366483.400 30.00000
+ 622303.900 3366483.400 30.00000
+ 622335.150 3366483.400 30.00000
+ 622366.400 3366483.400 30.00000
+ 622397.650 3366483.400 30.00000
+ 622428.900 3366483.400 30.00000
+ 622491.400 3366483.400 30.00000
+ 623616.400 3366483.400 30.00000
+ 623678.900 3366483.400 30.00000
+ 623741.400 3366483.400 30.00000
+ 619741.400 3366420.900 30.00000
+ 619991.400 3366420.900 30.00000
+ 620241.400 3366420.900 30.00000
+ 620491.400 3366420.900 30.00000
+ 620741.400 3366420.900 30.00000
+ 620991.400 3366420.900 30.00000
+ 621241.400 3366420.900 30.00000
+ 621491.400 3366420.900 30.00000
+ 621741.400 3366420.900 30.00000
+ 621991.400 3366420.900 30.00000
+ 622116.400 3366420.900 30.00000
+ 622241.400 3366420.900 30.00000
+ 622303.900 3366420.900 30.00000
+ 622366.400 3366420.900 30.00000
+ 622428.900 3366420.900 30.00000
+ 622491.400 3366420.900 30.00000
+ 622616.400 3366420.900 30.00000
+ 622741.400 3366420.900 30.00000
+ 622991.400 3366420.900 30.00000
+ 623241.400 3366420.900 30.00000
+ 623491.400 3366420.900 30.00000
+ 623616.400 3366420.900 30.00000
+ 623678.900 3366420.900 30.00000
+ 623741.400 3366420.900 30.00000
+ 623866.400 3366420.900 30.00000
+ 623991.400 3366420.900 30.00000
+ 624241.400 3366420.900 30.00000
+ 624491.400 3366420.900 30.00000
+ 624741.400 3366420.900 30.00000
+ 623616.400 3366358.400 30.00000
+ 623678.900 3366358.400 30.00000
+ 623741.400 3366358.400 30.00000
+ 622241.400 3366295.900 30.00000
+ 622366.400 3366295.900 30.00000
+ 622491.400 3366295.900 30.00000
+ 623491.400 3366295.900 30.00000
+ 623616.400 3366295.900 30.00000
+ 623678.900 3366295.900 30.00000
+ 623741.400 3366295.900 30.00000
+ 623866.400 3366295.900 30.00000
+ 623991.400 3366295.900 30.00000
+ 623616.400 3366233.400 30.00000
+ 623678.900 3366233.400 30.00000
+ 623741.400 3366233.400 30.00000
+ 619741.400 3366170.900 30.00000
+ 619991.400 3366170.900 30.00000
+ 620241.400 3366170.900 30.00000
+ 620491.400 3366170.900 30.00000
+ 620741.400 3366170.900 30.00000
+ 620991.400 3366170.900 30.00000
+ 621241.400 3366170.900 30.00000
+ 621366.400 3366170.900 30.00000
+ 621491.400 3366170.900 30.00000
+ 621741.400 3366170.900 30.00000
+ 621991.400 3366170.900 30.00000
+ 622241.400 3366170.900 30.00000
+ 622366.400 3366170.900 30.00000
+ 622491.400 3366170.900 30.00000
+ 622741.400 3366170.900 30.00000
+ 622991.400 3366170.900 30.00000
+ 623241.400 3366170.900 30.00000
+ 623491.400 3366170.900 30.00000
+ 623616.400 3366170.900 30.00000
+ 623678.900 3366170.900 30.00000
+ 623741.400 3366170.900 30.00000
+ 623866.400 3366170.900 30.00000
+ 623991.400 3366170.900 30.00000
+ 624241.400 3366170.900 30.00000
+ 624491.400 3366170.900 30.00000
+ 624741.400 3366170.900 30.00000
+ 623616.400 3366108.400 30.00000
+ 623678.900 3366108.400 30.00000
+ 623741.400 3366108.400 30.00000
+ 621241.400 3366045.900 30.00000
+ 621366.400 3366045.900 30.00000
+ 621491.400 3366045.900 30.00000
+ 623491.400 3366045.900 30.00000
+ 623616.400 3366045.900 30.00000
+ 623678.900 3366045.900 30.00000
+ 623741.400 3366045.900 30.00000
+ 623866.400 3366045.900 30.00000
+ 623991.400 3366045.900 30.00000
+ 623616.400 3365983.400 30.00000
+ 623678.900 3365983.400 30.00000
+ 623741.400 3365983.400 30.00000
+ 619741.400 3365920.900 30.00000
+ 619991.400 3365920.900 30.00000
+ 620241.400 3365920.900 30.00000
+ 620491.400 3365920.900 30.00000
+ 620741.400 3365920.900 30.00000
+ 620991.400 3365920.900 30.00000
+ 621116.400 3365920.900 30.00000
+ 621241.400 3365920.900 30.00000
+ 621303.900 3365920.900 30.00000
+ 621366.400 3365920.900 30.00000
+ 621428.900 3365920.900 30.00000
+ 621491.400 3365920.900 30.00000
+ 621616.400 3365920.900 30.00000
+ 621741.400 3365920.900 30.00000
+ 621991.400 3365920.900 30.00000
+ 622241.400 3365920.900 30.00000
+ 622491.400 3365920.900 30.00000
+ 622741.400 3365920.900 30.00000
+ 622991.400 3365920.900 30.00000
+ 623241.400 3365920.900 30.00000
+ 623491.400 3365920.900 30.00000
+ 623616.400 3365920.900 30.00000
+ 623678.900 3365920.900 30.00000
+ 623741.400 3365920.900 30.00000
+ 623866.400 3365920.900 30.00000
+ 623991.400 3365920.900 30.00000
+ 624241.400 3365920.900 30.00000
+ 624491.400 3365920.900 30.00000
+ 624741.400 3365920.900 30.00000
+ 621241.400 3365858.400 30.00000
+ 621303.900 3365858.400 30.00000
+ 621335.150 3365858.400 30.00000
+ 621366.400 3365858.400 30.00000
+ 621397.650 3365858.400 30.00000
+ 621428.900 3365858.400 30.00000
+ 621491.400 3365858.400 30.00000
+ 623616.400 3365858.400 30.00000
+ 623678.900 3365858.400 30.00000
+ 623741.400 3365858.400 30.00000
+ 621303.900 3365827.150 30.00000
+ 621335.150 3365827.150 30.00000
+ 621366.400 3365827.150 30.00000
+ 621397.650 3365827.150 30.00000
+ 621428.900 3365827.150 30.00000
+ 620991.400 3365795.900 30.00000
+ 621116.400 3365795.900 30.00000
+ 621241.400 3365795.900 30.00000
+ 621303.900 3365795.900 30.00000
+ 621335.150 3365795.900 30.00000
+ 621366.400 3365795.900 30.00000
+ 621397.650 3365795.900 30.00000
+ 621428.900 3365795.900 30.00000
+ 621491.400 3365795.900 30.00000
+ 621616.400 3365795.900 30.00000
+ 621741.400 3365795.900 30.00000
+ 623491.400 3365795.900 30.00000
+ 623616.400 3365795.900 30.00000
+ 623678.900 3365795.900 30.00000
+ 623741.400 3365795.900 30.00000
+ 623866.400 3365795.900 30.00000
+ 623991.400 3365795.900 30.00000
+ 621303.900 3365764.650 30.00000
+ 621335.150 3365764.650 30.00000
+ 621366.400 3365764.650 30.00000
+ 621397.650 3365764.650 30.00000
+ 621428.900 3365764.650 30.00000
+ 621241.400 3365733.400 30.00000
+ 621303.900 3365733.400 30.00000
+ 621335.150 3365733.400 30.00000
+ 621366.400 3365733.400 30.00000
+ 621397.650 3365733.400 30.00000
+ 621428.900 3365733.400 30.00000
+ 621491.400 3365733.400 30.00000
+ 623616.400 3365733.400 30.00000
+ 623678.900 3365733.400 30.00000
+ 623741.400 3365733.400 30.00000
+ 619741.400 3365670.900 30.00000
+ 619991.400 3365670.900 30.00000
+ 620241.400 3365670.900 30.00000
+ 620491.400 3365670.900 30.00000
+ 620741.400 3365670.900 30.00000
+ 620991.400 3365670.900 30.00000
+ 621116.400 3365670.900 30.00000
+ 621241.400 3365670.900 30.00000
+ 621303.900 3365670.900 30.00000
+ 621366.400 3365670.900 30.00000
+ 621428.900 3365670.900 30.00000
+ 621491.400 3365670.900 30.00000
+ 621616.400 3365670.900 30.00000
+ 621741.400 3365670.900 30.00000
+ 621991.400 3365670.900 30.00000
+ 622241.400 3365670.900 30.00000
+ 622491.400 3365670.900 30.00000
+ 622741.400 3365670.900 30.00000
+ 622991.400 3365670.900 30.00000
+ 623241.400 3365670.900 30.00000
+ 623491.400 3365670.900 30.00000
+ 623616.400 3365670.900 30.00000
+ 623678.900 3365670.900 30.00000
+ 623741.400 3365670.900 30.00000
+ 623866.400 3365670.900 30.00000
+ 623991.400 3365670.900 30.00000
+ 624241.400 3365670.900 30.00000
+ 624491.400 3365670.900 30.00000
+ 624741.400 3365670.900 30.00000
+ 623616.400 3365608.400 30.00000
+ 623678.900 3365608.400 30.00000
+ 623741.400 3365608.400 30.00000
+ 621241.400 3365545.900 30.00000
+ 621366.400 3365545.900 30.00000
+ 621491.400 3365545.900 30.00000
+ 623491.400 3365545.900 30.00000
+ 623616.400 3365545.900 30.00000
+ 623678.900 3365545.900 30.00000
+ 623741.400 3365545.900 30.00000
+ 623866.400 3365545.900 30.00000
+ 623991.400 3365545.900 30.00000
+ 623616.400 3365483.400 30.00000
+ 623678.900 3365483.400 30.00000
+ 623741.400 3365483.400 30.00000
+ 619741.400 3365420.900 30.00000
+ 619991.400 3365420.900 30.00000
+ 620241.400 3365420.900 30.00000
+ 620491.400 3365420.900 30.00000
+ 620741.400 3365420.900 30.00000
+ 620991.400 3365420.900 30.00000
+ 621241.400 3365420.900 30.00000
+ 621366.400 3365420.900 30.00000
+ 621491.400 3365420.900 30.00000
+ 621741.400 3365420.900 30.00000
+ 621991.400 3365420.900 30.00000
+ 622241.400 3365420.900 30.00000
+ 622491.400 3365420.900 30.00000
+ 622741.400 3365420.900 30.00000
+ 622991.400 3365420.900 30.00000
+ 623241.400 3365420.900 30.00000
+ 623491.400 3365420.900 30.00000
+ 623616.400 3365420.900 30.00000
+ 623678.900 3365420.900 30.00000
+ 623741.400 3365420.900 30.00000
+ 623866.400 3365420.900 30.00000
+ 623991.400 3365420.900 30.00000
+ 624241.400 3365420.900 30.00000
+ 624491.400 3365420.900 30.00000
+ 624741.400 3365420.900 30.00000
+ 623616.400 3365358.400 30.00000
+ 623678.900 3365358.400 30.00000
+ 623741.400 3365358.400 30.00000
+ 623491.400 3365295.900 30.00000
+ 623616.400 3365295.900 30.00000
+ 623678.900 3365295.900 30.00000
+ 623741.400 3365295.900 30.00000
+ 623866.400 3365295.900 30.00000
+ 623991.400 3365295.900 30.00000
+ 623616.400 3365233.400 30.00000
+ 623678.900 3365233.400 30.00000
+ 623741.400 3365233.400 30.00000
+ 619741.400 3365170.900 30.00000
+ 619991.400 3365170.900 30.00000
+ 620241.400 3365170.900 30.00000
+ 620491.400 3365170.900 30.00000
+ 620741.400 3365170.900 30.00000
+ 620991.400 3365170.900 30.00000
+ 621241.400 3365170.900 30.00000
+ 621491.400 3365170.900 30.00000
+ 621741.400 3365170.900 30.00000
+ 621991.400 3365170.900 30.00000
+ 622241.400 3365170.900 30.00000
+ 622491.400 3365170.900 30.00000
+ 622741.400 3365170.900 30.00000
+ 622991.400 3365170.900 30.00000
+ 623241.400 3365170.900 30.00000
+ 623491.400 3365170.900 30.00000
+ 623616.400 3365170.900 30.00000
+ 623678.900 3365170.900 30.00000
+ 623741.400 3365170.900 30.00000
+ 623866.400 3365170.900 30.00000
+ 623991.400 3365170.900 30.00000
+ 624241.400 3365170.900 30.00000
+ 624491.400 3365170.900 30.00000
+ 624741.400 3365170.900 30.00000
+ 623616.400 3365108.400 30.00000
+ 623678.900 3365108.400 30.00000
+ 623741.400 3365108.400 30.00000
+ 623491.400 3365045.900 30.00000
+ 623616.400 3365045.900 30.00000
+ 623678.900 3365045.900 30.00000
+ 623741.400 3365045.900 30.00000
+ 623866.400 3365045.900 30.00000
+ 623991.400 3365045.900 30.00000
+ 623616.400 3364983.400 30.00000
+ 623678.900 3364983.400 30.00000
+ 623741.400 3364983.400 30.00000
+ 619741.400 3364920.900 30.00000
+ 619991.400 3364920.900 30.00000
+ 620241.400 3364920.900 30.00000
+ 620491.400 3364920.900 30.00000
+ 620741.400 3364920.900 30.00000
+ 620991.400 3364920.900 30.00000
+ 621241.400 3364920.900 30.00000
+ 621491.400 3364920.900 30.00000
+ 621741.400 3364920.900 30.00000
+ 621991.400 3364920.900 30.00000
+ 622241.400 3364920.900 30.00000
+ 622491.400 3364920.900 30.00000
+ 622741.400 3364920.900 30.00000
+ 622866.400 3364920.900 30.00000
+ 622991.400 3364920.900 30.00000
+ 623241.400 3364920.900 30.00000
+ 623491.400 3364920.900 30.00000
+ 623616.400 3364920.900 30.00000
+ 623678.900 3364920.900 30.00000
+ 623741.400 3364920.900 30.00000
+ 623866.400 3364920.900 30.00000
+ 623991.400 3364920.900 30.00000
+ 624241.400 3364920.900 30.00000
+ 624491.400 3364920.900 30.00000
+ 624741.400 3364920.900 30.00000
+ 623616.400 3364858.400 30.00000
+ 623678.900 3364858.400 30.00000
+ 623741.400 3364858.400 30.00000
+ 622741.400 3364795.900 30.00000
+ 622866.400 3364795.900 30.00000
+ 622991.400 3364795.900 30.00000
+ 623491.400 3364795.900 30.00000
+ 623616.400 3364795.900 30.00000
+ 623678.900 3364795.900 30.00000
+ 623741.400 3364795.900 30.00000
+ 623866.400 3364795.900 30.00000
+ 623991.400 3364795.900 30.00000
+ 623616.400 3364733.400 30.00000
+ 623678.900 3364733.400 30.00000
+ 623741.400 3364733.400 30.00000
+ 619741.400 3364670.900 30.00000
+ 619991.400 3364670.900 30.00000
+ 620241.400 3364670.900 30.00000
+ 620491.400 3364670.900 30.00000
+ 620741.400 3364670.900 30.00000
+ 620991.400 3364670.900 30.00000
+ 621241.400 3364670.900 30.00000
+ 621491.400 3364670.900 30.00000
+ 621741.400 3364670.900 30.00000
+ 621991.400 3364670.900 30.00000
+ 622241.400 3364670.900 30.00000
+ 622491.400 3364670.900 30.00000
+ 622616.400 3364670.900 30.00000
+ 622741.400 3364670.900 30.00000
+ 622803.900 3364670.900 30.00000
+ 622866.400 3364670.900 30.00000
+ 622928.900 3364670.900 30.00000
+ 622991.400 3364670.900 30.00000
+ 623116.400 3364670.900 30.00000
+ 623241.400 3364670.900 30.00000
+ 623491.400 3364670.900 30.00000
+ 623616.400 3364670.900 30.00000
+ 623678.900 3364670.900 30.00000
+ 623741.400 3364670.900 30.00000
+ 623866.400 3364670.900 30.00000
+ 623991.400 3364670.900 30.00000
+ 624241.400 3364670.900 30.00000
+ 624491.400 3364670.900 30.00000
+ 624741.400 3364670.900 30.00000
+ 622741.400 3364608.400 30.00000
+ 622803.900 3364608.400 30.00000
+ 622835.150 3364608.400 30.00000
+ 622866.400 3364608.400 30.00000
+ 622897.650 3364608.400 30.00000
+ 622928.900 3364608.400 30.00000
+ 622991.400 3364608.400 30.00000
+ 623616.400 3364608.400 30.00000
+ 623678.900 3364608.400 30.00000
+ 623741.400 3364608.400 30.00000
+ 622803.900 3364577.150 30.00000
+ 622835.150 3364577.150 30.00000
+ 622866.400 3364577.150 30.00000
+ 622897.650 3364577.150 30.00000
+ 622928.900 3364577.150 30.00000
+ 622491.400 3364545.900 30.00000
+ 622616.400 3364545.900 30.00000
+ 622741.400 3364545.900 30.00000
+ 622803.900 3364545.900 30.00000
+ 622835.150 3364545.900 30.00000
+ 622866.400 3364545.900 30.00000
+ 622897.650 3364545.900 30.00000
+ 622928.900 3364545.900 30.00000
+ 622991.400 3364545.900 30.00000
+ 623116.400 3364545.900 30.00000
+ 623241.400 3364545.900 30.00000
+ 623491.400 3364545.900 30.00000
+ 623616.400 3364545.900 30.00000
+ 623678.900 3364545.900 30.00000
+ 623741.400 3364545.900 30.00000
+ 623866.400 3364545.900 30.00000
+ 623991.400 3364545.900 30.00000
+ 622803.900 3364514.650 30.00000
+ 622835.150 3364514.650 30.00000
+ 622866.400 3364514.650 30.00000
+ 622897.650 3364514.650 30.00000
+ 622928.900 3364514.650 30.00000
+ 622741.400 3364483.400 30.00000
+ 622803.900 3364483.400 30.00000
+ 622835.150 3364483.400 30.00000
+ 622866.400 3364483.400 30.00000
+ 622897.650 3364483.400 30.00000
+ 622928.900 3364483.400 30.00000
+ 622991.400 3364483.400 30.00000
+ 623616.400 3364483.400 30.00000
+ 623678.900 3364483.400 30.00000
+ 623741.400 3364483.400 30.00000
+ 619741.400 3364420.900 30.00000
+ 619991.400 3364420.900 30.00000
+ 620241.400 3364420.900 30.00000
+ 620491.400 3364420.900 30.00000
+ 620741.400 3364420.900 30.00000
+ 620991.400 3364420.900 30.00000
+ 621241.400 3364420.900 30.00000
+ 621491.400 3364420.900 30.00000
+ 621741.400 3364420.900 30.00000
+ 621991.400 3364420.900 30.00000
+ 622241.400 3364420.900 30.00000
+ 622491.400 3364420.900 30.00000
+ 622616.400 3364420.900 30.00000
+ 622741.400 3364420.900 30.00000
+ 622803.900 3364420.900 30.00000
+ 622866.400 3364420.900 30.00000
+ 622928.900 3364420.900 30.00000
+ 622991.400 3364420.900 30.00000
+ 623116.400 3364420.900 30.00000
+ 623241.400 3364420.900 30.00000
+ 623491.400 3364420.900 30.00000
+ 623616.400 3364420.900 30.00000
+ 623678.900 3364420.900 30.00000
+ 623741.400 3364420.900 30.00000
+ 623866.400 3364420.900 30.00000
+ 623991.400 3364420.900 30.00000
+ 624241.400 3364420.900 30.00000
+ 624491.400 3364420.900 30.00000
+ 624741.400 3364420.900 30.00000
+ 623616.400 3364358.400 30.00000
+ 623678.900 3364358.400 30.00000
+ 623741.400 3364358.400 30.00000
+ 622741.400 3364295.900 30.00000
+ 622866.400 3364295.900 30.00000
+ 622991.400 3364295.900 30.00000
+ 623491.400 3364295.900 30.00000
+ 623616.400 3364295.900 30.00000
+ 623678.900 3364295.900 30.00000
+ 623741.400 3364295.900 30.00000
+ 623866.400 3364295.900 30.00000
+ 623991.400 3364295.900 30.00000
+ 623616.400 3364233.400 30.00000
+ 623678.900 3364233.400 30.00000
+ 623741.400 3364233.400 30.00000
+ 619741.400 3364170.900 30.00000
+ 619991.400 3364170.900 30.00000
+ 620241.400 3364170.900 30.00000
+ 620491.400 3364170.900 30.00000
+ 620741.400 3364170.900 30.00000
+ 620991.400 3364170.900 30.00000
+ 621241.400 3364170.900 30.00000
+ 621491.400 3364170.900 30.00000
+ 621741.400 3364170.900 30.00000
+ 621991.400 3364170.900 30.00000
+ 622241.400 3364170.900 30.00000
+ 622491.400 3364170.900 30.00000
+ 622741.400 3364170.900 30.00000
+ 622866.400 3364170.900 30.00000
+ 622991.400 3364170.900 30.00000
+ 623241.400 3364170.900 30.00000
+ 623491.400 3364170.900 30.00000
+ 623616.400 3364170.900 30.00000
+ 623678.900 3364170.900 30.00000
+ 623741.400 3364170.900 30.00000
+ 623866.400 3364170.900 30.00000
+ 623991.400 3364170.900 30.00000
+ 624241.400 3364170.900 30.00000
+ 624491.400 3364170.900 30.00000
+ 624741.400 3364170.900 30.00000
+ 623616.400 3364108.400 30.00000
+ 623678.900 3364108.400 30.00000
+ 623741.400 3364108.400 30.00000
+ 623491.400 3364045.900 30.00000
+ 623616.400 3364045.900 30.00000
+ 623678.900 3364045.900 30.00000
+ 623741.400 3364045.900 30.00000
+ 623866.400 3364045.900 30.00000
+ 623991.400 3364045.900 30.00000
+ 623616.400 3363983.400 30.00000
+ 623678.900 3363983.400 30.00000
+ 623741.400 3363983.400 30.00000
+ 619741.400 3363920.900 30.00000
+ 619991.400 3363920.900 30.00000
+ 620241.400 3363920.900 30.00000
+ 620491.400 3363920.900 30.00000
+ 620741.400 3363920.900 30.00000
+ 620991.400 3363920.900 30.00000
+ 621241.400 3363920.900 30.00000
+ 621491.400 3363920.900 30.00000
+ 621741.400 3363920.900 30.00000
+ 621991.400 3363920.900 30.00000
+ 622241.400 3363920.900 30.00000
+ 622491.400 3363920.900 30.00000
+ 622741.400 3363920.900 30.00000
+ 622991.400 3363920.900 30.00000
+ 623241.400 3363920.900 30.00000
+ 623491.400 3363920.900 30.00000
+ 623616.400 3363920.900 30.00000
+ 623678.900 3363920.900 30.00000
+ 623741.400 3363920.900 30.00000
+ 623866.400 3363920.900 30.00000
+ 623991.400 3363920.900 30.00000
+ 624241.400 3363920.900 30.00000
+ 624491.400 3363920.900 30.00000
+ 624741.400 3363920.900 30.00000
+ 623616.400 3363858.400 30.00000
+ 623678.900 3363858.400 30.00000
+ 623741.400 3363858.400 30.00000
+ 623491.400 3363795.900 30.00000
+ 623616.400 3363795.900 30.00000
+ 623678.900 3363795.900 30.00000
+ 623741.400 3363795.900 30.00000
+ 623866.400 3363795.900 30.00000
+ 623991.400 3363795.900 30.00000
+ 623616.400 3363733.400 30.00000
+ 623678.900 3363733.400 30.00000
+ 623741.400 3363733.400 30.00000
+ 619741.400 3363670.900 30.00000
+ 619991.400 3363670.900 30.00000
+ 620241.400 3363670.900 30.00000
+ 620491.400 3363670.900 30.00000
+ 620741.400 3363670.900 30.00000
+ 620991.400 3363670.900 30.00000
+ 621241.400 3363670.900 30.00000
+ 621491.400 3363670.900 30.00000
+ 621741.400 3363670.900 30.00000
+ 621991.400 3363670.900 30.00000
+ 622241.400 3363670.900 30.00000
+ 622491.400 3363670.900 30.00000
+ 622741.400 3363670.900 30.00000
+ 622991.400 3363670.900 30.00000
+ 623241.400 3363670.900 30.00000
+ 623491.400 3363670.900 30.00000
+ 623616.400 3363670.900 30.00000
+ 623678.900 3363670.900 30.00000
+ 623741.400 3363670.900 30.00000
+ 623866.400 3363670.900 30.00000
+ 623991.400 3363670.900 30.00000
+ 624241.400 3363670.900 30.00000
+ 624491.400 3363670.900 30.00000
+ 624741.400 3363670.900 30.00000
+ 623616.400 3363608.400 30.00000
+ 623678.900 3363608.400 30.00000
+ 623741.400 3363608.400 30.00000
+ 623491.400 3363545.900 30.00000
+ 623616.400 3363545.900 30.00000
+ 623678.900 3363545.900 30.00000
+ 623741.400 3363545.900 30.00000
+ 623866.400 3363545.900 30.00000
+ 623991.400 3363545.900 30.00000
+ 623616.400 3363483.400 30.00000
+ 623678.900 3363483.400 30.00000
+ 623741.400 3363483.400 30.00000
+ 619741.400 3363420.900 30.00000
+ 619991.400 3363420.900 30.00000
+ 620241.400 3363420.900 30.00000
+ 620491.400 3363420.900 30.00000
+ 620741.400 3363420.900 30.00000
+ 620991.400 3363420.900 30.00000
+ 621241.400 3363420.900 30.00000
+ 621491.400 3363420.900 30.00000
+ 621741.400 3363420.900 30.00000
+ 621991.400 3363420.900 30.00000
+ 622241.400 3363420.900 30.00000
+ 622491.400 3363420.900 30.00000
+ 622741.400 3363420.900 30.00000
+ 622991.400 3363420.900 30.00000
+ 623241.400 3363420.900 30.00000
+ 623491.400 3363420.900 30.00000
+ 623616.400 3363420.900 30.00000
+ 623678.900 3363420.900 30.00000
+ 623741.400 3363420.900 30.00000
+ 623866.400 3363420.900 30.00000
+ 623991.400 3363420.900 30.00000
+ 624241.400 3363420.900 30.00000
+ 624491.400 3363420.900 30.00000
+ 624741.400 3363420.900 30.00000
+ 623616.400 3363358.400 30.00000
+ 623678.900 3363358.400 30.00000
+ 623741.400 3363358.400 30.00000
+ 623491.400 3363295.900 30.00000
+ 623616.400 3363295.900 30.00000
+ 623678.900 3363295.900 30.00000
+ 623741.400 3363295.900 30.00000
+ 623866.400 3363295.900 30.00000
+ 623991.400 3363295.900 30.00000
+ 623616.400 3363233.400 30.00000
+ 623678.900 3363233.400 30.00000
+ 623741.400 3363233.400 30.00000
+ 619741.400 3363170.900 30.00000
+ 619991.400 3363170.900 30.00000
+ 620241.400 3363170.900 30.00000
+ 620491.400 3363170.900 30.00000
+ 620741.400 3363170.900 30.00000
+ 620991.400 3363170.900 30.00000
+ 621241.400 3363170.900 30.00000
+ 621491.400 3363170.900 30.00000
+ 621741.400 3363170.900 30.00000
+ 621991.400 3363170.900 30.00000
+ 622241.400 3363170.900 30.00000
+ 622491.400 3363170.900 30.00000
+ 622741.400 3363170.900 30.00000
+ 622991.400 3363170.900 30.00000
+ 623241.400 3363170.900 30.00000
+ 623491.400 3363170.900 30.00000
+ 623616.400 3363170.900 30.00000
+ 623678.900 3363170.900 30.00000
+ 623741.400 3363170.900 30.00000
+ 623866.400 3363170.900 30.00000
+ 623991.400 3363170.900 30.00000
+ 624241.400 3363170.900 30.00000
+ 624491.400 3363170.900 30.00000
+ 624741.400 3363170.900 30.00000
+ 619741.400 3373170.900 8.880653
+ 619991.400 3373170.900 19.38413
+ 620241.400 3373170.900 19.25667
+ 620491.400 3373170.900 19.09886
+ 620741.400 3373170.900 18.91068
+ 620991.400 3373170.900 18.69319
+ 621241.400 3373170.900 18.44847
+ 621491.400 3373170.900 18.18066
+ 621741.400 3373170.900 17.89940
+ 621991.400 3373170.900 17.62741
+ 622241.400 3373170.900 17.39678
+ 622491.400 3373170.900 17.26174
+ 622741.400 3373170.900 17.24628
+ 622991.400 3373170.900 17.31923
+ 623241.400 3373170.900 17.44062
+ 623491.400 3373170.900 17.57239
+ 623616.400 3373170.900 17.63706
+ 623678.900 3373170.900 17.66073
+ 623741.400 3373170.900 17.68440
+ 623866.400 3373170.900 17.73174
+ 623991.400 3373170.900 17.75387
+ 624241.400 3373170.900 17.77622
+ 624491.400 3373170.900 17.76354
+ 624741.400 3373170.900 17.75065
+ 623616.400 3373108.400 11.45559
+ 623678.900 3373108.400 11.49110
+ 623741.400 3373108.400 11.52660
+ 623491.400 3373045.900 5.144784
+ 623616.400 3373045.900 5.274121
+ 623678.900 3373045.900 5.321461
+ 623741.400 3373045.900 5.368801
+ 623866.400 3373045.900 5.463481
+ 623991.400 3373045.900 5.507744
+ 623616.400 3372983.400 5.287409
+ 623678.900 3372983.400 5.338588
+ 623741.400 3372983.400 5.389768
+ 619741.400 3372920.900 9.054935
+ 619991.400 3372920.900 8.942064
+ 620241.400 3372920.900 8.683777
+ 620491.400 3372920.900 8.359706
+ 620741.400 3372920.900 7.969609
+ 620991.400 3372920.900 7.515166
+ 621241.400 3372920.900 6.999208
+ 621491.400 3372920.900 6.425861
+ 621741.400 3372920.900 5.806104
+ 621991.400 3372920.900 5.179490
+ 622241.400 3372920.900 4.635690
+ 622491.400 3372920.900 4.331569
+ 622741.400 3372920.900 4.326819
+ 622991.400 3372920.900 4.526959
+ 623241.400 3372920.900 4.827000
+ 623491.400 3372920.900 5.145209
+ 623616.400 3372920.900 5.300697
+ 623678.900 3372920.900 5.355716
+ 623741.400 3372920.900 5.410734
+ 623866.400 3372920.900 5.520771
+ 623991.400 3372920.900 5.561951
+ 624241.400 3372920.900 5.591176
+ 624491.400 3372920.900 5.541986
+ 624741.400 3372920.900 5.504752
+ 623616.400 3372858.400 5.313986
+ 623678.900 3372858.400 5.372843
+ 623741.400 3372858.400 5.431701
+ 623491.400 3372795.900 5.145634
+ 623616.400 3372795.900 5.327274
+ 623678.900 3372795.900 5.389970
+ 623741.400 3372795.900 5.452667
+ 623866.400 3372795.900 5.578060
+ 623991.400 3372795.900 5.616158
+ 623616.400 3372733.400 5.346508
+ 623678.900 3372733.400 5.415416
+ 623741.400 3372733.400 5.484324
+ 619741.400 3372670.900 9.423283
+ 619991.400 3372670.900 9.310890
+ 620241.400 3372670.900 9.048403
+ 620491.400 3372670.900 8.709609
+ 620741.400 3372670.900 8.294326
+ 620991.400 3372670.900 7.804805
+ 621241.400 3372670.900 7.243215
+ 621491.400 3372670.900 6.607287
+ 621741.400 3372670.900 5.886172
+ 621991.400 3372670.900 5.077652
+ 622241.400 3372670.900 4.303061
+ 622491.400 3372670.900 3.905694
+ 622741.400 3372670.900 3.988214
+ 622991.400 3372670.900 4.312042
+ 623241.400 3372670.900 4.722523
+ 623491.400 3372670.900 5.152446
+ 623616.400 3372670.900 5.365741
+ 623678.900 3372670.900 5.440862
+ 623741.400 3372670.900 5.515982
+ 623866.400 3372670.900 5.666223
+ 623991.400 3372670.900 5.686692
+ 624241.400 3372670.900 5.659517
+ 624491.400 3372670.900 5.549831
+ 624741.400 3372670.900 5.487789
+ 623616.400 3372608.400 5.384974
+ 623678.900 3372608.400 5.466307
+ 623741.400 3372608.400 5.547639
+ 623491.400 3372545.900 5.159257
+ 623616.400 3372545.900 5.404208
+ 623678.900 3372545.900 5.491753
+ 623741.400 3372545.900 5.579297
+ 623866.400 3372545.900 5.754386
+ 623991.400 3372545.900 5.757226
+ 623616.400 3372483.400 5.396277
+ 623678.900 3372483.400 5.501155
+ 623741.400 3372483.400 5.606033
+ 619741.400 3372420.900 9.831145
+ 619991.400 3372420.900 9.722292
+ 620241.400 3372420.900 9.460863
+ 620491.400 3372420.900 9.111092
+ 620741.400 3372420.900 8.674063
+ 620991.400 3372420.900 8.155684
+ 621241.400 3372420.900 7.563431
+ 621491.400 3372420.900 6.899240
+ 621741.400 3372420.900 6.142502
+ 621991.400 3372420.900 5.206448
+ 622241.400 3372420.900 4.013268
+ 622491.400 3372420.900 3.450279
+ 622741.400 3372420.900 3.740421
+ 622991.400 3372420.900 4.151849
+ 623241.400 3372420.900 4.618478
+ 623491.400 3372420.900 5.125888
+ 623616.400 3372420.900 5.388346
+ 623678.900 3372420.900 5.510558
+ 623741.400 3372420.900 5.632770
+ 623866.400 3372420.900 5.877193
+ 623991.400 3372420.900 5.810819
+ 624241.400 3372420.900 5.654961
+ 624491.400 3372420.900 5.484912
+ 624741.400 3372420.900 5.404347
+ 623616.400 3372358.400 5.380415
+ 623678.900 3372358.400 5.519960
+ 623741.400 3372358.400 5.659506
+ 623491.400 3372295.900 5.092519
+ 623616.400 3372295.900 5.372484
+ 623678.900 3372295.900 5.529363
+ 623741.400 3372295.900 5.686242
+ 623866.400 3372295.900 6.000000
+ 623991.400 3372295.900 5.864412
+ 623616.400 3372233.400 5.285988
+ 623678.900 3372233.400 5.423886
+ 623741.400 3372233.400 5.561785
+ 619741.400 3372170.900 10.27760
+ 619991.400 3372170.900 10.17588
+ 620241.400 3372170.900 9.921024
+ 620491.400 3372170.900 9.562312
+ 620741.400 3372170.900 9.102858
+ 620991.400 3372170.900 8.555164
+ 621241.400 3372170.900 7.938186
+ 621491.400 3372170.900 7.272411
+ 621741.400 3372170.900 6.570571
+ 621991.400 3372170.900 5.804785
+ 622241.400 3372170.900 4.549474
+ 622491.400 3372170.900 3.689795
+ 622741.400 3372170.900 3.800331
+ 622991.400 3372170.900 4.098365
+ 623241.400 3372170.900 4.491218
+ 623491.400 3372170.900 4.953492
+ 623616.400 3372170.900 5.199492
+ 623678.900 3372170.900 5.318410
+ 623741.400 3372170.900 5.437328
+ 623866.400 3372170.900 5.675165
+ 623991.400 3372170.900 5.609365
+ 624241.400 3372170.900 5.458928
+ 624491.400 3372170.900 5.300536
+ 624741.400 3372170.900 5.226781
+ 623616.400 3372108.400 5.112995
+ 623678.900 3372108.400 5.212933
+ 623741.400 3372108.400 5.312871
+ 623491.400 3372045.900 4.814466
+ 623616.400 3372045.900 5.026499
+ 623678.900 3372045.900 5.107457
+ 623741.400 3372045.900 5.188415
+ 623866.400 3372045.900 5.350330
+ 623991.400 3372045.900 5.354319
+ 623616.400 3371983.400 4.906529
+ 623678.900 3371983.400 4.980350
+ 623741.400 3371983.400 5.054170
+ 619741.400 3371920.900 10.75984
+ 619991.400 3371920.900 10.66986
+ 620241.400 3371920.900 10.42782
+ 620491.400 3371920.900 10.05974
+ 620741.400 3371920.900 9.570514
+ 620991.400 3371920.900 8.981050
+ 621241.400 3371920.900 8.323520
+ 621491.400 3371920.900 7.635723
+ 621741.400 3371920.900 6.956119
+ 621991.400 3371920.900 6.304506
+ 622241.400 3371920.900 5.343906
+ 622491.400 3371920.900 4.411178
+ 622741.400 3371920.900 4.078268
+ 622991.400 3371920.900 4.107700
+ 623241.400 3371920.900 4.315745
+ 623491.400 3371920.900 4.619343
+ 623616.400 3371920.900 4.786559
+ 623678.900 3371920.900 4.853242
+ 623741.400 3371920.900 4.919925
+ 623866.400 3371920.900 5.053291
+ 623991.400 3371920.900 5.077985
+ 624241.400 3371920.900 5.071202
+ 624491.400 3371920.900 4.998875
+ 624741.400 3371920.900 4.958025
+ 623616.400 3371858.400 4.666590
+ 623678.900 3371858.400 4.726135
+ 623741.400 3371858.400 4.785681
+ 623491.400 3371795.900 4.424220
+ 623616.400 3371795.900 4.546620
+ 623678.900 3371795.900 4.599028
+ 623741.400 3371795.900 4.651436
+ 623866.400 3371795.900 4.756253
+ 623991.400 3371795.900 4.801651
+ 623616.400 3371733.400 4.421767
+ 623678.900 3371733.400 4.470798
+ 623741.400 3371733.400 4.519828
+ 619741.400 3371670.900 11.27211
+ 619991.400 3371670.900 11.20061
+ 620241.400 3371670.900 10.98021
+ 620491.400 3371670.900 10.60023
+ 620741.400 3371670.900 10.06639
+ 620991.400 3371670.900 9.410889
+ 621241.400 3371670.900 8.679874
+ 621491.400 3371670.900 7.919179
+ 621741.400 3371670.900 7.159782
+ 621991.400 3371670.900 6.378808
+ 622241.400 3371670.900 5.526903
+ 622491.400 3371670.900 4.750031
+ 622741.400 3371670.900 4.263341
+ 622991.400 3371670.900 4.070365
+ 623241.400 3371670.900 4.078567
+ 623491.400 3371670.900 4.209476
+ 623616.400 3371670.900 4.296914
+ 623678.900 3371670.900 4.342566
+ 623741.400 3371670.900 4.388219
+ 623866.400 3371670.900 4.479524
+ 623991.400 3371670.900 4.536077
+ 624241.400 3371670.900 4.612540
+ 624491.400 3371670.900 4.632567
+ 624741.400 3371670.900 4.632684
+ 623616.400 3371608.400 4.172061
+ 623678.900 3371608.400 4.214336
+ 623741.400 3371608.400 4.256610
+ 623491.400 3371545.900 3.994733
+ 623616.400 3371545.900 4.047209
+ 623678.900 3371545.900 4.086105
+ 623741.400 3371545.900 4.125002
+ 623866.400 3371545.900 4.202795
+ 623991.400 3371545.900 4.270503
+ 623616.400 3371483.400 3.918895
+ 623678.900 3371483.400 3.957601
+ 623741.400 3371483.400 3.996308
+ 619741.400 3371420.900 11.80247
+ 619991.400 3371420.900 11.76070
+ 620241.400 3371420.900 11.57740
+ 620491.400 3371420.900 11.18209
+ 620741.400 3371420.900 10.58041
+ 620991.400 3371420.900 9.825766
+ 621241.400 3371420.900 8.986041
+ 621491.400 3371420.900 8.115953
+ 621741.400 3371420.900 7.246294
+ 621991.400 3371420.900 6.383160
+ 622241.400 3371420.900 5.545132
+ 622491.400 3371420.900 4.806639
+ 622741.400 3371420.900 4.258653
+ 622991.400 3371420.900 3.927959
+ 623241.400 3371420.900 3.777810
+ 623491.400 3371420.900 3.766003
+ 623616.400 3371420.900 3.790580
+ 623678.900 3371420.900 3.829098
+ 623741.400 3371420.900 3.867615
+ 623866.400 3371420.900 3.944649
+ 623991.400 3371420.900 4.025271
+ 624241.400 3371420.900 4.163844
+ 624491.400 3371420.900 4.257901
+ 624741.400 3371420.900 4.294008
+ 623616.400 3371358.400 3.662266
+ 623678.900 3371358.400 3.700593
+ 623741.400 3371358.400 3.738921
+ 623491.400 3371295.900 3.537272
+ 623616.400 3371295.900 3.533952
+ 623678.900 3371295.900 3.572089
+ 623741.400 3371295.900 3.610227
+ 623866.400 3371295.900 3.686502
+ 623991.400 3371295.900 3.780039
+ 623616.400 3371233.400 3.400464
+ 623678.900 3371233.400 3.445163
+ 623741.400 3371233.400 3.489862
+ 619741.400 3371170.900 12.32434
+ 619991.400 3371170.900 12.33224
+ 620241.400 3371170.900 12.21671
+ 620491.400 3371170.900 11.80304
+ 620741.400 3371170.900 11.09626
+ 620991.400 3371170.900 10.20094
+ 621241.400 3371170.900 9.223822
+ 621491.400 3371170.900 8.230377
+ 621741.400 3371170.900 7.255105
+ 621991.400 3371170.900 6.318538
+ 622241.400 3371170.900 5.450754
+ 622491.400 3371170.900 4.696234
+ 622741.400 3371170.900 4.102444
+ 622991.400 3371170.900 3.691509
+ 623241.400 3371170.900 3.440108
+ 623491.400 3371170.900 3.307969
+ 623616.400 3371170.900 3.266976
+ 623678.900 3371170.900 3.318237
+ 623741.400 3371170.900 3.369498
+ 623866.400 3371170.900 3.472019
+ 623991.400 3371170.900 3.576849
+ 624241.400 3371170.900 3.766486
+ 624491.400 3371170.900 3.914002
+ 624741.400 3371170.900 3.976711
+ 623616.400 3371108.400 3.133488
+ 623678.900 3371108.400 3.191311
+ 623741.400 3371108.400 3.249133
+ 623491.400 3371045.900 3.078665
+ 623616.400 3371045.900 3.000000
+ 623678.900 3371045.900 3.064384
+ 623741.400 3371045.900 3.128768
+ 623866.400 3371045.900 3.257537
+ 623991.400 3371045.900 3.373660
+ 623616.400 3370983.400 2.962771
+ 623678.900 3370983.400 3.020262
+ 623741.400 3370983.400 3.077753
+ 619741.400 3370920.900 12.77613
+ 619991.400 3370920.900 12.86571
+ 620241.400 3370920.900 12.88233
+ 620491.400 3370920.900 12.44841
+ 620741.400 3370920.900 11.56824
+ 620991.400 3370920.900 10.48659
+ 621241.400 3370920.900 9.360056
+ 621491.400 3370920.900 8.247843
+ 621741.400 3370920.900 7.178145
+ 621991.400 3370920.900 6.172270
+ 622241.400 3370920.900 5.258671
+ 622491.400 3370920.900 4.468457
+ 622741.400 3370920.900 3.837038
+ 622991.400 3370920.900 3.394577
+ 623241.400 3370920.900 3.122292
+ 623491.400 3370920.900 2.973748
+ 623616.400 3370920.900 2.925542
+ 623678.900 3370920.900 2.976139
+ 623741.400 3370920.900 3.026737
+ 623803.900 3370920.900 3.077334
+ 623866.400 3370920.900 3.127932
+ 623928.900 3370920.900 3.183608
+ 623991.400 3370920.900 3.239285
+ 624116.400 3370920.900 3.350639
+ 624241.400 3370920.900 3.448278
+ 624491.400 3370920.900 3.624357
+ 624741.400 3370920.900 3.702796
+ 623616.400 3370858.400 2.888313
+ 623678.900 3370858.400 2.932017
+ 623741.400 3370858.400 2.975721
+ 623803.900 3370858.400 3.019425
+ 623835.150 3370858.400 3.041277
+ 623866.400 3370858.400 3.063129
+ 623897.650 3370858.400 3.090371
+ 623928.900 3370858.400 3.117613
+ 623991.400 3370858.400 3.172098
+ 623803.900 3370827.150 2.990470
+ 623835.150 3370827.150 3.010599
+ 623866.400 3370827.150 3.030727
+ 623897.650 3370827.150 3.057672
+ 623928.900 3370827.150 3.084616
+ 623491.400 3370795.900 2.868831
+ 623616.400 3370795.900 2.851084
+ 623678.900 3370795.900 2.887895
+ 623741.400 3370795.900 2.924705
+ 623803.900 3370795.900 2.961515
+ 623835.150 3370795.900 2.979921
+ 623866.400 3370795.900 2.998326
+ 623897.650 3370795.900 3.024972
+ 623928.900 3370795.900 3.051618
+ 623991.400 3370795.900 3.104910
+ 624116.400 3370795.900 3.211495
+ 624241.400 3370795.900 3.311542
+ 623803.900 3370764.650 2.940684
+ 623835.150 3370764.650 2.958906
+ 623866.400 3370764.650 2.977128
+ 623897.650 3370764.650 3.003427
+ 623928.900 3370764.650 3.029726
+ 623616.400 3370733.400 2.811619
+ 623678.900 3370733.400 2.847696
+ 623741.400 3370733.400 2.883774
+ 623803.900 3370733.400 2.919852
+ 623835.150 3370733.400 2.937891
+ 623866.400 3370733.400 2.955929
+ 623897.650 3370733.400 2.981882
+ 623928.900 3370733.400 3.007834
+ 623991.400 3370733.400 3.059738
+ 619741.400 3370670.900 13.03557
+ 619991.400 3370670.900 13.21409
+ 620241.400 3370670.900 13.49204
+ 620491.400 3370670.900 13.03747
+ 620741.400 3370670.900 11.85392
+ 620991.400 3370670.900 10.59309
+ 621241.400 3370670.900 9.347742
+ 621491.400 3370670.900 8.145322
+ 621741.400 3370670.900 7.002333
+ 621991.400 3370670.900 5.937780
+ 622241.400 3370670.900 4.979333
+ 622491.400 3370670.900 4.154363
+ 622741.400 3370670.900 3.489838
+ 622991.400 3370670.900 3.058718
+ 623116.400 3370670.900 2.915675
+ 623241.400 3370670.900 2.846043
+ 623491.400 3370670.900 2.774282
+ 623616.400 3370670.900 2.772153
+ 623678.900 3370670.900 2.807498
+ 623741.400 3370670.900 2.842843
+ 623803.900 3370670.900 2.878188
+ 623866.400 3370670.900 2.913532
+ 623928.900 3370670.900 2.964049
+ 623991.400 3370670.900 3.014566
+ 624116.400 3370670.900 3.115600
+ 624241.400 3370670.900 3.214153
+ 624491.400 3370670.900 3.397285
+ 624741.400 3370670.900 3.481863
+ 623616.400 3370608.400 2.732688
+ 623678.900 3370608.400 2.767300
+ 623741.400 3370608.400 2.801912
+ 622991.400 3370545.900 2.882377
+ 623116.400 3370545.900 2.764753
+ 623241.400 3370545.900 2.715499
+ 623491.400 3370545.900 2.679734
+ 623616.400 3370545.900 2.693223
+ 623678.900 3370545.900 2.727102
+ 623741.400 3370545.900 2.760981
+ 623866.400 3370545.900 2.828739
+ 623991.400 3370545.900 2.924222
+ 623616.400 3370483.400 2.655202
+ 623678.900 3370483.400 2.690359
+ 623741.400 3370483.400 2.725516
+ 619741.400 3370420.900 12.97033
+ 619991.400 3370420.900 13.14174
+ 620241.400 3370420.900 13.40382
+ 620491.400 3370420.900 12.92969
+ 620741.400 3370420.900 11.72219
+ 620991.400 3370420.900 10.43236
+ 621241.400 3370420.900 9.152605
+ 621491.400 3370420.900 7.910728
+ 621741.400 3370420.900 6.724848
+ 621991.400 3370420.900 5.617671
+ 622241.400 3370420.900 4.623687
+ 622491.400 3370420.900 3.782026
+ 622741.400 3370420.900 3.130794
+ 622866.400 3370420.900 2.857785
+ 622991.400 3370420.900 2.743751
+ 623053.900 3370420.900 2.686733
+ 623116.400 3370420.900 2.629715
+ 623178.900 3370420.900 2.613048
+ 623241.400 3370420.900 2.596380
+ 623366.400 3370420.900 2.563045
+ 623491.400 3370420.900 2.590113
+ 623616.400 3370420.900 2.617181
+ 623678.900 3370420.900 2.653616
+ 623741.400 3370420.900 2.690052
+ 623866.400 3370420.900 2.762922
+ 623991.400 3370420.900 2.858170
+ 624241.400 3370420.900 3.049134
+ 624491.400 3370420.900 3.229414
+ 624741.400 3370420.900 3.313977
+ 622991.400 3370358.400 2.674438
+ 623053.900 3370358.400 2.618317
+ 623085.150 3370358.400 2.590257
+ 623116.400 3370358.400 2.562197
+ 623147.650 3370358.400 2.555853
+ 623178.900 3370358.400 2.549509
+ 623241.400 3370358.400 2.536821
+ 623616.400 3370358.400 2.579160
+ 623678.900 3370358.400 2.616874
+ 623741.400 3370358.400 2.654587
+ 623053.900 3370327.150 2.584109
+ 623085.150 3370327.150 2.556273
+ 623116.400 3370327.150 2.528437
+ 623147.650 3370327.150 2.523088
+ 623178.900 3370327.150 2.517739
+ 622741.400 3370295.900 2.963090
+ 622866.400 3370295.900 2.715571
+ 622991.400 3370295.900 2.605124
+ 623053.900 3370295.900 2.549901
+ 623085.150 3370295.900 2.522290
+ 623116.400 3370295.900 2.494678
+ 623147.650 3370295.900 2.490324
+ 623178.900 3370295.900 2.485970
+ 623241.400 3370295.900 2.477262
+ 623366.400 3370295.900 2.459845
+ 623491.400 3370295.900 2.500492
+ 623616.400 3370295.900 2.541139
+ 623678.900 3370295.900 2.580131
+ 623741.400 3370295.900 2.619123
+ 623866.400 3370295.900 2.697106
+ 623991.400 3370295.900 2.792119
+ 623053.900 3370264.650 2.512429
+ 623085.150 3370264.650 2.486290
+ 623116.400 3370264.650 2.460151
+ 623147.650 3370264.650 2.457070
+ 623178.900 3370264.650 2.453988
+ 622991.400 3370233.400 2.524290
+ 623053.900 3370233.400 2.474957
+ 623085.150 3370233.400 2.450291
+ 623116.400 3370233.400 2.425625
+ 623147.650 3370233.400 2.423815
+ 623178.900 3370233.400 2.422006
+ 623241.400 3370233.400 2.418386
+ 623616.400 3370233.400 2.508046
+ 623678.900 3370233.400 2.549301
+ 623741.400 3370233.400 2.590556
+ 619741.400 3370170.900 12.58376
+ 619991.400 3370170.900 12.65252
+ 620241.400 3370170.900 12.62267
+ 620491.400 3370170.900 12.13157
+ 620741.400 3370170.900 11.18135
+ 620991.400 3370170.900 10.01476
+ 621241.400 3370170.900 8.787141
+ 621491.400 3370170.900 7.558470
+ 621741.400 3370170.900 6.361272
+ 621991.400 3370170.900 5.226534
+ 622241.400 3370170.900 4.200634
+ 622491.400 3370170.900 3.351540
+ 622741.400 3370170.900 2.755612
+ 622866.400 3370170.900 2.530338
+ 622991.400 3370170.900 2.443455
+ 623053.900 3370170.900 2.400014
+ 623116.400 3370170.900 2.356572
+ 623178.900 3370170.900 2.358042
+ 623241.400 3370170.900 2.359511
+ 623366.400 3370170.900 2.362451
+ 623491.400 3370170.900 2.418701
+ 623616.400 3370170.900 2.474952
+ 623678.900 3370170.900 2.518471
+ 623741.400 3370170.900 2.561990
+ 623866.400 3370170.900 2.649028
+ 623991.400 3370170.900 2.747214
+ 624241.400 3370170.900 2.939038
+ 624491.400 3370170.900 3.113545
+ 624741.400 3370170.900 3.194415
+ 623616.400 3370108.400 2.441859
+ 623678.900 3370108.400 2.487642
+ 623741.400 3370108.400 2.533424
+ 622991.400 3370045.900 2.281786
+ 623116.400 3370045.900 2.218466
+ 623241.400 3370045.900 2.241761
+ 623491.400 3370045.900 2.336911
+ 623616.400 3370045.900 2.408766
+ 623678.900 3370045.900 2.456812
+ 623741.400 3370045.900 2.504858
+ 623866.400 3370045.900 2.600950
+ 623991.400 3370045.900 2.702310
+ 623616.400 3369983.400 2.384277
+ 623678.900 3369983.400 2.435146
+ 623741.400 3369983.400 2.486014
+ 619741.400 3369920.900 12.01463
+ 619991.400 3369920.900 11.98947
+ 620241.400 3369920.900 11.80022
+ 620491.400 3369920.900 11.29603
+ 620741.400 3369920.900 10.47848
+ 620991.400 3369920.900 9.448631
+ 621241.400 3369920.900 8.310590
+ 621491.400 3369920.900 7.130200
+ 621741.400 3369920.900 5.948341
+ 621991.400 3369920.900 4.799149
+ 622241.400 3369920.900 3.731254
+ 622491.400 3369920.900 2.846461
+ 622741.400 3369920.900 2.299722
+ 622991.400 3369920.900 2.107405
+ 623116.400 3369920.900 2.082857
+ 623241.400 3369920.900 2.131964
+ 623491.400 3369920.900 2.270430
+ 623616.400 3369920.900 2.359788
+ 623678.900 3369920.900 2.413479
+ 623741.400 3369920.900 2.467170
+ 623866.400 3369920.900 2.574552
+ 623991.400 3369920.900 2.680732
+ 624241.400 3369920.900 2.878460
+ 624491.400 3369920.900 3.043349
+ 624741.400 3369920.900 3.116689
+ 623616.400 3369858.400 2.335300
+ 623678.900 3369858.400 2.391813
+ 623741.400 3369858.400 2.448326
+ 623491.400 3369795.900 2.203948
+ 623616.400 3369795.900 2.310811
+ 623678.900 3369795.900 2.370147
+ 623741.400 3369795.900 2.429482
+ 623866.400 3369795.900 2.548153
+ 623991.400 3369795.900 2.659153
+ 623616.400 3369733.400 2.297562
+ 623678.900 3369733.400 2.359992
+ 623741.400 3369733.400 2.422423
+ 619741.400 3369670.900 11.39070
+ 619991.400 3369670.900 11.30585
+ 620241.400 3369670.900 11.02680
+ 620491.400 3369670.900 10.51447
+ 620741.400 3369670.900 9.770112
+ 620991.400 3369670.900 8.842297
+ 621241.400 3369670.900 7.794412
+ 621491.400 3369670.900 6.679741
+ 621741.400 3369670.900 5.537487
+ 621991.400 3369670.900 4.398520
+ 622241.400 3369670.900 3.297052
+ 622491.400 3369670.900 2.301289
+ 622741.400 3369670.900 1.800025
+ 622991.400 3369670.900 1.805815
+ 623241.400 3369670.900 1.947274
+ 623491.400 3369670.900 2.162684
+ 623616.400 3369670.900 2.284313
+ 623678.900 3369670.900 2.349838
+ 623741.400 3369670.900 2.415364
+ 623866.400 3369670.900 2.546414
+ 623991.400 3369670.900 2.663395
+ 624241.400 3369670.900 2.866444
+ 624491.400 3369670.900 3.011952
+ 624741.400 3369670.900 3.071392
+ 623616.400 3369608.400 2.271064
+ 623678.900 3369608.400 2.339684
+ 623741.400 3369608.400 2.408304
+ 623491.400 3369545.900 2.121420
+ 623616.400 3369545.900 2.257815
+ 623678.900 3369545.900 2.329530
+ 623741.400 3369545.900 2.401245
+ 623866.400 3369545.900 2.544675
+ 623991.400 3369545.900 2.667636
+ 623616.400 3369483.400 2.252561
+ 623678.900 3369483.400 2.327707
+ 623741.400 3369483.400 2.402853
+ 619741.400 3369420.900 10.77756
+ 619991.400 3369420.900 10.65577
+ 620241.400 3369420.900 10.32403
+ 620491.400 3369420.900 9.809102
+ 620741.400 3369420.900 9.112241
+ 620991.400 3369420.900 8.260386
+ 621241.400 3369420.900 7.293834
+ 621491.400 3369420.900 6.253469
+ 621741.400 3369420.900 5.175266
+ 621991.400 3369420.900 4.091332
+ 622241.400 3369420.900 3.038194
+ 622491.400 3369420.900 2.086356
+ 622741.400 3369420.900 1.625581
+ 622991.400 3369420.900 1.668768
+ 623241.400 3369420.900 1.847135
+ 623491.400 3369420.900 2.103534
+ 623616.400 3369420.900 2.247307
+ 623678.900 3369420.900 2.325884
+ 623741.400 3369420.900 2.404461
+ 623866.400 3369420.900 2.561614
+ 623991.400 3369420.900 2.695334
+ 624241.400 3369420.900 2.899129
+ 624491.400 3369420.900 3.004707
+ 624741.400 3369420.900 3.040210
+ 623616.400 3369358.400 2.242054
+ 623678.900 3369358.400 2.324061
+ 623741.400 3369358.400 2.406069
+ 623491.400 3369295.900 2.085647
+ 623616.400 3369295.900 2.236800
+ 623678.900 3369295.900 2.322238
+ 623741.400 3369295.900 2.407676
+ 623866.400 3369295.900 2.578553
+ 623991.400 3369295.900 2.723032
+ 623616.400 3369233.400 2.226877
+ 623678.900 3369233.400 2.314265
+ 623741.400 3369233.400 2.401654
+ 619741.400 3369170.900 10.20406
+ 619991.400 3369170.900 10.05950
+ 620241.400 3369170.900 9.697329
+ 620491.400 3369170.900 9.185453
+ 620741.400 3369170.900 8.525350
+ 620991.400 3369170.900 7.734334
+ 621241.400 3369170.900 6.840701
+ 621491.400 3369170.900 5.877793
+ 621741.400 3369170.900 4.881084
+ 621991.400 3369170.900 3.890381
+ 622241.400 3369170.900 2.962109
+ 622491.400 3369170.900 2.205267
+ 622741.400 3369170.900 1.776684
+ 622991.400 3369170.900 1.691325
+ 623241.400 3369170.900 1.818353
+ 623491.400 3369170.900 2.068061
+ 623616.400 3369170.900 2.216954
+ 623678.900 3369170.900 2.306293
+ 623741.400 3369170.900 2.395630
+ 623866.400 3369170.900 2.574306
+ 623991.400 3369170.900 2.754031
+ 624241.400 3369170.900 2.952974
+ 624491.400 3369170.900 2.980203
+ 624741.400 3369170.900 2.988214
+ 623616.400 3369108.400 2.207032
+ 623678.900 3369108.400 2.298320
+ 623741.400 3369108.400 2.389607
+ 623491.400 3369045.900 2.050476
+ 623616.400 3369045.900 2.197109
+ 623678.900 3369045.900 2.290347
+ 623741.400 3369045.900 2.383584
+ 623866.400 3369045.900 2.570060
+ 623991.400 3369045.900 2.785030
+ 623616.400 3368983.400 2.170762
+ 623678.900 3368983.400 2.260217
+ 623741.400 3368983.400 2.349672
+ 619741.400 3368920.900 9.682508
+ 619991.400 3368920.900 9.524664
+ 620241.400 3368920.900 9.147027
+ 620491.400 3368920.900 8.643513
+ 620741.400 3368920.900 8.015825
+ 620991.400 3368920.900 7.276655
+ 621241.400 3368920.900 6.448063
+ 621491.400 3368920.900 5.559278
+ 621741.400 3368920.900 4.646037
+ 621991.400 3368920.900 3.753117
+ 622241.400 3368920.900 2.941598
+ 622491.400 3368920.900 2.293044
+ 622741.400 3368920.900 1.884959
+ 622991.400 3368920.900 1.735122
+ 623241.400 3368920.900 1.797000
+ 623491.400 3368920.900 2.008578
+ 623616.400 3368920.900 2.144414
+ 623678.900 3368920.900 2.230087
+ 623741.400 3368920.900 2.315759
+ 623866.400 3368920.900 2.487103
+ 623991.400 3368920.900 2.661861
+ 624241.400 3368920.900 2.851961
+ 624491.400 3368920.900 2.872192
+ 624741.400 3368920.900 2.877082
+ 623616.400 3368858.400 2.118067
+ 623678.900 3368858.400 2.199957
+ 623741.400 3368858.400 2.281846
+ 623491.400 3368795.900 1.966681
+ 623616.400 3368795.900 2.091720
+ 623678.900 3368795.900 2.169827
+ 623741.400 3368795.900 2.247933
+ 623866.400 3368795.900 2.404146
+ 623991.400 3368795.900 2.538692
+ 623616.400 3368733.400 2.053113
+ 623678.900 3368733.400 2.126955
+ 623741.400 3368733.400 2.200796
+ 619741.400 3368670.900 9.217500
+ 619991.400 3368670.900 9.053203
+ 620241.400 3368670.900 8.671099
+ 620491.400 3368670.900 8.180757
+ 620741.400 3368670.900 7.583811
+ 620991.400 3368670.900 6.890212
+ 621241.400 3368670.900 6.118192
+ 621491.400 3368670.900 5.293975
+ 621741.400 3368670.900 4.452122
+ 621991.400 3368670.900 3.636856
+ 622241.400 3368670.900 2.903326
+ 622491.400 3368670.900 2.311809
+ 622741.400 3368670.900 1.910909
+ 622991.400 3368670.900 1.721172
+ 623241.400 3368670.900 1.733118
+ 623491.400 3368670.900 1.900597
+ 623616.400 3368670.900 2.014507
+ 623678.900 3368670.900 2.084083
+ 623741.400 3368670.900 2.153659
+ 623866.400 3368670.900 2.292810
+ 623991.400 3368670.900 2.413195
+ 624241.400 3368670.900 2.592589
+ 624491.400 3368670.900 2.677949
+ 624741.400 3368670.900 2.704299
+ 623616.400 3368608.400 1.975901
+ 623678.900 3368608.400 2.041211
+ 623741.400 3368608.400 2.106522
+ 623491.400 3368545.900 1.834512
+ 623616.400 3368545.900 1.937294
+ 623678.900 3368545.900 1.998339
+ 623741.400 3368545.900 2.059384
+ 623866.400 3368545.900 2.181475
+ 623991.400 3368545.900 2.287698
+ 623616.400 3368483.400 1.897599
+ 623678.900 3368483.400 1.955787
+ 623741.400 3368483.400 2.013974
+ 619741.400 3368420.900 8.809556
+ 619991.400 3368420.900 8.644089
+ 620241.400 3368420.900 8.266236
+ 620491.400 3368420.900 7.793523
+ 620741.400 3368420.900 7.226956
+ 620991.400 3368420.900 6.574089
+ 621241.400 3368420.900 5.849823
+ 621491.400 3368420.900 5.077127
+ 621741.400 3368420.900 4.287827
+ 621991.400 3368420.900 3.523125
+ 622241.400 3368420.900 2.832589
+ 622491.400 3368420.900 2.267303
+ 622741.400 3368420.900 1.865222
+ 622991.400 3368420.900 1.639769
+ 623241.400 3368420.900 1.619632
+ 623366.400 3368420.900 1.668076
+ 623491.400 3368420.900 1.762990
+ 623616.400 3368420.900 1.857904
+ 623678.900 3368420.900 1.913234
+ 623741.400 3368420.900 1.968565
+ 623866.400 3368420.900 2.079225
+ 623991.400 3368420.900 2.177709
+ 624241.400 3368420.900 2.345098
+ 624491.400 3368420.900 2.458646
+ 624741.400 3368420.900 2.503290
+ 623616.400 3368358.400 1.818210
+ 623678.900 3368358.400 1.870682
+ 623741.400 3368358.400 1.923154
+ 623241.400 3368295.900 1.552211
+ 623366.400 3368295.900 1.604421
+ 623491.400 3368295.900 1.691468
+ 623616.400 3368295.900 1.778515
+ 623678.900 3368295.900 1.828130
+ 623741.400 3368295.900 1.877744
+ 623866.400 3368295.900 1.976974
+ 623991.400 3368295.900 2.067719
+ 623616.400 3368233.400 1.745240
+ 623678.900 3368233.400 1.792582
+ 623741.400 3368233.400 1.839924
+ 619741.400 3368170.900 8.429401
+ 619991.400 3368170.900 8.270803
+ 620241.400 3368170.900 7.911607
+ 620491.400 3368170.900 7.467084
+ 620741.400 3368170.900 6.936810
+ 620991.400 3368170.900 6.325421
+ 621241.400 3368170.900 5.643981
+ 621491.400 3368170.900 4.909582
+ 621741.400 3368170.900 4.152102
+ 621991.400 3368170.900 3.411770
+ 622241.400 3368170.900 2.734592
+ 622491.400 3368170.900 2.174573
+ 622741.400 3368170.900 1.776304
+ 622991.400 3368170.900 1.551281
+ 623116.400 3368170.900 1.480838
+ 623241.400 3368170.900 1.519122
+ 623303.900 3368170.900 1.538264
+ 623366.400 3368170.900 1.557406
+ 623428.900 3368170.900 1.596046
+ 623491.400 3368170.900 1.634685
+ 623616.400 3368170.900 1.711964
+ 623678.900 3368170.900 1.757034
+ 623741.400 3368170.900 1.802103
+ 623866.400 3368170.900 1.892241
+ 623991.400 3368170.900 1.976642
+ 624241.400 3368170.900 2.129628
+ 624491.400 3368170.900 2.251194
+ 624741.400 3368170.900 2.304173
+ 623241.400 3368108.400 1.502578
+ 623303.900 3368108.400 1.518238
+ 623335.150 3368108.400 1.526068
+ 623366.400 3368108.400 1.533898
+ 623397.650 3368108.400 1.551997
+ 623428.900 3368108.400 1.570096
+ 623491.400 3368108.400 1.606294
+ 623616.400 3368108.400 1.678689
+ 623678.900 3368108.400 1.721486
+ 623741.400 3368108.400 1.764282
+ 623303.900 3368077.150 1.508225
+ 623335.150 3368077.150 1.515185
+ 623366.400 3368077.150 1.522145
+ 623397.650 3368077.150 1.539633
+ 623428.900 3368077.150 1.557122
+ 622991.400 3368045.900 1.518843
+ 623116.400 3368045.900 1.461676
+ 623241.400 3368045.900 1.486033
+ 623303.900 3368045.900 1.498212
+ 623335.150 3368045.900 1.504302
+ 623366.400 3368045.900 1.510391
+ 623397.650 3368045.900 1.527269
+ 623428.900 3368045.900 1.544147
+ 623491.400 3368045.900 1.577903
+ 623616.400 3368045.900 1.645414
+ 623678.900 3368045.900 1.685938
+ 623741.400 3368045.900 1.726461
+ 623866.400 3368045.900 1.807508
+ 623991.400 3368045.900 1.885564
+ 623303.900 3368014.650 1.489803
+ 623335.150 3368014.650 1.495692
+ 623366.400 3368014.650 1.501582
+ 623397.650 3368014.650 1.517983
+ 623428.900 3368014.650 1.534384
+ 623241.400 3367983.400 1.470013
+ 623303.900 3367983.400 1.481393
+ 623335.150 3367983.400 1.487083
+ 623366.400 3367983.400 1.492773
+ 623397.650 3367983.400 1.508697
+ 623428.900 3367983.400 1.524621
+ 623491.400 3367983.400 1.556470
+ 623616.400 3367983.400 1.620167
+ 623678.900 3367983.400 1.658743
+ 623741.400 3367983.400 1.697320
+ 619741.400 3367920.900 8.099879
+ 619991.400 3367920.900 7.951878
+ 620241.400 3367920.900 7.618073
+ 620491.400 3367920.900 7.206715
+ 620741.400 3367920.900 6.715246
+ 620991.400 3367920.900 6.144526
+ 621241.400 3367920.900 5.500699
+ 621491.400 3367920.900 4.795859
+ 621741.400 3367920.900 4.055880
+ 621991.400 3367920.900 3.318038
+ 622241.400 3367920.900 2.626583
+ 622491.400 3367920.900 2.047129
+ 622741.400 3367920.900 1.659261
+ 622991.400 3367920.900 1.477952
+ 623116.400 3367920.900 1.432832
+ 623241.400 3367920.900 1.453994
+ 623303.900 3367920.900 1.464574
+ 623366.400 3367920.900 1.475155
+ 623428.900 3367920.900 1.505096
+ 623491.400 3367920.900 1.535037
+ 623616.400 3367920.900 1.594919
+ 623678.900 3367920.900 1.631549
+ 623741.400 3367920.900 1.668178
+ 623866.400 3367920.900 1.741437
+ 623991.400 3367920.900 1.813103
+ 624241.400 3367920.900 1.948146
+ 624491.400 3367920.900 2.056741
+ 624741.400 3367920.900 2.101959
+ 623616.400 3367858.400 1.569672
+ 623678.900 3367858.400 1.604354
+ 623741.400 3367858.400 1.639037
+ 623241.400 3367795.900 1.421953
+ 623366.400 3367795.900 1.439919
+ 623491.400 3367795.900 1.492172
+ 623616.400 3367795.900 1.544424
+ 623678.900 3367795.900 1.577160
+ 623741.400 3367795.900 1.609895
+ 623866.400 3367795.900 1.675367
+ 623991.400 3367795.900 1.740641
+ 623616.400 3367733.400 1.526097
+ 623678.900 3367733.400 1.557153
+ 623741.400 3367733.400 1.588209
+ 619741.400 3367670.900 7.863066
+ 619991.400 3367670.900 7.722281
+ 620241.400 3367670.900 7.407699
+ 620491.400 3367670.900 7.024494
+ 620741.400 3367670.900 6.567749
+ 620991.400 3367670.900 6.033684
+ 621241.400 3367670.900 5.421849
+ 621491.400 3367670.900 4.739476
+ 621741.400 3367670.900 4.006787
+ 621991.400 3367670.900 3.258776
+ 622241.400 3367670.900 2.539344
+ 622491.400 3367670.900 1.900472
+ 622741.400 3367670.900 1.521049
+ 622991.400 3367670.900 1.408486
+ 623241.400 3367670.900 1.399695
+ 623366.400 3367670.900 1.416072
+ 623491.400 3367670.900 1.461921
+ 623616.400 3367670.900 1.507770
+ 623678.900 3367670.900 1.537146
+ 623741.400 3367670.900 1.566522
+ 623866.400 3367670.900 1.625275
+ 623991.400 3367670.900 1.683617
+ 624241.400 3367670.900 1.797250
+ 624491.400 3367670.900 1.886034
+ 624741.400 3367670.900 1.919526
+ 623616.400 3367608.400 1.489442
+ 623678.900 3367608.400 1.517139
+ 623741.400 3367608.400 1.544836
+ 623491.400 3367545.900 1.431670
+ 623616.400 3367545.900 1.471115
+ 623678.900 3367545.900 1.497132
+ 623741.400 3367545.900 1.523149
+ 623866.400 3367545.900 1.575184
+ 623991.400 3367545.900 1.626592
+ 623616.400 3367483.400 1.456538
+ 623678.900 3367483.400 1.481500
+ 623741.400 3367483.400 1.506463
+ 619741.400 3367420.900 7.666644
+ 619991.400 3367420.900 7.535990
+ 620241.400 3367420.900 7.246756
+ 620491.400 3367420.900 6.898626
+ 620741.400 3367420.900 6.484522
+ 620991.400 3367420.900 5.995267
+ 621241.400 3367420.900 5.421192
+ 621491.400 3367420.900 4.758867
+ 621741.400 3367420.900 4.023449
+ 621991.400 3367420.900 3.259471
+ 622241.400 3367420.900 2.530280
+ 622491.400 3367420.900 1.894208
+ 622741.400 3367420.900 1.519124
+ 622991.400 3367420.900 1.401345
+ 623241.400 3367420.900 1.374988
+ 623491.400 3367420.900 1.410839
+ 623616.400 3367420.900 1.441961
+ 623678.900 3367420.900 1.465868
+ 623741.400 3367420.900 1.489776
+ 623866.400 3367420.900 1.537592
+ 623991.400 3367420.900 1.578387
+ 624241.400 3367420.900 1.664865
+ 624491.400 3367420.900 1.749982
+ 624741.400 3367420.900 1.789414
+ 623616.400 3367358.400 1.427383
+ 623678.900 3367358.400 1.450236
+ 623741.400 3367358.400 1.473090
+ 623491.400 3367295.900 1.390007
+ 623616.400 3367295.900 1.412806
+ 623678.900 3367295.900 1.434605
+ 623741.400 3367295.900 1.456403
+ 623866.400 3367295.900 1.500000
+ 623991.400 3367295.900 1.530182
+ 623616.400 3367233.400 1.396294
+ 623678.900 3367233.400 1.414828
+ 623741.400 3367233.400 1.433362
+ 619741.400 3367170.900 7.481674
+ 619991.400 3367170.900 7.366169
+ 620241.400 3367170.900 7.112582
+ 620491.400 3367170.900 6.810985
+ 620741.400 3367170.900 6.453553
+ 620991.400 3367170.900 6.026327
+ 621241.400 3367170.900 5.507312
+ 621491.400 3367170.900 4.874168
+ 621741.400 3367170.900 4.127111
+ 621991.400 3367170.900 3.327778
+ 622241.400 3367170.900 2.601166
+ 622491.400 3367170.900 2.035463
+ 622741.400 3367170.900 1.662287
+ 622991.400 3367170.900 1.464647
+ 623241.400 3367170.900 1.380841
+ 623491.400 3367170.900 1.370042
+ 623616.400 3367170.900 1.379782
+ 623678.900 3367170.900 1.395052
+ 623741.400 3367170.900 1.410321
+ 623866.400 3367170.900 1.440861
+ 623991.400 3367170.900 1.469245
+ 624241.400 3367170.900 1.535764
+ 624491.400 3367170.900 1.619961
+ 624741.400 3367170.900 1.666023
+ 623616.400 3367108.400 1.363270
+ 623678.900 3367108.400 1.375275
+ 623741.400 3367108.400 1.387280
+ 623491.400 3367045.900 1.350076
+ 623616.400 3367045.900 1.346758
+ 623678.900 3367045.900 1.355499
+ 623741.400 3367045.900 1.364239
+ 623866.400 3367045.900 1.381721
+ 623991.400 3367045.900 1.408308
+ 623616.400 3366983.400 1.328383
+ 623678.900 3366983.400 1.334747
+ 623741.400 3366983.400 1.341111
+ 619741.400 3366920.900 7.316568
+ 619991.400 3366920.900 7.216724
+ 620241.400 3366920.900 7.000311
+ 620491.400 3366920.900 6.748824
+ 620741.400 3366920.900 6.456760
+ 620991.400 3366920.900 6.110530
+ 621241.400 3366920.900 5.675428
+ 621491.400 3366920.900 5.098839
+ 621741.400 3366920.900 4.341529
+ 621991.400 3366920.900 3.447868
+ 622241.400 3366920.900 2.695306
+ 622366.400 3366920.900 2.409667
+ 622491.400 3366920.900 2.184705
+ 622741.400 3366920.900 1.801099
+ 622991.400 3366920.900 1.544367
+ 623241.400 3366920.900 1.394907
+ 623491.400 3366920.900 1.326771
+ 623616.400 3366920.900 1.310008
+ 623678.900 3366920.900 1.313995
+ 623741.400 3366920.900 1.317983
+ 623866.400 3366920.900 1.325958
+ 623991.400 3366920.900 1.348170
+ 624241.400 3366920.900 1.404432
+ 624491.400 3366920.900 1.483025
+ 624741.400 3366920.900 1.527567
+ 623616.400 3366858.400 1.291632
+ 623678.900 3366858.400 1.293243
+ 623741.400 3366858.400 1.294854
+ 622241.400 3366795.900 2.743263
+ 622366.400 3366795.900 2.486527
+ 622491.400 3366795.900 2.262161
+ 623491.400 3366795.900 1.303465
+ 623616.400 3366795.900 1.273257
+ 623678.900 3366795.900 1.272491
+ 623741.400 3366795.900 1.271726
+ 623866.400 3366795.900 1.270195
+ 623991.400 3366795.900 1.288032
+ 623616.400 3366733.400 1.251763
+ 623678.900 3366733.400 1.249106
+ 623741.400 3366733.400 1.246450
+ 619741.400 3366670.900 7.160594
+ 619991.400 3366670.900 7.075033
+ 620241.400 3366670.900 6.892733
+ 620491.400 3366670.900 6.688409
+ 620741.400 3366670.900 6.461690
+ 620991.400 3366670.900 6.206725
+ 621241.400 3366670.900 5.894326
+ 621491.400 3366670.900 5.439191
+ 621741.400 3366670.900 4.709734
+ 621991.400 3366670.900 3.749784
+ 622116.400 3366670.900 3.240724
+ 622241.400 3366670.900 2.925806
+ 622303.900 3366670.900 2.768347
+ 622366.400 3366670.900 2.610888
+ 622428.900 3366670.900 2.486200
+ 622491.400 3366670.900 2.361511
+ 622616.400 3366670.900 2.112133
+ 622741.400 3366670.900 1.923935
+ 622991.400 3366670.900 1.605394
+ 623241.400 3366670.900 1.394158
+ 623491.400 3366670.900 1.271767
+ 623616.400 3366670.900 1.230268
+ 623678.900 3366670.900 1.225721
+ 623741.400 3366670.900 1.221174
+ 623866.400 3366670.900 1.212080
+ 623991.400 3366670.900 1.226047
+ 624241.400 3366670.900 1.271391
+ 624491.400 3366670.900 1.347456
+ 624741.400 3366670.900 1.392143
+ 622241.400 3366608.400 3.017078
+ 622303.900 3366608.400 2.845073
+ 622335.150 3366608.400 2.759071
+ 622366.400 3366608.400 2.673069
+ 622397.650 3366608.400 2.607598
+ 622428.900 3366608.400 2.542127
+ 622491.400 3366608.400 2.411185
+ 623616.400 3366608.400 1.208773
+ 623678.900 3366608.400 1.202336
+ 623741.400 3366608.400 1.195898
+ 622303.900 3366577.150 2.883436
+ 622335.150 3366577.150 2.793798
+ 622366.400 3366577.150 2.704160
+ 622397.650 3366577.150 2.637125
+ 622428.900 3366577.150 2.570091
+ 621991.400 3366545.900 3.979452
+ 622116.400 3366545.900 3.481448
+ 622241.400 3366545.900 3.108349
+ 622303.900 3366545.900 2.921799
+ 622335.150 3366545.900 2.828525
+ 622366.400 3366545.900 2.735250
+ 622397.650 3366545.900 2.666652
+ 622428.900 3366545.900 2.598055
+ 622491.400 3366545.900 2.460860
+ 622616.400 3366545.900 2.186470
+ 622741.400 3366545.900 1.980585
+ 623491.400 3366545.900 1.240070
+ 623616.400 3366545.900 1.187279
+ 623678.900 3366545.900 1.178951
+ 623741.400 3366545.900 1.170622
+ 623866.400 3366545.900 1.153965
+ 623991.400 3366545.900 1.164062
+ 622303.900 3366514.650 2.946430
+ 622335.150 3366514.650 2.851762
+ 622366.400 3366514.650 2.757095
+ 622397.650 3366514.650 2.687106
+ 622428.900 3366514.650 2.617117
+ 622241.400 3366483.400 3.163181
+ 622303.900 3366483.400 2.971061
+ 622335.150 3366483.400 2.875000
+ 622366.400 3366483.400 2.778940
+ 622397.650 3366483.400 2.707560
+ 622428.900 3366483.400 2.636179
+ 622491.400 3366483.400 2.493419
+ 623616.400 3366483.400 1.159963
+ 623678.900 3366483.400 1.150286
+ 623741.400 3366483.400 1.140609
+ 619741.400 3366420.900 7.004073
+ 619991.400 3366420.900 6.929466
+ 620241.400 3366420.900 6.773089
+ 620491.400 3366420.900 6.604228
+ 620741.400 3366420.900 6.427119
+ 620991.400 3366420.900 6.246538
+ 621241.400 3366420.900 6.061797
+ 621491.400 3366420.900 5.833167
+ 621741.400 3366420.900 5.166872
+ 621991.400 3366420.900 4.124214
+ 622116.400 3366420.900 3.613397
+ 622241.400 3366420.900 3.218013
+ 622303.900 3366420.900 3.020321
+ 622366.400 3366420.900 2.822629
+ 622428.900 3366420.900 2.674304
+ 622491.400 3366420.900 2.525979
+ 622616.400 3366420.900 2.229328
+ 622741.400 3366420.900 2.006946
+ 622991.400 3366420.900 1.625332
+ 623241.400 3366420.900 1.360542
+ 623491.400 3366420.900 1.193816
+ 623616.400 3366420.900 1.132647
+ 623678.900 3366420.900 1.121621
+ 623741.400 3366420.900 1.110595
+ 623866.400 3366420.900 1.088543
+ 623991.400 3366420.900 1.096599
+ 624241.400 3366420.900 1.135360
+ 624491.400 3366420.900 1.212831
+ 624741.400 3366420.900 1.259598
+ 623616.400 3366358.400 1.105331
+ 623678.900 3366358.400 1.092956
+ 623741.400 3366358.400 1.080582
+ 622241.400 3366295.900 3.327677
+ 622366.400 3366295.900 2.910009
+ 622491.400 3366295.900 2.591097
+ 623491.400 3366295.900 1.147563
+ 623616.400 3366295.900 1.078015
+ 623678.900 3366295.900 1.064292
+ 623741.400 3366295.900 1.050568
+ 623866.400 3366295.900 1.023122
+ 623991.400 3366295.900 1.029135
+ 623616.400 3366233.400 1.042993
+ 623678.900 3366233.400 1.028197
+ 623741.400 3366233.400 1.013401
+ 619741.400 3366170.900 6.840065
+ 619991.400 3366170.900 6.771777
+ 620241.400 3366170.900 6.629593
+ 620491.400 3366170.900 6.477952
+ 620741.400 3366170.900 6.320886
+ 620991.400 3366170.900 6.163322
+ 621241.400 3366170.900 6.012612
+ 621366.400 3366170.900 5.940146
+ 621491.400 3366170.900 5.831265
+ 621741.400 3366170.900 5.220047
+ 621991.400 3366170.900 4.225631
+ 622241.400 3366170.900 3.320255
+ 622366.400 3366170.900 2.906956
+ 622491.400 3366170.900 2.581518
+ 622741.400 3366170.900 2.008927
+ 622991.400 3366170.900 1.582085
+ 623241.400 3366170.900 1.279804
+ 623491.400 3366170.900 1.082591
+ 623616.400 3366170.900 1.007972
+ 623678.900 3366170.900 0.9921028
+ 623741.400 3366170.900 0.9762339
+ 623866.400 3366170.900 0.9444960
+ 623991.400 3366170.900 0.9525518
+ 624241.400 3366170.900 0.9944844
+ 624491.400 3366170.900 1.079826
+ 624741.400 3366170.900 1.131292
+ 623616.400 3366108.400 0.9729501
+ 623678.900 3366108.400 0.9560084
+ 623741.400 3366108.400 0.9390666
+ 621241.400 3366045.900 5.911102
+ 621366.400 3366045.900 5.822204
+ 621491.400 3366045.900 5.633486
+ 623491.400 3366045.900 1.017619
+ 623616.400 3366045.900 0.9379285
+ 623678.900 3366045.900 0.9199139
+ 623741.400 3366045.900 0.9018993
+ 623866.400 3366045.900 0.8658702
+ 623991.400 3366045.900 0.8759683
+ 623616.400 3365983.400 0.8955298
+ 623678.900 3365983.400 0.8772810
+ 623741.400 3365983.400 0.8590322
+ 619741.400 3365920.900 6.665503
+ 619991.400 3365920.900 6.598755
+ 620241.400 3365920.900 6.458804
+ 620491.400 3365920.900 6.306136
+ 620741.400 3365920.900 6.140146
+ 620991.400 3365920.900 5.956093
+ 621116.400 3365920.900 5.858567
+ 621241.400 3365920.900 5.739709
+ 621303.900 3365920.900 5.680280
+ 621366.400 3365920.900 5.620851
+ 621428.900 3365920.900 5.515602
+ 621491.400 3365920.900 5.410353
+ 621616.400 3365920.900 5.199854
+ 621741.400 3365920.900 4.829569
+ 621991.400 3365920.900 4.031878
+ 622241.400 3365920.900 3.210288
+ 622491.400 3365920.900 2.487890
+ 622741.400 3365920.900 1.904470
+ 622991.400 3365920.900 1.462024
+ 623241.400 3365920.900 1.145358
+ 623491.400 3365920.900 0.9345328
+ 623616.400 3365920.900 0.8531312
+ 623678.900 3365920.900 0.8346481
+ 623741.400 3365920.900 0.8161650
+ 623866.400 3365920.900 0.7791988
+ 623991.400 3365920.900 0.7937850
+ 624241.400 3365920.900 0.8508418
+ 624491.400 3365920.900 0.9521801
+ 624741.400 3365920.900 1.011048
+ 621241.400 3365858.400 5.654012
+ 621303.900 3365858.400 5.587093
+ 621335.150 3365858.400 5.553633
+ 621366.400 3365858.400 5.520174
+ 621397.650 3365858.400 5.464827
+ 621428.900 3365858.400 5.409480
+ 621491.400 3365858.400 5.298786
+ 623616.400 3365858.400 0.8107325
+ 623678.900 3365858.400 0.7920151
+ 623741.400 3365858.400 0.7732978
+ 621303.900 3365827.150 5.540500
+ 621335.150 3365827.150 5.505167
+ 621366.400 3365827.150 5.469835
+ 621397.650 3365827.150 5.413127
+ 621428.900 3365827.150 5.356419
+ 620991.400 3365795.900 5.828353
+ 621116.400 3365795.900 5.717134
+ 621241.400 3365795.900 5.568316
+ 621303.900 3365795.900 5.493906
+ 621335.150 3365795.900 5.456702
+ 621366.400 3365795.900 5.419497
+ 621397.650 3365795.900 5.361427
+ 621428.900 3365795.900 5.303358
+ 621491.400 3365795.900 5.187219
+ 621616.400 3365795.900 4.954941
+ 621741.400 3365795.900 4.615348
+ 623491.400 3365795.900 0.8514463
+ 623616.400 3365795.900 0.7683338
+ 623678.900 3365795.900 0.7493822
+ 623741.400 3365795.900 0.7304306
+ 623866.400 3365795.900 0.6925275
+ 623991.400 3365795.900 0.7116019
+ 621303.900 3365764.650 5.446870
+ 621335.150 3365764.650 5.408562
+ 621366.400 3365764.650 5.370253
+ 621397.650 3365764.650 5.311625
+ 621428.900 3365764.650 5.252997
+ 621241.400 3365733.400 5.478659
+ 621303.900 3365733.400 5.399834
+ 621335.150 3365733.400 5.360422
+ 621366.400 3365733.400 5.321009
+ 621397.650 3365733.400 5.261823
+ 621428.900 3365733.400 5.202636
+ 621491.400 3365733.400 5.084263
+ 623616.400 3365733.400 0.7245013
+ 623678.900 3365733.400 0.7044749
+ 623741.400 3365733.400 0.6844485
+ 619741.400 3365670.900 6.481211
+ 619991.400 3365670.900 6.412200
+ 620241.400 3365670.900 6.265436
+ 620491.400 3365670.900 6.099437
+ 620741.400 3365670.900 5.908582
+ 620991.400 3365670.900 5.680727
+ 621116.400 3365670.900 5.555483
+ 621241.400 3365670.900 5.389002
+ 621303.900 3365670.900 5.305762
+ 621366.400 3365670.900 5.222522
+ 621428.900 3365670.900 5.101914
+ 621491.400 3365670.900 4.981307
+ 621616.400 3365670.900 4.740093
+ 621741.400 3365670.900 4.409821
+ 621991.400 3365670.900 3.700394
+ 622241.400 3365670.900 2.951408
+ 622491.400 3365670.900 2.262697
+ 622741.400 3365670.900 1.694988
+ 622991.400 3365670.900 1.266113
+ 623241.400 3365670.900 0.9627508
+ 623491.400 3365670.900 0.7600515
+ 623616.400 3365670.900 0.6806688
+ 623678.900 3365670.900 0.6595676
+ 623741.400 3365670.900 0.6384663
+ 623866.400 3365670.900 0.5962638
+ 623991.400 3365670.900 0.6290224
+ 624241.400 3365670.900 0.7164745
+ 624491.400 3365670.900 0.8383125
+ 624741.400 3365670.900 0.9054572
+ 623616.400 3365608.400 0.6368364
+ 623678.900 3365608.400 0.6146603
+ 623741.400 3365608.400 0.5924841
+ 621241.400 3365545.900 5.209689
+ 621366.400 3365545.900 5.025546
+ 621491.400 3365545.900 4.775395
+ 623491.400 3365545.900 0.6686568
+ 623616.400 3365545.900 0.5930039
+ 623678.900 3365545.900 0.5697529
+ 623741.400 3365545.900 0.5465020
+ 623866.400 3365545.900 0.5000000
+ 623991.400 3365545.900 0.5464430
+ 623616.400 3365483.400 0.5575998
+ 623678.900 3365483.400 0.5386455
+ 623741.400 3365483.400 0.5196913
+ 619741.400 3365420.900 6.290863
+ 619991.400 3365420.900 6.217359
+ 620241.400 3365420.900 6.059032
+ 620491.400 3365420.900 5.874913
+ 620741.400 3365420.900 5.656301
+ 620991.400 3365420.900 5.388145
+ 621241.400 3365420.900 5.045950
+ 621366.400 3365420.900 4.852596
+ 621491.400 3365420.900 4.597852
+ 621741.400 3365420.900 4.023041
+ 621991.400 3365420.900 3.340062
+ 622241.400 3365420.900 2.615054
+ 622491.400 3365420.900 1.940646
+ 622741.400 3365420.900 1.396412
+ 622991.400 3365420.900 1.007612
+ 623241.400 3365420.900 0.7488427
+ 623491.400 3365420.900 0.5845725
+ 623616.400 3365420.900 0.5221957
+ 623678.900 3365420.900 0.5075381
+ 623741.400 3365420.900 0.4928806
+ 623866.400 3365420.900 0.4635655
+ 623991.400 3365420.900 0.5071260
+ 624241.400 3365420.900 0.6129748
+ 624491.400 3365420.900 0.7484179
+ 624741.400 3365420.900 0.8215725
+ 623616.400 3365358.400 0.4867916
+ 623678.900 3365358.400 0.4764307
+ 623741.400 3365358.400 0.4660699
+ 623491.400 3365295.900 0.5004882
+ 623616.400 3365295.900 0.4513874
+ 623678.900 3365295.900 0.4453233
+ 623741.400 3365295.900 0.4392592
+ 623866.400 3365295.900 0.4271310
+ 623991.400 3365295.900 0.4678088
+ 623616.400 3365233.400 0.4223767
+ 623678.900 3365233.400 0.4191623
+ 623741.400 3365233.400 0.4159479
+ 619741.400 3365170.900 6.099464
+ 619991.400 3365170.900 6.020782
+ 620241.400 3365170.900 5.850054
+ 620491.400 3365170.900 5.648824
+ 620741.400 3365170.900 5.407566
+ 620991.400 3365170.900 5.112132
+ 621241.400 3365170.900 4.743052
+ 621491.400 3365170.900 4.277551
+ 621741.400 3365170.900 3.697346
+ 621991.400 3365170.900 3.006814
+ 622241.400 3365170.900 2.256203
+ 622491.400 3365170.900 1.553046
+ 622741.400 3365170.900 1.028717
+ 622991.400 3365170.900 0.7112076
+ 623241.400 3365170.900 0.5277954
+ 623491.400 3365170.900 0.4267931
+ 623616.400 3365170.900 0.3933660
+ 623678.900 3365170.900 0.3930013
+ 623741.400 3365170.900 0.3926366
+ 623866.400 3365170.900 0.3919072
+ 623991.400 3365170.900 0.4372309
+ 624241.400 3365170.900 0.5466900
+ 624491.400 3365170.900 0.6869829
+ 624741.400 3365170.900 0.7631403
+ 623616.400 3365108.400 0.3643553
+ 623678.900 3365108.400 0.3668403
+ 623741.400 3365108.400 0.3693253
+ 623491.400 3365045.900 0.3530980
+ 623616.400 3365045.900 0.3353446
+ 623678.900 3365045.900 0.3406793
+ 623741.400 3365045.900 0.3460140
+ 623866.400 3365045.900 0.3566834
+ 623991.400 3365045.900 0.4066530
+ 623616.400 3364983.400 0.3132969
+ 623678.900 3364983.400 0.3207762
+ 623741.400 3364983.400 0.3282554
+ 619741.400 3364920.900 5.911987
+ 619991.400 3364920.900 5.828596
+ 620241.400 3364920.900 5.647248
+ 620491.400 3364920.900 5.433013
+ 620741.400 3364920.900 5.177023
+ 620991.400 3364920.900 4.867613
+ 621241.400 3364920.900 4.490494
+ 621491.400 3364920.900 4.028682
+ 621741.400 3364920.900 3.456918
+ 621991.400 3364920.900 2.749064
+ 622241.400 3364920.900 1.939750
+ 622491.400 3364920.900 1.138550
+ 622741.400 3364920.900 0.6271529
+ 622866.400 3364920.900 0.4981232
+ 622991.400 3364920.900 0.4318011
+ 623241.400 3364920.900 0.3337429
+ 623491.400 3364920.900 0.2966280
+ 623616.400 3364920.900 0.2912492
+ 623678.900 3364920.900 0.3008730
+ 623741.400 3364920.900 0.3104969
+ 623866.400 3364920.900 0.3297445
+ 623991.400 3364920.900 0.3853952
+ 624241.400 3364920.900 0.5075580
+ 624491.400 3364920.900 0.6520561
+ 624741.400 3364920.900 0.7300419
+ 623616.400 3364858.400 0.2692015
+ 623678.900 3364858.400 0.2809699
+ 623741.400 3364858.400 0.2927383
+ 622741.400 3364795.900 0.4241142
+ 622866.400 3364795.900 0.3482283
+ 622991.400 3364795.900 0.3061607
+ 623491.400 3364795.900 0.2401580
+ 623616.400 3364795.900 0.2471538
+ 623678.900 3364795.900 0.2610668
+ 623741.400 3364795.900 0.2749797
+ 623866.400 3364795.900 0.3028056
+ 623991.400 3364795.900 0.3641374
+ 623616.400 3364733.400 0.2351504
+ 623678.900 3364733.400 0.2504434
+ 623741.400 3364733.400 0.2657365
+ 619741.400 3364670.900 5.732512
+ 619991.400 3364670.900 5.645536
+ 620241.400 3364670.900 5.456635
+ 620491.400 3364670.900 5.234403
+ 620741.400 3364670.900 4.971108
+ 620991.400 3364670.900 4.657501
+ 621241.400 3364670.900 4.283646
+ 621491.400 3364670.900 3.839783
+ 621741.400 3364670.900 3.311541
+ 621991.400 3364670.900 2.600364
+ 622241.400 3364670.900 1.738286
+ 622491.400 3364670.900 0.9113060
+ 622616.400 3364670.900 0.5228451
+ 622741.400 3364670.900 0.4103284
+ 622803.900 3364670.900 0.3540700
+ 622866.400 3364670.900 0.2978116
+ 622928.900 3364670.900 0.2767299
+ 622991.400 3364670.900 0.2556482
+ 623116.400 3364670.900 0.2134849
+ 623241.400 3364670.900 0.2044119
+ 623491.400 3364670.900 0.2092430
+ 623616.400 3364670.900 0.2231469
+ 623678.900 3364670.900 0.2398201
+ 623741.400 3364670.900 0.2564932
+ 623866.400 3364670.900 0.2898395
+ 623991.400 3364670.900 0.3558513
+ 624241.400 3364670.900 0.4918560
+ 624491.400 3364670.900 0.6414792
+ 624741.400 3364670.900 0.7211094
+ 622741.400 3364608.400 0.4034355
+ 622803.900 3364608.400 0.3380194
+ 622835.150 3364608.400 0.3053113
+ 622866.400 3364608.400 0.2726032
+ 622897.650 3364608.400 0.2620504
+ 622928.900 3364608.400 0.2514976
+ 622991.400 3364608.400 0.2303920
+ 623616.400 3364608.400 0.2111435
+ 623678.900 3364608.400 0.2291968
+ 623741.400 3364608.400 0.2472500
+ 622803.900 3364577.150 0.3299941
+ 622835.150 3364577.150 0.2949966
+ 622866.400 3364577.150 0.2599991
+ 622897.650 3364577.150 0.2494403
+ 622928.900 3364577.150 0.2388815
+ 622491.400 3364545.900 0.8918641
+ 622616.400 3364545.900 0.5456903
+ 622741.400 3364545.900 0.3965426
+ 622803.900 3364545.900 0.3219688
+ 622835.150 3364545.900 0.2846818
+ 622866.400 3364545.900 0.2473949
+ 622897.650 3364545.900 0.2368301
+ 622928.900 3364545.900 0.2262654
+ 622991.400 3364545.900 0.2051358
+ 623116.400 3364545.900 0.1628767
+ 623241.400 3364545.900 0.1601962
+ 623491.400 3364545.900 0.1783279
+ 623616.400 3364545.900 0.1991401
+ 623678.900 3364545.900 0.2185734
+ 623741.400 3364545.900 0.2380068
+ 623866.400 3364545.900 0.2768734
+ 623991.400 3364545.900 0.3475652
+ 622803.900 3364514.650 0.3207074
+ 622835.150 3364514.650 0.2841622
+ 622866.400 3364514.650 0.2476169
+ 622897.650 3364514.650 0.2368224
+ 622928.900 3364514.650 0.2260278
+ 622741.400 3364483.400 0.3910533
+ 622803.900 3364483.400 0.3194461
+ 622835.150 3364483.400 0.2836425
+ 622866.400 3364483.400 0.2478389
+ 622897.650 3364483.400 0.2368146
+ 622928.900 3364483.400 0.2257902
+ 622991.400 3364483.400 0.2037416
+ 623616.400 3364483.400 0.1984068
+ 623678.900 3364483.400 0.2185262
+ 623741.400 3364483.400 0.2386457
+ 619741.400 3364420.900 5.563868
+ 619991.400 3364420.900 5.474689
+ 620241.400 3364420.900 5.281645
+ 620491.400 3364420.900 5.056188
+ 620741.400 3364420.900 4.791533
+ 620991.400 3364420.900 4.479591
+ 621241.400 3364420.900 4.111344
+ 621491.400 3364420.900 3.677104
+ 621741.400 3364420.900 3.161951
+ 621991.400 3364420.900 2.468703
+ 622241.400 3364420.900 1.637266
+ 622491.400 3364420.900 0.8708221
+ 622616.400 3364420.900 0.5228451
+ 622741.400 3364420.900 0.3855641
+ 622803.900 3364420.900 0.3169235
+ 622866.400 3364420.900 0.2482830
+ 622928.900 3364420.900 0.2253151
+ 622991.400 3364420.900 0.2023473
+ 623116.400 3364420.900 0.1564117
+ 623241.400 3364420.900 0.1537648
+ 623491.400 3364420.900 0.1743957
+ 623616.400 3364420.900 0.1976735
+ 623678.900 3364420.900 0.2184790
+ 623741.400 3364420.900 0.2392846
+ 623866.400 3364420.900 0.2808957
+ 623991.400 3364420.900 0.3450090
+ 624241.400 3364420.900 0.4917569
+ 624491.400 3364420.900 0.6551657
+ 624741.400 3364420.900 0.7359399
+ 623616.400 3364358.400 0.1969402
+ 623678.900 3364358.400 0.2184318
+ 623741.400 3364358.400 0.2399235
+ 622741.400 3364295.900 0.3745855
+ 622866.400 3364295.900 0.2491710
+ 622991.400 3364295.900 0.1995589
+ 623491.400 3364295.900 0.1704634
+ 623616.400 3364295.900 0.1962069
+ 623678.900 3364295.900 0.2183847
+ 623741.400 3364295.900 0.2405624
+ 623866.400 3364295.900 0.2849179
+ 623991.400 3364295.900 0.3424528
+ 623616.400 3364233.400 0.2060310
+ 623678.900 3364233.400 0.2284521
+ 623741.400 3364233.400 0.2508732
+ 619741.400 3364170.900 5.407640
+ 619991.400 3364170.900 5.317622
+ 620241.400 3364170.900 5.123657
+ 620491.400 3364170.900 4.899199
+ 620741.400 3364170.900 4.638227
+ 620991.400 3364170.900 4.332849
+ 621241.400 3364170.900 3.972125
+ 621491.400 3364170.900 3.539304
+ 621741.400 3364170.900 3.005008
+ 621991.400 3364170.900 2.340882
+ 622241.400 3364170.900 1.592934
+ 622491.400 3364170.900 0.8904488
+ 622741.400 3364170.900 0.4257171
+ 622866.400 3364170.900 0.2823662
+ 622991.400 3364170.900 0.2267125
+ 623241.400 3364170.900 0.1671189
+ 623491.400 3364170.900 0.1895171
+ 623616.400 3364170.900 0.2158552
+ 623678.900 3364170.900 0.2385196
+ 623741.400 3364170.900 0.2611840
+ 623866.400 3364170.900 0.3065130
+ 623991.400 3364170.900 0.3646978
+ 624241.400 3364170.900 0.5178823
+ 624491.400 3364170.900 0.6937796
+ 624741.400 3364170.900 0.7746775
+ 623616.400 3364108.400 0.2256793
+ 623678.900 3364108.400 0.2485871
+ 623741.400 3364108.400 0.2714949
+ 623491.400 3364045.900 0.2085708
+ 623616.400 3364045.900 0.2355034
+ 623678.900 3364045.900 0.2586546
+ 623741.400 3364045.900 0.2818057
+ 623866.400 3364045.900 0.3281080
+ 623991.400 3364045.900 0.3869428
+ 623616.400 3363983.400 0.2547391
+ 623678.900 3363983.400 0.2779053
+ 623741.400 3363983.400 0.3010715
+ 619741.400 3363920.900 5.264349
+ 619991.400 3363920.900 5.174656
+ 620241.400 3363920.900 4.982467
+ 620491.400 3363920.900 4.762532
+ 620741.400 3363920.900 4.509868
+ 620991.400 3363920.900 4.217400
+ 621241.400 3363920.900 3.873712
+ 621491.400 3363920.900 3.458644
+ 621741.400 3363920.900 2.941212
+ 621991.400 3363920.900 2.304285
+ 622241.400 3363920.900 1.598199
+ 622491.400 3363920.900 0.9524683
+ 622741.400 3363920.900 0.5047027
+ 622991.400 3363920.900 0.2850443
+ 623241.400 3363920.900 0.2219785
+ 623491.400 3363920.900 0.2462715
+ 623616.400 3363920.900 0.2739748
+ 623678.900 3363920.900 0.2971561
+ 623741.400 3363920.900 0.3203373
+ 623866.400 3363920.900 0.3666999
+ 623991.400 3363920.900 0.4251212
+ 624241.400 3363920.900 0.5807586
+ 624491.400 3363920.900 0.7576545
+ 624741.400 3363920.900 0.8373345
+ 623616.400 3363858.400 0.2932105
+ 623678.900 3363858.400 0.3164068
+ 623741.400 3363858.400 0.3396032
+ 623491.400 3363795.900 0.2839721
+ 623616.400 3363795.900 0.3124462
+ 623678.900 3363795.900 0.3356576
+ 623741.400 3363795.900 0.3588690
+ 623866.400 3363795.900 0.4052917
+ 623991.400 3363795.900 0.4632996
+ 623616.400 3363733.400 0.3407062
+ 623678.900 3363733.400 0.3637134
+ 623741.400 3363733.400 0.3867207
+ 619741.400 3363670.900 5.133721
+ 619991.400 3363670.900 5.045199
+ 620241.400 3363670.900 4.856661
+ 620491.400 3363670.900 4.643615
+ 620741.400 3363670.900 4.402598
+ 620991.400 3363670.900 4.128816
+ 621241.400 3363670.900 3.814337
+ 621491.400 3363670.900 3.442848
+ 621741.400 3363670.900 2.974294
+ 621991.400 3363670.900 2.356205
+ 622241.400 3363670.900 1.632037
+ 622491.400 3363670.900 0.9657724
+ 622741.400 3363670.900 0.5285812
+ 622991.400 3363670.900 0.3442108
+ 623241.400 3363670.900 0.3065785
+ 623491.400 3363670.900 0.3397633
+ 623616.400 3363670.900 0.3689662
+ 623678.900 3363670.900 0.3917692
+ 623741.400 3363670.900 0.4145723
+ 623866.400 3363670.900 0.4601785
+ 623991.400 3363670.900 0.5167775
+ 624241.400 3363670.900 0.6714078
+ 624491.400 3363670.900 0.8464119
+ 624741.400 3363670.900 0.9233848
+ 623616.400 3363608.400 0.3972261
+ 623678.900 3363608.400 0.4198251
+ 623741.400 3363608.400 0.4424240
+ 623491.400 3363545.900 0.3955544
+ 623616.400 3363545.900 0.4254861
+ 623678.900 3363545.900 0.4478809
+ 623741.400 3363545.900 0.4702757
+ 623866.400 3363545.900 0.5150653
+ 623991.400 3363545.900 0.5702555
+ 623616.400 3363483.400 0.4628244
+ 623678.900 3363483.400 0.4846753
+ 623741.400 3363483.400 0.5065263
+ 619741.400 3363420.900 5.015041
+ 619991.400 3363420.900 4.928153
+ 620241.400 3363420.900 4.744146
+ 620491.400 3363420.900 4.538724
+ 620741.400 3363420.900 4.309915
+ 620991.400 3363420.900 4.055556
+ 621241.400 3363420.900 3.772929
+ 621491.400 3363420.900 3.456578
+ 621741.400 3363420.900 3.085597
+ 621991.400 3363420.900 2.488389
+ 622241.400 3363420.900 1.690102
+ 622491.400 3363420.900 0.9306604
+ 622741.400 3363420.900 0.5064251
+ 622991.400 3363420.900 0.4302219
+ 623241.400 3363420.900 0.4331145
+ 623491.400 3363420.900 0.4715492
+ 623616.400 3363420.900 0.5001627
+ 623678.900 3363420.900 0.5214698
+ 623741.400 3363420.900 0.5427769
+ 623866.400 3363420.900 0.5853910
+ 623991.400 3363420.900 0.6380937
+ 624241.400 3363420.900 0.7884505
+ 624491.400 3363420.900 0.9588438
+ 624741.400 3363420.900 1.031583
+ 623616.400 3363358.400 0.5375011
+ 623678.900 3363358.400 0.5582643
+ 623741.400 3363358.400 0.5790275
+ 623491.400 3363295.900 0.5475439
+ 623616.400 3363295.900 0.5748394
+ 623678.900 3363295.900 0.5950587
+ 623741.400 3363295.900 0.6152781
+ 623866.400 3363295.900 0.6557167
+ 623991.400 3363295.900 0.7059320
+ 623616.400 3363233.400 0.5748394
+ 623678.900 3363233.400 0.5950587
+ 623741.400 3363233.400 0.6152781
+ 619741.400 3363170.900 4.958582
+ 619991.400 3363170.900 4.872580
+ 620241.400 3363170.900 4.690930
+ 620491.400 3363170.900 4.489279
+ 620741.400 3363170.900 4.266286
+ 620991.400 3363170.900 4.020916
+ 621241.400 3363170.900 3.752851
+ 621491.400 3363170.900 3.463351
+ 621741.400 3363170.900 3.156767
+ 621991.400 3363170.900 2.573155
+ 622241.400 3363170.900 1.726750
+ 622491.400 3363170.900 0.9035950
+ 622741.400 3363170.900 0.4882445
+ 622991.400 3363170.900 0.4882445
+ 623241.400 3363170.900 0.5101242
+ 623491.400 3363170.900 0.5475439
+ 623616.400 3363170.900 0.5748394
+ 623678.900 3363170.900 0.5950587
+ 623741.400 3363170.900 0.6152781
+ 623866.400 3363170.900 0.6557167
+ 623991.400 3363170.900 0.7059320
+ 624241.400 3363170.900 0.8533388
+ 624491.400 3363170.900 1.020773
+ 624741.400 3363170.900 1.091015
+ 1 619866.400 3373045.900 36.95120 1 8 1 37 38 2 1756 1792 1793 1757
+ 2 620116.400 3373045.900 36.91541 1 8 2 38 39 3 1757 1793 1794 1758
+ 3 620366.400 3373045.900 36.84000 1 8 3 39 40 4 1758 1794 1795 1759
+ 4 620616.400 3373045.900 36.72716 1 8 4 40 41 5 1759 1795 1796 1760
+ 5 620866.400 3373045.900 36.60465 1 8 5 41 42 6 1760 1796 1797 1761
+ 6 621116.400 3373045.900 36.46542 1 8 6 42 43 7 1761 1797 1798 1762
+ 7 621366.400 3373045.900 36.29542 1 8 7 43 44 8 1762 1798 1799 1763
+ 8 621616.400 3373045.900 36.14818 1 8 8 44 45 9 1763 1799 1800 1764
+ 9 621866.400 3373045.900 35.97205 1 8 9 45 46 10 1764 1800 1801 1765
+ 10 622116.400 3373045.900 35.79343 1 8 10 46 47 11 1765 1801 1802 1766
+ 11 622366.400 3373045.900 35.62184 1 8 11 47 48 12 1766 1802 1803 1767
+ 12 622616.400 3373045.900 35.45200 1 8 12 48 49 13 1767 1803 1804 1768
+ 13 622866.400 3373045.900 35.27682 1 8 13 49 50 14 1768 1804 1805 1769
+ 14 623116.400 3373045.900 35.08606 1 8 14 50 51 15 1769 1805 1806 1770
+ 15 623366.400 3373045.900 34.88779 1 8 15 51 52 16 1770 1806 1807 1771
+ 16 623553.900 3373108.400 34.71459 1 8 16 28 29 17 1771 1783 1784 1772
+ 17 623647.650 3373139.650 34.66631 1 8 17 25 26 18 1772 1780 1781 1773
+ 18 623710.150 3373139.650 34.68522 1 8 18 26 27 19 1773 1781 1782 1774
+ 19 623647.650 3373077.150 34.66631 1 8 25 29 30 26 1780 1784 1785 1781
+ 20 623710.150 3373077.150 34.68522 1 8 26 30 31 27 1781 1785 1786 1782
+ 21 623553.900 3372983.400 34.71367 1 8 28 52 53 29 1783 1807 1808 1784
+ 22 623647.650 3373014.650 34.66579 1 8 29 34 35 30 1784 1789 1790 1785
+ 23 623710.150 3373014.650 34.68468 1 8 30 35 36 31 1785 1790 1791 1786
+ 24 623647.650 3372952.150 34.66476 1 8 34 53 54 35 1789 1808 1809 1790
+ 25 623710.150 3372952.150 34.68359 1 8 35 54 55 36 1790 1809 1810 1791
+ 26 623803.900 3373108.400 34.71358 1 8 19 31 32 20 1774 1786 1787 1775
+ 27 623928.900 3373108.400 34.74178 1 8 20 32 33 21 1775 1787 1788 1776
+ 28 623803.900 3372983.400 34.71243 1 8 31 55 56 32 1786 1810 1811 1787
+ 29 623928.900 3372983.400 34.74062 1 8 32 56 57 33 1787 1811 1812 1788
+ 30 624116.400 3373045.900 34.76968 1 8 21 57 58 22 1776 1812 1813 1777
+ 31 624366.400 3373045.900 34.79346 1 8 22 58 59 23 1777 1813 1814 1778
+ 32 624616.400 3373045.900 34.80640 1 8 23 59 60 24 1778 1814 1815 1779
+ 33 619866.400 3372795.900 36.95876 1 8 37 73 74 38 1792 1828 1829 1793
+ 34 620116.400 3372795.900 36.91894 1 8 38 74 75 39 1793 1829 1830 1794
+ 35 620366.400 3372795.900 36.84402 1 8 39 75 76 40 1794 1830 1831 1795
+ 36 620616.400 3372795.900 36.72813 1 8 40 76 77 41 1795 1831 1832 1796
+ 37 620866.400 3372795.900 36.60963 1 8 41 77 78 42 1796 1832 1833 1797
+ 38 621116.400 3372795.900 36.46803 1 8 42 78 79 43 1797 1833 1834 1798
+ 39 621366.400 3372795.900 36.29782 1 8 43 79 80 44 1798 1834 1835 1799
+ 40 621616.400 3372795.900 36.14035 1 8 44 80 81 45 1799 1835 1836 1800
+ 41 621866.400 3372795.900 35.96773 1 8 45 81 82 46 1800 1836 1837 1801
+ 42 622116.400 3372795.900 35.78038 1 8 46 82 83 47 1801 1837 1838 1802
+ 43 622366.400 3372795.900 35.60931 1 8 47 83 84 48 1802 1838 1839 1803
+ 44 622616.400 3372795.900 35.44176 1 8 48 84 85 49 1803 1839 1840 1804
+ 45 622866.400 3372795.900 35.26719 1 8 49 85 86 50 1804 1840 1841 1805
+ 46 623116.400 3372795.900 35.07734 1 8 50 86 87 51 1805 1841 1842 1806
+ 47 623366.400 3372795.900 34.88511 1 8 51 87 88 52 1806 1842 1843 1807
+ 48 623553.900 3372858.400 34.71181 1 8 52 64 65 53 1807 1819 1820 1808
+ 49 623647.650 3372889.650 34.66372 1 8 53 61 62 54 1808 1816 1817 1809
+ 50 623710.150 3372889.650 34.68251 1 8 54 62 63 55 1809 1817 1818 1810
+ 51 623647.650 3372827.150 34.66268 1 8 61 65 66 62 1816 1820 1821 1817
+ 52 623710.150 3372827.150 34.68143 1 8 62 66 67 63 1817 1821 1822 1818
+ 53 623553.900 3372733.400 34.70920 1 8 64 88 89 65 1819 1843 1844 1820
+ 54 623647.650 3372764.650 34.66133 1 8 65 70 71 66 1820 1825 1826 1821
+ 55 623710.150 3372764.650 34.68000 1 8 66 71 72 67 1821 1826 1827 1822
+ 56 623647.650 3372702.150 34.65967 1 8 70 89 90 71 1825 1844 1845 1826
+ 57 623710.150 3372702.150 34.67825 1 8 71 90 91 72 1826 1845 1846 1827
+ 58 623803.900 3372858.400 34.71012 1 8 55 67 68 56 1810 1822 1823 1811
+ 59 623928.900 3372858.400 34.73829 1 8 56 68 69 57 1811 1823 1824 1812
+ 60 623803.900 3372733.400 34.70707 1 8 67 91 92 68 1822 1846 1847 1823
+ 61 623928.900 3372733.400 34.73507 1 8 68 92 93 69 1823 1847 1848 1824
+ 62 624116.400 3372795.900 34.76546 1 8 57 93 94 58 1812 1848 1849 1813
+ 63 624366.400 3372795.900 34.78943 1 8 58 94 95 59 1813 1849 1850 1814
+ 64 624616.400 3372795.900 34.80193 1 8 59 95 96 60 1814 1850 1851 1815
+ 65 619866.400 3372545.900 36.97123 1 8 73 109 110 74 1828 1864 1865 1829
+ 66 620116.400 3372545.900 36.93351 1 8 74 110 111 75 1829 1865 1866 1830
+ 67 620366.400 3372545.900 36.85336 1 8 75 111 112 76 1830 1866 1867 1831
+ 68 620616.400 3372545.900 36.73503 1 8 76 112 113 77 1831 1867 1868 1832
+ 69 620866.400 3372545.900 36.61694 1 8 77 113 114 78 1832 1868 1869 1833
+ 70 621116.400 3372545.900 36.47044 1 8 78 114 115 79 1833 1869 1870 1834
+ 71 621366.400 3372545.900 36.29206 1 8 79 115 116 80 1834 1870 1871 1835
+ 72 621616.400 3372545.900 36.13279 1 8 80 116 117 81 1835 1871 1872 1836
+ 73 621866.400 3372545.900 35.94910 1 8 81 117 118 82 1836 1872 1873 1837
+ 74 622116.400 3372545.900 35.76604 1 8 82 118 119 83 1837 1873 1874 1838
+ 75 622366.400 3372545.900 35.58693 1 8 83 119 120 84 1838 1874 1875 1839
+ 76 622616.400 3372545.900 35.42107 1 8 84 120 121 85 1839 1875 1876 1840
+ 77 622866.400 3372545.900 35.24638 1 8 85 121 122 86 1840 1876 1877 1841
+ 78 623116.400 3372545.900 35.06367 1 8 86 122 123 87 1841 1877 1878 1842
+ 79 623366.400 3372545.900 34.87768 1 8 87 123 124 88 1842 1878 1879 1843
+ 80 623553.900 3372608.400 34.70585 1 8 88 100 101 89 1843 1855 1856 1844
+ 81 623647.650 3372639.650 34.65800 1 8 89 97 98 90 1844 1852 1853 1845
+ 82 623710.150 3372639.650 34.67649 1 8 90 98 99 91 1845 1853 1854 1846
+ 83 623647.650 3372577.150 34.65634 1 8 97 101 102 98 1852 1856 1857 1853
+ 84 623710.150 3372577.150 34.67474 1 8 98 102 103 99 1853 1857 1858 1854
+ 85 623553.900 3372483.400 34.70153 1 8 100 124 125 101 1855 1879 1880 1856
+ 86 623647.650 3372514.650 34.65448 1 8 101 106 107 102 1856 1861 1862 1857
+ 87 623710.150 3372514.650 34.67278 1 8 102 107 108 103 1857 1862 1863 1858
+ 88 623647.650 3372452.150 34.65241 1 8 106 125 126 107 1861 1880 1881 1862
+ 89 623710.150 3372452.150 34.67060 1 8 107 126 127 108 1862 1881 1882 1863
+ 90 623803.900 3372608.400 34.70328 1 8 91 103 104 92 1846 1858 1859 1847
+ 91 623928.900 3372608.400 34.73095 1 8 92 104 105 93 1847 1859 1860 1848
+ 92 623803.900 3372483.400 34.69906 1 8 103 127 128 104 1858 1882 1883 1859
+ 93 623928.900 3372483.400 34.72626 1 8 104 128 129 105 1859 1883 1884 1860
+ 94 624116.400 3372545.900 34.75637 1 8 93 129 130 94 1848 1884 1885 1849
+ 95 624366.400 3372545.900 34.78036 1 8 94 130 131 95 1849 1885 1886 1850
+ 96 624616.400 3372545.900 34.79295 1 8 95 131 132 96 1850 1886 1887 1851
+ 97 619866.400 3372295.900 36.99190 1 8 109 145 146 110 1864 1900 1901 1865
+ 98 620116.400 3372295.900 36.95401 1 8 110 146 147 111 1865 1901 1902 1866
+ 99 620366.400 3372295.900 36.87396 1 8 111 147 148 112 1866 1902 1903 1867
+ 100 620616.400 3372295.900 36.75153 1 8 112 148 149 113 1867 1903 1904 1868
+ 101 620866.400 3372295.900 36.62427 1 8 113 149 150 114 1868 1904 1905 1869
+ 102 621116.400 3372295.900 36.47524 1 8 114 150 151 115 1869 1905 1906 1870
+ 103 621366.400 3372295.900 36.28669 1 8 115 151 152 116 1870 1906 1907 1871
+ 104 621616.400 3372295.900 36.11459 1 8 116 152 153 117 1871 1907 1908 1872
+ 105 621866.400 3372295.900 35.93338 1 8 117 153 154 118 1872 1908 1909 1873
+ 106 622116.400 3372295.900 35.72728 1 8 118 154 155 119 1873 1909 1910 1874
+ 107 622366.400 3372295.900 35.55056 1 8 119 155 156 120 1874 1910 1911 1875
+ 108 622616.400 3372295.900 35.38783 1 8 120 156 157 121 1875 1911 1912 1876
+ 109 622866.400 3372295.900 35.21855 1 8 121 157 158 122 1876 1912 1913 1877
+ 110 623116.400 3372295.900 35.04452 1 8 122 158 159 123 1877 1913 1914 1878
+ 111 623366.400 3372295.900 34.85955 1 8 123 159 160 124 1878 1914 1915 1879
+ 112 623553.900 3372358.400 34.69624 1 8 124 136 137 125 1879 1891 1892 1880
+ 113 623647.650 3372389.650 34.65034 1 8 125 133 134 126 1880 1888 1889 1881
+ 114 623710.150 3372389.650 34.66843 1 8 126 134 135 127 1881 1889 1890 1882
+ 115 623647.650 3372327.150 34.64827 1 8 133 137 138 134 1888 1892 1893 1889
+ 116 623710.150 3372327.150 34.66627 1 8 134 138 139 135 1889 1893 1894 1890
+ 117 623553.900 3372233.400 34.69008 1 8 136 160 161 137 1891 1915 1916 1892
+ 118 623647.650 3372264.650 34.64568 1 8 137 142 143 138 1892 1897 1898 1893
+ 119 623710.150 3372264.650 34.66339 1 8 138 143 144 139 1893 1898 1899 1894
+ 120 623647.650 3372202.150 34.64256 1 8 142 161 162 143 1897 1916 1917 1898
+ 121 623710.150 3372202.150 34.65982 1 8 143 162 163 144 1898 1917 1918 1899
+ 122 623803.900 3372358.400 34.69441 1 8 127 139 140 128 1882 1894 1895 1883
+ 123 623928.900 3372358.400 34.72103 1 8 128 140 141 129 1883 1895 1896 1884
+ 124 623803.900 3372233.400 34.68784 1 8 139 163 164 140 1894 1918 1919 1895
+ 125 623928.900 3372233.400 34.71372 1 8 140 164 165 141 1895 1919 1920 1896
+ 126 624116.400 3372295.900 34.74352 1 8 129 165 166 130 1884 1920 1921 1885
+ 127 624366.400 3372295.900 34.76694 1 8 130 166 167 131 1885 1921 1922 1886
+ 128 624616.400 3372295.900 34.77881 1 8 131 167 168 132 1886 1922 1923 1887
+ 129 619866.400 3372045.900 37.02119 1 8 145 181 182 146 1900 1936 1937 1901
+ 130 620116.400 3372045.900 36.97951 1 8 146 182 183 147 1901 1937 1938 1902
+ 131 620366.400 3372045.900 36.89696 1 8 147 183 184 148 1902 1938 1939 1903
+ 132 620616.400 3372045.900 36.77771 1 8 148 184 185 149 1903 1939 1940 1904
+ 133 620866.400 3372045.900 36.64116 1 8 149 185 186 150 1904 1940 1941 1905
+ 134 621116.400 3372045.900 36.47234 1 8 150 186 187 151 1905 1941 1942 1906
+ 135 621366.400 3372045.900 36.28106 1 8 151 187 188 152 1906 1942 1943 1907
+ 136 621616.400 3372045.900 36.10628 1 8 152 188 189 153 1907 1943 1944 1908
+ 137 621866.400 3372045.900 35.88803 1 8 153 189 190 154 1908 1944 1945 1909
+ 138 622116.400 3372045.900 35.68530 1 8 154 190 191 155 1909 1945 1946 1910
+ 139 622366.400 3372045.900 35.51181 1 8 155 191 192 156 1910 1946 1947 1911
+ 140 622616.400 3372045.900 35.35134 1 8 156 192 193 157 1911 1947 1948 1912
+ 141 622866.400 3372045.900 35.18704 1 8 157 193 194 158 1912 1948 1949 1913
+ 142 623116.400 3372045.900 35.01786 1 8 158 194 195 159 1913 1949 1950 1914
+ 143 623366.400 3372045.900 34.83805 1 8 159 195 196 160 1914 1950 1951 1915
+ 144 623553.900 3372108.400 34.68305 1 8 160 172 173 161 1915 1927 1928 1916
+ 145 623647.650 3372139.650 34.63944 1 8 161 169 170 162 1916 1924 1925 1917
+ 146 623710.150 3372139.650 34.65625 1 8 162 170 171 163 1917 1925 1926 1918
+ 147 623647.650 3372077.150 34.63633 1 8 169 173 174 170 1924 1928 1929 1925
+ 148 623710.150 3372077.150 34.65268 1 8 170 174 175 171 1925 1929 1930 1926
+ 149 623553.900 3371983.400 34.67442 1 8 172 196 197 173 1927 1951 1952 1928
+ 150 623647.650 3372014.650 34.63236 1 8 173 178 179 174 1928 1933 1934 1929
+ 151 623710.150 3372014.650 34.64836 1 8 174 179 180 175 1929 1934 1935 1930
+ 152 623647.650 3371952.150 34.62754 1 8 178 197 198 179 1933 1952 1953 1934
+ 153 623710.150 3371952.150 34.64329 1 8 179 198 199 180 1934 1953 1954 1935
+ 154 623803.900 3372108.400 34.67934 1 8 163 175 176 164 1918 1930 1931 1919
+ 155 623928.900 3372108.400 34.70435 1 8 164 176 177 165 1919 1931 1932 1920
+ 156 623803.900 3371983.400 34.66964 1 8 175 199 200 176 1930 1954 1955 1931
+ 157 623928.900 3371983.400 34.69376 1 8 176 200 201 177 1931 1955 1956 1932
+ 158 624116.400 3372045.900 34.72504 1 8 165 201 202 166 1920 1956 1957 1921
+ 159 624366.400 3372045.900 34.74738 1 8 166 202 203 167 1921 1957 1958 1922
+ 160 624616.400 3372045.900 34.75935 1 8 167 203 204 168 1922 1958 1959 1923
+ 161 619866.400 3371795.900 37.05267 1 8 181 217 218 182 1936 1972 1973 1937
+ 162 620116.400 3371795.900 37.01727 1 8 182 218 219 183 1937 1973 1974 1938
+ 163 620366.400 3371795.900 36.93227 1 8 183 219 220 184 1938 1974 1975 1939
+ 164 620616.400 3371795.900 36.80787 1 8 184 220 221 185 1939 1975 1976 1940
+ 165 620866.400 3371795.900 36.66044 1 8 185 221 222 186 1940 1976 1977 1941
+ 166 621116.400 3371795.900 36.48151 1 8 186 222 223 187 1941 1977 1978 1942
+ 167 621366.400 3371795.900 36.27914 1 8 187 223 224 188 1942 1978 1979 1943
+ 168 621616.400 3371795.900 36.05957 1 8 188 224 225 189 1943 1979 1980 1944
+ 169 621866.400 3371795.900 35.85420 1 8 189 225 226 190 1944 1980 1981 1945
+ 170 622116.400 3371795.900 35.63870 1 8 190 226 227 191 1945 1981 1982 1946
+ 171 622366.400 3371795.900 35.45472 1 8 191 227 228 192 1946 1982 1983 1947
+ 172 622616.400 3371795.900 35.30436 1 8 192 228 229 193 1947 1983 1984 1948
+ 173 622866.400 3371795.900 35.14708 1 8 193 229 230 194 1948 1984 1985 1949
+ 174 623116.400 3371795.900 34.98421 1 8 194 230 231 195 1949 1985 1986 1950
+ 175 623366.400 3371795.900 34.81236 1 8 195 231 232 196 1950 1986 1987 1951
+ 176 623553.900 3371858.400 34.66416 1 8 196 208 209 197 1951 1963 1964 1952
+ 177 623647.650 3371889.650 34.62272 1 8 197 205 206 198 1952 1960 1961 1953
+ 178 623710.150 3371889.650 34.63822 1 8 198 206 207 199 1953 1961 1962 1954
+ 179 623647.650 3371827.150 34.61790 1 8 205 209 210 206 1960 1964 1965 1961
+ 180 623710.150 3371827.150 34.63316 1 8 206 210 211 207 1961 1965 1966 1962
+ 181 623553.900 3371733.400 34.65239 1 8 208 232 233 209 1963 1987 1988 1964
+ 182 623647.650 3371764.650 34.61238 1 8 209 214 215 210 1964 1969 1970 1965
+ 183 623710.150 3371764.650 34.62732 1 8 210 215 216 211 1965 1970 1971 1966
+ 184 623647.650 3371702.150 34.60616 1 8 214 233 234 215 1969 1988 1989 1970
+ 185 623710.150 3371702.150 34.62072 1 8 215 234 235 216 1970 1989 1990 1971
+ 186 623803.900 3371858.400 34.65876 1 8 199 211 212 200 1954 1966 1967 1955
+ 187 623928.900 3371858.400 34.68193 1 8 200 212 213 201 1955 1967 1968 1956
+ 188 623803.900 3371733.400 34.64615 1 8 211 235 236 212 1966 1990 1991 1967
+ 189 623928.900 3371733.400 34.66844 1 8 212 236 237 213 1967 1991 1992 1968
+ 190 624116.400 3371795.900 34.69874 1 8 201 237 238 202 1956 1992 1993 1957
+ 191 624366.400 3371795.900 34.72302 1 8 202 238 239 203 1957 1993 1994 1958
+ 192 624616.400 3371795.900 34.73582 1 8 203 239 240 204 1958 1994 1995 1959
+ 193 619866.400 3371545.900 37.09180 1 8 217 253 254 218 1972 2008 2009 1973
+ 194 620116.400 3371545.900 37.05571 1 8 218 254 255 219 1973 2009 2010 1974
+ 195 620366.400 3371545.900 36.98223 1 8 219 255 256 220 1974 2010 2011 1975
+ 196 620616.400 3371545.900 36.85044 1 8 220 256 257 221 1975 2011 2012 1976
+ 197 620866.400 3371545.900 36.68935 1 8 221 257 258 222 1976 2012 2013 1977
+ 198 621116.400 3371545.900 36.47732 1 8 222 258 259 223 1977 2013 2014 1978
+ 199 621366.400 3371545.900 36.26412 1 8 223 259 260 224 1978 2014 2015 1979
+ 200 621616.400 3371545.900 36.00500 1 8 224 260 261 225 1979 2015 2016 1980
+ 201 621866.400 3371545.900 35.78366 1 8 225 261 262 226 1980 2016 2017 1981
+ 202 622116.400 3371545.900 35.56364 1 8 226 262 263 227 1981 2017 2018 1982
+ 203 622366.400 3371545.900 35.39265 1 8 227 263 264 228 1982 2018 2019 1983
+ 204 622616.400 3371545.900 35.24899 1 8 228 264 265 229 1983 2019 2020 1984
+ 205 622866.400 3371545.900 35.09912 1 8 229 265 266 230 1984 2020 2021 1985
+ 206 623116.400 3371545.900 34.94329 1 8 230 266 267 231 1985 2021 2022 1986
+ 207 623366.400 3371545.900 34.77846 1 8 231 267 268 232 1986 2022 2023 1987
+ 208 623553.900 3371608.400 34.63911 1 8 232 244 245 233 1987 1999 2000 1988
+ 209 623647.650 3371639.650 34.59994 1 8 233 241 242 234 1988 1996 1997 1989
+ 210 623710.150 3371639.650 34.61413 1 8 234 242 243 235 1989 1997 1998 1990
+ 211 623647.650 3371577.150 34.59372 1 8 241 245 246 242 1996 2000 2001 1997
+ 212 623710.150 3371577.150 34.60753 1 8 242 246 247 243 1997 2001 2002 1998
+ 213 623553.900 3371483.400 34.62403 1 8 244 268 269 245 1999 2023 2024 2000
+ 214 623647.650 3371514.650 34.58652 1 8 245 250 251 246 2000 2005 2006 2001
+ 215 623710.150 3371514.650 34.59970 1 8 246 251 252 247 2001 2006 2007 2002
+ 216 623647.650 3371452.150 34.57835 1 8 250 269 270 251 2005 2024 2025 2006
+ 217 623710.150 3371452.150 34.59064 1 8 251 270 271 252 2006 2025 2026 2007
+ 218 623803.900 3371608.400 34.63183 1 8 235 247 248 236 1990 2002 2003 1991
+ 219 623928.900 3371608.400 34.65328 1 8 236 248 249 237 1991 2003 2004 1992
+ 220 623803.900 3371483.400 34.61428 1 8 247 271 272 248 2002 2026 2027 2003
+ 221 623928.900 3371483.400 34.63480 1 8 248 272 273 249 2003 2027 2028 2004
+ 222 624116.400 3371545.900 34.66796 1 8 237 273 274 238 1992 2028 2029 1993
+ 223 624366.400 3371545.900 34.69235 1 8 238 274 275 239 1993 2029 2030 1994
+ 224 624616.400 3371545.900 34.70679 1 8 239 275 276 240 1994 2030 2031 1995
+ 225 619866.400 3371295.900 37.15318 1 8 253 289 290 254 2008 2044 2045 2009
+ 226 620116.400 3371295.900 37.11650 1 8 254 290 291 255 2009 2045 2046 2010
+ 227 620366.400 3371295.900 37.05228 1 8 255 291 292 256 2010 2046 2047 2011
+ 228 620616.400 3371295.900 36.93205 1 8 256 292 293 257 2011 2047 2048 2012
+ 229 620866.400 3371295.900 36.71815 1 8 257 293 294 258 2012 2048 2049 2013
+ 230 621116.400 3371295.900 36.48077 1 8 258 294 295 259 2013 2049 2050 2014
+ 231 621366.400 3371295.900 36.22823 1 8 259 295 296 260 2014 2050 2051 2015
+ 232 621616.400 3371295.900 35.91840 1 8 260 296 297 261 2015 2051 2052 2016
+ 233 621866.400 3371295.900 35.67552 1 8 261 297 298 262 2016 2052 2053 2017
+ 234 622116.400 3371295.900 35.47230 1 8 262 298 299 263 2017 2053 2054 2018
+ 235 622366.400 3371295.900 35.31944 1 8 263 299 300 264 2018 2054 2055 2019
+ 236 622616.400 3371295.900 35.18500 1 8 264 300 301 265 2019 2055 2056 2020
+ 237 622866.400 3371295.900 35.04395 1 8 265 301 302 266 2020 2056 2057 2021
+ 238 623116.400 3371295.900 34.89211 1 8 266 302 303 267 2021 2057 2058 2022
+ 239 623366.400 3371295.900 34.73638 1 8 267 303 304 268 2022 2058 2059 2023
+ 240 623553.900 3371358.400 34.60718 1 8 268 280 281 269 2023 2035 2036 2024
+ 241 623647.650 3371389.650 34.57018 1 8 269 277 278 270 2024 2032 2033 2025
+ 242 623710.150 3371389.650 34.58159 1 8 270 278 279 271 2025 2033 2034 2026
+ 243 623647.650 3371327.150 34.56200 1 8 277 281 282 278 2032 2036 2037 2033
+ 244 623710.150 3371327.150 34.57253 1 8 278 282 283 279 2033 2037 2038 2034
+ 245 623553.900 3371233.400 34.58793 1 8 280 304 305 281 2035 2059 2060 2036
+ 246 623647.650 3371264.650 34.55225 1 8 281 286 287 282 2036 2041 2042 2037
+ 247 623710.150 3371264.650 34.56140 1 8 282 287 288 283 2037 2042 2043 2038
+ 248 623647.650 3371202.150 34.54091 1 8 286 305 306 287 2041 2060 2061 2042
+ 249 623710.150 3371202.150 34.54820 1 8 287 306 307 288 2042 2061 2062 2043
+ 250 623803.900 3371358.400 34.59351 1 8 271 283 284 272 2026 2038 2039 2027
+ 251 623928.900 3371358.400 34.61298 1 8 272 284 285 273 2027 2039 2040 2028
+ 252 623803.900 3371233.400 34.56713 1 8 283 307 308 284 2038 2062 2063 2039
+ 253 623928.900 3371233.400 34.58545 1 8 284 308 309 285 2039 2063 2064 2040
+ 254 624116.400 3371295.900 34.62865 1 8 273 309 310 274 2028 2064 2065 2029
+ 255 624366.400 3371295.900 34.65779 1 8 274 310 311 275 2029 2065 2066 2030
+ 256 624616.400 3371295.900 34.67588 1 8 275 311 312 276 2030 2066 2067 2031
+ 257 619866.400 3371045.900 37.21184 1 8 289 325 326 290 2044 2080 2081 2045
+ 258 620116.400 3371045.900 37.18565 1 8 290 326 327 291 2045 2081 2082 2046
+ 259 620366.400 3371045.900 37.14754 1 8 291 327 328 292 2046 2082 2083 2047
+ 260 620616.400 3371045.900 37.11198 1 8 292 328 329 293 2047 2083 2084 2048
+ 261 620866.400 3371045.900 -508.7450 1 8 293 329 330 294 2048 2084 2085 2049
+ 262 621116.400 3371045.900 -508.7450 1 8 294 330 331 295 2049 2085 2086 2050
+ 263 621366.400 3371045.900 -508.7450 1 8 295 331 332 296 2050 2086 2087 2051
+ 264 621616.400 3371045.900 35.70984 1 8 296 332 333 297 2051 2087 2088 2052
+ 265 621866.400 3371045.900 35.50628 1 8 297 333 334 298 2052 2088 2089 2053
+ 266 622116.400 3371045.900 35.36346 1 8 298 334 335 299 2053 2089 2090 2054
+ 267 622366.400 3371045.900 35.23990 1 8 299 335 336 300 2054 2090 2091 2055
+ 268 622616.400 3371045.900 35.11318 1 8 300 336 337 301 2055 2091 2092 2056
+ 269 622866.400 3371045.900 34.97836 1 8 301 337 338 302 2056 2092 2093 2057
+ 270 623116.400 3371045.900 34.83635 1 8 302 338 339 303 2057 2093 2094 2058
+ 271 623366.400 3371045.900 34.68811 1 8 303 339 340 304 2058 2094 2095 2059
+ 272 623553.900 3371108.400 34.56629 1 8 304 316 317 305 2059 2071 2072 2060
+ 273 623647.650 3371139.650 34.52958 1 8 305 313 314 306 2060 2068 2069 2061
+ 274 623710.150 3371139.650 34.53500 1 8 306 314 315 307 2061 2069 2070 2062
+ 275 623647.650 3371077.150 34.51825 1 8 313 317 318 314 2068 2072 2073 2069
+ 276 623710.150 3371077.150 34.52180 1 8 314 318 319 315 2069 2073 2074 2070
+ 277 623553.900 3370983.400 34.54286 1 8 316 340 341 317 2071 2095 2096 2072
+ 278 623647.650 3371014.650 34.50488 1 8 317 322 323 318 2072 2077 2078 2073
+ 279 623710.150 3371014.650 34.50448 1 8 318 323 324 319 2073 2078 2079 2074
+ 280 623647.650 3370952.150 34.48948 1 8 322 341 342 323 2077 2096 2097 2078
+ 281 623710.150 3370952.150 34.48302 1 8 323 342 343 324 2078 2097 2098 2079
+ 282 623803.900 3371108.400 34.53514 1 8 307 319 320 308 2062 2074 2075 2063
+ 283 623928.900 3371108.400 34.55219 1 8 308 320 321 309 2063 2075 2076 2064
+ 284 623803.900 3370983.400 34.48862 1 8 319 343 345 320 2074 2098 2100 2075
+ 285 623928.900 3370983.400 34.50481 1 8 320 345 347 321 2075 2100 2102 2076
+ 286 624116.400 3371045.900 34.57690 1 8 309 347 349 310 2064 2102 2104 2065
+ 287 624366.400 3371045.900 34.62177 1 8 310 349 350 311 2065 2104 2105 2066
+ 288 624616.400 3371045.900 34.64472 1 8 311 350 351 312 2066 2105 2106 2067
+ 289 619866.400 3370795.900 37.26940 1 8 325 392 393 326 2080 2147 2148 2081
+ 290 620116.400 3370795.900 37.24892 1 8 326 393 394 327 2081 2148 2149 2082
+ 291 620366.400 3370795.900 37.23240 1 8 327 394 395 328 2082 2149 2150 2083
+ 292 620616.400 3370795.900 37.21362 1 8 328 395 396 329 2083 2150 2151 2084
+ 293 620866.400 3370795.900 -508.7450 1 8 329 396 397 330 2084 2151 2152 2085
+ 294 621116.400 3370795.900 -508.7450 1 8 330 397 398 331 2085 2152 2153 2086
+ 295 621366.400 3370795.900 -508.7450 1 8 331 398 399 332 2086 2153 2154 2087
+ 296 621616.400 3370795.900 -508.7450 1 8 332 399 400 333 2087 2154 2155 2088
+ 297 621866.400 3370795.900 35.33305 1 8 333 400 401 334 2088 2155 2156 2089
+ 298 622116.400 3370795.900 35.25255 1 8 334 401 402 335 2089 2156 2157 2090
+ 299 622366.400 3370795.900 35.15064 1 8 335 402 403 336 2090 2157 2158 2091
+ 300 622616.400 3370795.900 35.03782 1 8 336 403 404 337 2091 2158 2159 2092
+ 301 622866.400 3370795.900 34.90872 1 8 337 404 405 338 2092 2159 2160 2093
+ 302 623116.400 3370795.900 34.76832 1 8 338 405 407 339 2093 2160 2162 2094
+ 303 623366.400 3370795.900 34.63472 1 8 339 407 408 340 2094 2162 2163 2095
+ 304 623553.900 3370858.400 34.51762 1 8 340 366 367 341 2095 2121 2122 2096
+ 305 623647.650 3370889.650 34.47408 1 8 341 352 353 342 2096 2107 2108 2097
+ 306 623710.150 3370889.650 34.46157 1 8 342 353 354 343 2097 2108 2109 2098
+ 307 623647.650 3370827.150 34.45868 1 8 352 367 368 353 2107 2122 2123 2108
+ 308 623710.150 3370827.150 34.44012 1 8 353 368 369 354 2108 2123 2124 2109
+ 309 623553.900 3370733.400 34.50222 1 8 366 408 409 367 2121 2163 2164 2122
+ 310 623647.650 3370764.650 34.45270 1 8 367 383 384 368 2122 2138 2139 2123
+ 311 623710.150 3370764.650 34.43436 1 8 368 384 385 369 2123 2139 2140 2124
+ 312 623647.650 3370702.150 34.45614 1 8 383 409 410 384 2138 2164 2165 2139
+ 313 623710.150 3370702.150 34.44431 1 8 384 410 411 385 2139 2165 2166 2140
+ 314 623772.650 3370889.650 34.44907 1 8 343 354 355 344 2098 2109 2110 2099
+ 315 623835.150 3370889.650 34.43657 1 8 344 355 357 345 2099 2110 2112 2100
+ 316 623772.650 3370827.150 34.42157 1 8 354 369 370 355 2109 2124 2125 2110
+ 317 623819.525 3370842.775 34.41566 1 8 355 361 362 356 2110 2116 2117 2111
+ 318 623850.775 3370842.775 34.40714 1 8 356 362 363 357 2111 2117 2118 2112
+ 319 623819.525 3370811.525 34.39964 1 8 361 370 371 362 2116 2125 2126 2117
+ 320 623850.775 3370811.525 34.38961 1 8 362 371 372 363 2117 2126 2127 2118
+ 321 623897.650 3370889.650 34.44452 1 8 345 357 359 346 2100 2112 2114 2101
+ 322 623960.150 3370889.650 34.47291 1 8 346 359 360 347 2101 2114 2115 2102
+ 323 623882.025 3370842.775 34.41108 1 8 357 363 364 358 2112 2118 2119 2113
+ 324 623913.275 3370842.775 34.42747 1 8 358 364 365 359 2113 2119 2120 2114
+ 325 623882.025 3370811.525 34.39352 1 8 363 372 373 364 2118 2127 2128 2119
+ 326 623913.275 3370811.525 34.41137 1 8 364 373 374 365 2119 2128 2129 2120
+ 327 623960.150 3370827.150 34.44510 1 8 359 374 375 360 2114 2129 2130 2115
+ 328 623772.650 3370764.650 34.41603 1 8 369 385 386 370 2124 2140 2141 2125
+ 329 623819.525 3370780.275 34.39696 1 8 370 378 379 371 2125 2133 2134 2126
+ 330 623850.775 3370780.275 34.38698 1 8 371 379 380 372 2126 2134 2135 2127
+ 331 623819.525 3370749.025 34.40761 1 8 378 386 387 379 2133 2141 2142 2134
+ 332 623850.775 3370749.025 34.39926 1 8 379 387 388 380 2134 2142 2143 2135
+ 333 623772.650 3370702.150 34.43247 1 8 385 411 412 386 2140 2166 2167 2141
+ 334 623835.150 3370702.150 34.42064 1 8 386 412 413 388 2141 2167 2168 2143
+ 335 623882.025 3370780.275 34.39094 1 8 372 380 381 373 2127 2135 2136 2128
+ 336 623913.275 3370780.275 34.40885 1 8 373 381 382 374 2128 2136 2137 2129
+ 337 623882.025 3370749.025 34.40335 1 8 380 388 389 381 2135 2143 2144 2136
+ 338 623913.275 3370749.025 34.41991 1 8 381 389 390 382 2136 2144 2145 2137
+ 339 623960.150 3370764.650 34.44022 1 8 374 390 391 375 2129 2145 2146 2130
+ 340 623897.650 3370702.150 34.42924 1 8 388 413 414 390 2143 2168 2169 2145
+ 341 623960.150 3370702.150 34.45827 1 8 390 414 415 391 2145 2169 2170 2146
+ 342 624053.900 3370858.400 34.50598 1 8 347 375 376 348 2102 2130 2131 2103
+ 343 624178.900 3370858.400 34.55310 1 8 348 376 377 349 2103 2131 2132 2104
+ 344 624053.900 3370733.400 34.49686 1 8 375 415 416 376 2130 2170 2171 2131
+ 345 624178.900 3370733.400 34.54455 1 8 376 416 417 377 2131 2171 2172 2132
+ 346 624366.400 3370795.900 34.59341 1 8 349 417 418 350 2104 2172 2173 2105
+ 347 624616.400 3370795.900 34.62151 1 8 350 418 419 351 2105 2173 2174 2106
+ 348 619866.400 3370545.900 37.30669 1 8 392 435 436 393 2147 2190 2191 2148
+ 349 620116.400 3370545.900 37.29517 1 8 393 436 437 394 2148 2191 2192 2149
+ 350 620366.400 3370545.900 37.28410 1 8 394 437 438 395 2149 2192 2193 2150
+ 351 620616.400 3370545.900 37.27773 1 8 395 438 439 396 2150 2193 2194 2151
+ 352 620866.400 3370545.900 -508.7450 1 8 396 439 440 397 2151 2194 2195 2152
+ 353 621116.400 3370545.900 -508.7450 1 8 397 440 441 398 2152 2195 2196 2153
+ 354 621366.400 3370545.900 -508.7450 1 8 398 441 442 399 2153 2196 2197 2154
+ 355 621616.400 3370545.900 -508.7450 1 8 399 442 443 400 2154 2197 2198 2155
+ 356 621866.400 3370545.900 35.20892 1 8 400 443 444 401 2155 2198 2199 2156
+ 357 622116.400 3370545.900 35.15315 1 8 401 444 445 402 2156 2199 2200 2157
+ 358 622366.400 3370545.900 35.07107 1 8 402 445 446 403 2157 2200 2201 2158
+ 359 622616.400 3370545.900 34.96656 1 8 403 446 447 404 2158 2201 2202 2159
+ 360 622866.400 3370545.900 34.83287 1 8 404 447 449 405 2159 2202 2204 2160
+ 361 623053.900 3370608.400 34.74126 1 8 405 423 424 406 2160 2178 2179 2161
+ 362 623178.900 3370608.400 34.67818 1 8 406 424 425 407 2161 2179 2180 2162
+ 363 623053.900 3370483.400 34.68747 1 8 423 449 451 424 2178 2204 2206 2179
+ 364 623178.900 3370483.400 34.62794 1 8 424 451 453 425 2179 2206 2208 2180
+ 365 623366.400 3370545.900 34.58778 1 8 407 453 455 408 2162 2208 2210 2163
+ 366 623553.900 3370608.400 34.49665 1 8 408 426 427 409 2163 2181 2182 2164
+ 367 623647.650 3370639.650 34.45959 1 8 409 420 421 410 2164 2175 2176 2165
+ 368 623710.150 3370639.650 34.45425 1 8 410 421 422 411 2165 2176 2177 2166
+ 369 623647.650 3370577.150 34.46304 1 8 420 427 428 421 2175 2182 2183 2176
+ 370 623710.150 3370577.150 34.46419 1 8 421 428 429 422 2176 2183 2184 2177
+ 371 623553.900 3370483.400 34.49076 1 8 426 455 456 427 2181 2210 2211 2182
+ 372 623647.650 3370514.650 34.46516 1 8 427 432 433 428 2182 2187 2188 2183
+ 373 623710.150 3370514.650 34.47072 1 8 428 433 434 429 2183 2188 2189 2184
+ 374 623647.650 3370452.150 34.46599 1 8 432 456 457 433 2187 2211 2212 2188
+ 375 623710.150 3370452.150 34.47385 1 8 433 457 458 434 2188 2212 2213 2189
+ 376 623803.900 3370608.400 34.45608 1 8 411 429 430 413 2166 2184 2185 2168
+ 377 623928.900 3370608.400 34.47490 1 8 413 430 431 415 2168 2185 2186 2170
+ 378 623803.900 3370483.400 34.48235 1 8 429 458 459 430 2184 2213 2214 2185
+ 379 623928.900 3370483.400 34.50341 1 8 430 459 460 431 2185 2214 2215 2186
+ 380 624116.400 3370545.900 34.54213 1 8 415 460 461 417 2170 2215 2216 2172
+ 381 624366.400 3370545.900 34.58924 1 8 417 461 462 418 2172 2216 2217 2173
+ 382 624616.400 3370545.900 34.61293 1 8 418 462 463 419 2173 2217 2218 2174
+ 383 619866.400 3370295.900 37.32085 1 8 435 510 511 436 2190 2265 2266 2191
+ 384 620116.400 3370295.900 37.31601 1 8 436 511 512 437 2191 2266 2267 2192
+ 385 620366.400 3370295.900 37.31047 1 8 437 512 513 438 2192 2267 2268 2193
+ 386 620616.400 3370295.900 37.30663 1 8 438 513 514 439 2193 2268 2269 2194
+ 387 620866.400 3370295.900 -508.7450 1 8 439 514 515 440 2194 2269 2270 2195
+ 388 621116.400 3370295.900 -508.7450 1 8 440 515 516 441 2195 2270 2271 2196
+ 389 621366.400 3370295.900 -508.7450 1 8 441 516 517 442 2196 2271 2272 2197
+ 390 621616.400 3370295.900 -508.7450 1 8 442 517 518 443 2197 2272 2273 2198
+ 391 621866.400 3370295.900 35.11934 1 8 443 518 519 444 2198 2273 2274 2199
+ 392 622116.400 3370295.900 35.07684 1 8 444 519 520 445 2199 2274 2275 2200
+ 393 622366.400 3370295.900 35.00481 1 8 445 520 521 446 2200 2275 2276 2201
+ 394 622616.400 3370295.900 34.90652 1 8 446 521 522 447 2201 2276 2277 2202
+ 395 622803.900 3370358.400 34.81362 1 8 447 479 480 448 2202 2234 2235 2203
+ 396 622928.900 3370358.400 34.72554 1 8 448 480 481 449 2203 2235 2236 2204
+ 397 622803.900 3370233.400 34.79430 1 8 479 522 523 480 2234 2277 2278 2235
+ 398 622928.900 3370233.400 34.70900 1 8 480 523 524 481 2235 2278 2279 2236
+ 399 623022.650 3370389.650 34.66269 1 8 449 464 465 450 2204 2219 2220 2205
+ 400 623085.150 3370389.650 34.61303 1 8 450 465 467 451 2205 2220 2222 2206
+ 401 623022.650 3370327.150 34.63206 1 8 464 481 482 465 2219 2236 2237 2220
+ 402 623069.525 3370342.775 34.59972 1 8 465 474 475 466 2220 2229 2230 2221
+ 403 623100.775 3370342.775 34.57306 1 8 466 475 476 467 2221 2230 2231 2222
+ 404 623069.525 3370311.525 34.58257 1 8 474 482 483 475 2229 2237 2238 2230
+ 405 623100.775 3370311.525 34.55468 1 8 475 483 484 476 2230 2238 2239 2231
+ 406 623147.650 3370389.650 34.58458 1 8 451 467 469 452 2206 2222 2224 2207
+ 407 623210.150 3370389.650 34.57734 1 8 452 469 470 453 2207 2224 2225 2208
+ 408 623132.025 3370342.775 34.55916 1 8 467 476 477 468 2222 2231 2232 2223
+ 409 623163.275 3370342.775 34.55803 1 8 468 477 478 469 2223 2232 2233 2224
+ 410 623132.025 3370311.525 34.54101 1 8 476 484 485 477 2231 2239 2240 2232
+ 411 623163.275 3370311.525 34.54154 1 8 477 485 486 478 2232 2240 2241 2233
+ 412 623210.150 3370327.150 34.54934 1 8 469 486 487 470 2224 2241 2242 2225
+ 413 623022.650 3370264.650 34.62484 1 8 481 500 501 482 2236 2255 2256 2237
+ 414 623069.525 3370280.275 34.57923 1 8 482 495 496 483 2237 2250 2251 2238
+ 415 623100.775 3370280.275 34.55151 1 8 483 496 497 484 2238 2251 2252 2239
+ 416 623069.525 3370249.025 34.58968 1 8 495 501 502 496 2250 2256 2257 2251
+ 417 623100.775 3370249.025 34.56355 1 8 496 502 503 497 2251 2257 2258 2252
+ 418 623022.650 3370202.150 34.64104 1 8 500 524 525 501 2255 2279 2280 2256
+ 419 623085.150 3370202.150 34.59348 1 8 501 525 526 503 2256 2280 2281 2258
+ 420 623132.025 3370280.275 34.53802 1 8 484 497 498 485 2239 2252 2253 2240
+ 421 623163.275 3370280.275 34.53875 1 8 485 498 499 486 2240 2253 2254 2241
+ 422 623132.025 3370249.025 34.55021 1 8 497 503 504 498 2252 2258 2259 2253
+ 423 623163.275 3370249.025 34.54967 1 8 498 504 505 499 2253 2259 2260 2254
+ 424 623210.150 3370264.650 34.54436 1 8 486 505 506 487 2241 2260 2261 2242
+ 425 623147.650 3370202.150 34.56728 1 8 503 526 527 505 2258 2281 2282 2260
+ 426 623210.150 3370202.150 34.56242 1 8 505 527 528 506 2260 2282 2283 2261
+ 427 623303.900 3370358.400 34.55747 1 8 453 487 488 454 2208 2242 2243 2209
+ 428 623428.900 3370358.400 34.53056 1 8 454 488 489 455 2209 2243 2244 2210
+ 429 623303.900 3370233.400 34.54990 1 8 487 528 529 488 2242 2283 2284 2243
+ 430 623428.900 3370233.400 34.52643 1 8 488 529 530 489 2243 2284 2285 2244
+ 431 623553.900 3370358.400 34.48455 1 8 455 489 490 456 2210 2244 2245 2211
+ 432 623647.650 3370389.650 34.46680 1 8 456 471 472 457 2211 2226 2227 2212
+ 433 623710.150 3370389.650 34.47697 1 8 457 472 473 458 2212 2227 2228 2213
+ 434 623647.650 3370327.150 34.46762 1 8 471 490 491 472 2226 2245 2246 2227
+ 435 623710.150 3370327.150 34.48010 1 8 472 491 492 473 2227 2246 2247 2228
+ 436 623553.900 3370233.400 34.48413 1 8 489 530 531 490 2244 2285 2286 2245
+ 437 623647.650 3370264.650 34.46904 1 8 490 507 508 491 2245 2262 2263 2246
+ 438 623710.150 3370264.650 34.48293 1 8 491 508 509 492 2246 2263 2264 2247
+ 439 623647.650 3370202.150 34.47107 1 8 507 531 532 508 2262 2286 2287 2263
+ 440 623710.150 3370202.150 34.48549 1 8 508 532 533 509 2263 2287 2288 2264
+ 441 623803.900 3370358.400 34.49552 1 8 458 492 493 459 2213 2247 2248 2214
+ 442 623928.900 3370358.400 34.51891 1 8 459 493 494 460 2214 2248 2249 2215
+ 443 623803.900 3370233.400 34.50544 1 8 492 533 534 493 2247 2288 2289 2248
+ 444 623928.900 3370233.400 34.53023 1 8 493 534 535 494 2248 2289 2290 2249
+ 445 624116.400 3370295.900 34.55943 1 8 460 535 536 461 2215 2290 2291 2216
+ 446 624366.400 3370295.900 34.59370 1 8 461 536 537 462 2216 2291 2292 2217
+ 447 624616.400 3370295.900 34.61219 1 8 462 537 538 463 2217 2292 2293 2218
+ 448 619866.400 3370045.900 37.31725 1 8 510 554 555 511 2265 2309 2310 2266
+ 449 620116.400 3370045.900 37.31358 1 8 511 555 556 512 2266 2310 2311 2267
+ 450 620366.400 3370045.900 37.30978 1 8 512 556 557 513 2267 2311 2312 2268
+ 451 620616.400 3370045.900 37.30669 1 8 513 557 558 514 2268 2312 2313 2269
+ 452 620866.400 3370045.900 -508.7450 1 8 514 558 559 515 2269 2313 2314 2270
+ 453 621116.400 3370045.900 -508.7450 1 8 515 559 560 516 2270 2314 2315 2271
+ 454 621366.400 3370045.900 -508.7450 1 8 516 560 561 517 2271 2315 2316 2272
+ 455 621616.400 3370045.900 -508.7450 1 8 517 561 562 518 2272 2316 2317 2273
+ 456 621866.400 3370045.900 35.05588 1 8 518 562 563 519 2273 2317 2318 2274
+ 457 622116.400 3370045.900 35.02087 1 8 519 563 564 520 2274 2318 2319 2275
+ 458 622366.400 3370045.900 34.95725 1 8 520 564 565 521 2275 2319 2320 2276
+ 459 622616.400 3370045.900 34.87271 1 8 521 565 566 522 2276 2320 2321 2277
+ 460 622866.400 3370045.900 34.76110 1 8 522 566 567 524 2277 2321 2322 2279
+ 461 623053.900 3370108.400 34.64627 1 8 524 542 543 526 2279 2297 2298 2281
+ 462 623178.900 3370108.400 34.59573 1 8 526 543 544 528 2281 2298 2299 2283
+ 463 623053.900 3369983.400 34.67223 1 8 542 567 568 543 2297 2322 2323 2298
+ 464 623178.900 3369983.400 34.62377 1 8 543 568 569 544 2298 2323 2324 2299
+ 465 623366.400 3370045.900 34.56387 1 8 528 569 570 530 2283 2324 2325 2285
+ 466 623553.900 3370108.400 34.48948 1 8 530 545 546 531 2285 2300 2301 2286
+ 467 623647.650 3370139.650 34.47309 1 8 531 539 540 532 2286 2294 2295 2287
+ 468 623710.150 3370139.650 34.48803 1 8 532 540 541 533 2287 2295 2296 2288
+ 469 623647.650 3370077.150 34.47511 1 8 539 546 547 540 2294 2301 2302 2295
+ 470 623710.150 3370077.150 34.49059 1 8 540 547 548 541 2295 2302 2303 2296
+ 471 623553.900 3369983.400 34.49419 1 8 545 570 571 546 2300 2325 2326 2301
+ 472 623647.650 3370014.650 34.47680 1 8 546 551 552 547 2301 2306 2307 2302
+ 473 623710.150 3370014.650 34.49261 1 8 547 552 553 548 2302 2307 2308 2303
+ 474 623647.650 3369952.150 34.47816 1 8 551 571 572 552 2306 2326 2327 2307
+ 475 623710.150 3369952.150 34.49413 1 8 552 572 573 553 2307 2327 2328 2308
+ 476 623803.900 3370108.400 34.51212 1 8 533 548 549 534 2288 2303 2304 2289
+ 477 623928.900 3370108.400 34.53738 1 8 534 549 550 535 2289 2304 2305 2290
+ 478 623803.900 3369983.400 34.51721 1 8 548 573 574 549 2303 2328 2329 2304
+ 479 623928.900 3369983.400 34.54276 1 8 549 574 575 550 2304 2329 2330 2305
+ 480 624116.400 3370045.900 34.57018 1 8 535 575 576 536 2290 2330 2331 2291
+ 481 624366.400 3370045.900 34.59925 1 8 536 576 577 537 2291 2331 2332 2292
+ 482 624616.400 3370045.900 34.61446 1 8 537 577 578 538 2292 2332 2333 2293
+ 483 619866.400 3369795.900 37.29255 1 8 554 591 592 555 2309 2346 2347 2310
+ 484 620116.400 3369795.900 37.28961 1 8 555 592 593 556 2310 2347 2348 2311
+ 485 620366.400 3369795.900 37.28399 1 8 556 593 594 557 2311 2348 2349 2312
+ 486 620616.400 3369795.900 37.28085 1 8 557 594 595 558 2312 2349 2350 2313
+ 487 620866.400 3369795.900 -508.7450 1 8 558 595 596 559 2313 2350 2351 2314
+ 488 621116.400 3369795.900 -508.7450 1 8 559 596 597 560 2314 2351 2352 2315
+ 489 621366.400 3369795.900 -508.7450 1 8 560 597 598 561 2315 2352 2353 2316
+ 490 621616.400 3369795.900 -508.7450 1 8 561 598 599 562 2316 2353 2354 2317
+ 491 621866.400 3369795.900 35.01144 1 8 562 599 600 563 2317 2354 2355 2318
+ 492 622116.400 3369795.900 34.97985 1 8 563 600 601 564 2318 2355 2356 2319
+ 493 622366.400 3369795.900 34.92487 1 8 564 601 602 565 2319 2356 2357 2320
+ 494 622616.400 3369795.900 34.85419 1 8 565 602 603 566 2320 2357 2358 2321
+ 495 622866.400 3369795.900 34.76473 1 8 566 603 604 567 2321 2358 2359 2322
+ 496 623116.400 3369795.900 34.66785 1 8 567 604 605 569 2322 2359 2360 2324
+ 497 623366.400 3369795.900 34.58109 1 8 569 605 606 570 2324 2360 2361 2325
+ 498 623553.900 3369858.400 34.49826 1 8 570 582 583 571 2325 2337 2338 2326
+ 499 623647.650 3369889.650 34.47951 1 8 571 579 580 572 2326 2334 2335 2327
+ 500 623710.150 3369889.650 34.49564 1 8 572 580 581 573 2327 2335 2336 2328
+ 501 623647.650 3369827.150 34.48087 1 8 579 583 584 580 2334 2338 2339 2335
+ 502 623710.150 3369827.150 34.49715 1 8 580 584 585 581 2335 2339 2340 2336
+ 503 623553.900 3369733.400 34.50084 1 8 582 606 607 583 2337 2361 2362 2338
+ 504 623647.650 3369764.650 34.48170 1 8 583 588 589 584 2338 2343 2344 2339
+ 505 623710.150 3369764.650 34.49811 1 8 584 589 590 585 2339 2344 2345 2340
+ 506 623647.650 3369702.150 34.48199 1 8 588 607 608 589 2343 2362 2363 2344
+ 507 623710.150 3369702.150 34.49850 1 8 589 608 609 590 2344 2363 2364 2345
+ 508 623803.900 3369858.400 34.52071 1 8 573 585 586 574 2328 2340 2341 2329
+ 509 623928.900 3369858.400 34.54640 1 8 574 586 587 575 2329 2341 2342 2330
+ 510 623803.900 3369733.400 34.52299 1 8 585 609 610 586 2340 2364 2365 2341
+ 511 623928.900 3369733.400 34.54881 1 8 586 610 611 587 2341 2365 2366 2342
+ 512 624116.400 3369795.900 34.57640 1 8 575 611 612 576 2330 2366 2367 2331
+ 513 624366.400 3369795.900 34.60274 1 8 576 612 613 577 2331 2367 2368 2332
+ 514 624616.400 3369795.900 34.61630 1 8 577 613 614 578 2332 2368 2369 2333
+ 515 619866.400 3369545.900 37.24415 1 8 591 627 628 592 2346 2382 2383 2347
+ 516 620116.400 3369545.900 37.24264 1 8 592 628 629 593 2347 2383 2384 2348
+ 517 620366.400 3369545.900 37.23719 1 8 593 629 630 594 2348 2384 2385 2349
+ 518 620616.400 3369545.900 37.23447 1 8 594 630 631 595 2349 2385 2386 2350
+ 519 620866.400 3369545.900 -508.7450 1 8 595 631 632 596 2350 2386 2387 2351
+ 520 621116.400 3369545.900 -508.7450 1 8 596 632 633 597 2351 2387 2388 2352
+ 521 621366.400 3369545.900 -508.7450 1 8 597 633 634 598 2352 2388 2389 2353
+ 522 621616.400 3369545.900 -508.7450 1 8 598 634 635 599 2353 2389 2390 2354
+ 523 621866.400 3369545.900 34.97774 1 8 599 635 636 600 2354 2390 2391 2355
+ 524 622116.400 3369545.900 34.94978 1 8 600 636 637 601 2355 2391 2392 2356
+ 525 622366.400 3369545.900 34.90063 1 8 601 637 638 602 2356 2392 2393 2357
+ 526 622616.400 3369545.900 34.83971 1 8 602 638 639 603 2357 2393 2394 2358
+ 527 622866.400 3369545.900 34.76234 1 8 603 639 640 604 2358 2394 2395 2359
+ 528 623116.400 3369545.900 34.67632 1 8 604 640 641 605 2359 2395 2396 2360
+ 529 623366.400 3369545.900 34.58681 1 8 605 641 642 606 2360 2396 2397 2361
+ 530 623553.900 3369608.400 34.50192 1 8 606 618 619 607 2361 2373 2374 2362
+ 531 623647.650 3369639.650 34.48228 1 8 607 615 616 608 2362 2370 2371 2363
+ 532 623710.150 3369639.650 34.49889 1 8 608 616 617 609 2363 2371 2372 2364
+ 533 623647.650 3369577.150 34.48258 1 8 615 619 620 616 2370 2374 2375 2371
+ 534 623710.150 3369577.150 34.49928 1 8 616 620 621 617 2371 2375 2376 2372
+ 535 623553.900 3369483.400 34.50164 1 8 618 642 643 619 2373 2397 2398 2374
+ 536 623647.650 3369514.650 34.48228 1 8 619 624 625 620 2374 2379 2380 2375
+ 537 623710.150 3369514.650 34.49905 1 8 620 625 626 621 2375 2380 2381 2376
+ 538 623647.650 3369452.150 34.48138 1 8 624 643 644 625 2379 2398 2399 2380
+ 539 623710.150 3369452.150 34.49820 1 8 625 644 645 626 2380 2399 2400 2381
+ 540 623803.900 3369608.400 34.52407 1 8 609 621 622 610 2364 2376 2377 2365
+ 541 623928.900 3369608.400 34.54998 1 8 610 622 623 611 2365 2377 2378 2366
+ 542 623803.900 3369483.400 34.52383 1 8 621 645 646 622 2376 2400 2401 2377
+ 543 623928.900 3369483.400 34.54987 1 8 622 646 647 623 2377 2401 2402 2378
+ 544 624116.400 3369545.900 34.57816 1 8 611 647 648 612 2366 2402 2403 2367
+ 545 624366.400 3369545.900 34.60323 1 8 612 648 649 613 2367 2403 2404 2368
+ 546 624616.400 3369545.900 34.61642 1 8 613 649 650 614 2368 2404 2405 2369
+ 547 619866.400 3369295.900 37.17921 1 8 627 663 664 628 2382 2418 2419 2383
+ 548 620116.400 3369295.900 37.17571 1 8 628 664 665 629 2383 2419 2420 2384
+ 549 620366.400 3369295.900 37.17019 1 8 629 665 666 630 2384 2420 2421 2385
+ 550 620616.400 3369295.900 37.16897 1 8 630 666 667 631 2385 2421 2422 2386
+ 551 620866.400 3369295.900 -508.7450 1 8 631 667 668 632 2386 2422 2423 2387
+ 552 621116.400 3369295.900 -508.7450 1 8 632 668 669 633 2387 2423 2424 2388
+ 553 621366.400 3369295.900 -508.7450 1 8 633 669 670 634 2388 2424 2425 2389
+ 554 621616.400 3369295.900 -508.7450 1 8 634 670 671 635 2389 2425 2426 2390
+ 555 621866.400 3369295.900 34.95277 1 8 635 671 672 636 2390 2426 2427 2391
+ 556 622116.400 3369295.900 34.92560 1 8 636 672 673 637 2391 2427 2428 2392
+ 557 622366.400 3369295.900 34.88235 1 8 637 673 674 638 2392 2428 2429 2393
+ 558 622616.400 3369295.900 34.82581 1 8 638 674 675 639 2393 2429 2430 2394
+ 559 622866.400 3369295.900 34.75466 1 8 639 675 676 640 2394 2430 2431 2395
+ 560 623116.400 3369295.900 34.67335 1 8 640 676 677 641 2395 2431 2432 2396
+ 561 623366.400 3369295.900 34.58472 1 8 641 677 678 642 2396 2432 2433 2397
+ 562 623553.900 3369358.400 34.49999 1 8 642 654 655 643 2397 2409 2410 2398
+ 563 623647.650 3369389.650 34.48048 1 8 643 651 652 644 2398 2406 2407 2399
+ 564 623710.150 3369389.650 34.49735 1 8 644 652 653 645 2399 2407 2408 2400
+ 565 623647.650 3369327.150 34.47958 1 8 651 655 656 652 2406 2410 2411 2407
+ 566 623710.150 3369327.150 34.49651 1 8 652 656 657 653 2407 2411 2412 2408
+ 567 623553.900 3369233.400 34.49731 1 8 654 678 679 655 2409 2433 2434 2410
+ 568 623647.650 3369264.650 34.47826 1 8 655 660 661 656 2410 2415 2416 2411
+ 569 623710.150 3369264.650 34.49519 1 8 656 661 662 657 2411 2416 2417 2412
+ 570 623647.650 3369202.150 34.47651 1 8 660 679 680 661 2415 2434 2435 2416
+ 571 623710.150 3369202.150 34.49341 1 8 661 680 681 662 2416 2435 2436 2417
+ 572 623803.900 3369358.400 34.52228 1 8 645 657 658 646 2400 2412 2413 2401
+ 573 623928.900 3369358.400 34.54849 1 8 646 658 659 647 2401 2413 2414 2402
+ 574 623803.900 3369233.400 34.51967 1 8 657 681 682 658 2412 2436 2437 2413
+ 575 623928.900 3369233.400 34.54604 1 8 658 682 683 659 2413 2437 2438 2414
+ 576 624116.400 3369295.900 34.57583 1 8 647 683 684 648 2402 2438 2439 2403
+ 577 624366.400 3369295.900 34.60117 1 8 648 684 685 649 2403 2439 2440 2404
+ 578 624616.400 3369295.900 34.61420 1 8 649 685 686 650 2404 2440 2441 2405
+ 579 619866.400 3369045.900 37.08755 1 8 663 699 700 664 2418 2454 2455 2419
+ 580 620116.400 3369045.900 37.07943 1 8 664 700 701 665 2419 2455 2456 2420
+ 581 620366.400 3369045.900 37.08012 1 8 665 701 702 666 2420 2456 2457 2421
+ 582 620616.400 3369045.900 37.08304 1 8 666 702 703 667 2421 2457 2458 2422
+ 583 620866.400 3369045.900 -508.7450 1 8 667 703 704 668 2422 2458 2459 2423
+ 584 621116.400 3369045.900 -508.7450 1 8 668 704 705 669 2423 2459 2460 2424
+ 585 621366.400 3369045.900 -508.7450 1 8 669 705 706 670 2424 2460 2461 2425
+ 586 621616.400 3369045.900 -508.7450 1 8 670 706 707 671 2425 2461 2462 2426
+ 587 621866.400 3369045.900 34.93427 1 8 671 707 708 672 2426 2462 2463 2427
+ 588 622116.400 3369045.900 34.90973 1 8 672 708 709 673 2427 2463 2464 2428
+ 589 622366.400 3369045.900 34.86580 1 8 673 709 710 674 2428 2464 2465 2429
+ 590 622616.400 3369045.900 34.81127 1 8 674 710 711 675 2429 2465 2466 2430
+ 591 622866.400 3369045.900 34.74264 1 8 675 711 712 676 2430 2466 2467 2431
+ 592 623116.400 3369045.900 34.66308 1 8 676 712 713 677 2431 2467 2468 2432
+ 593 623366.400 3369045.900 34.57566 1 8 677 713 714 678 2432 2468 2469 2433
+ 594 623553.900 3369108.400 34.49359 1 8 678 690 691 679 2433 2445 2446 2434
+ 595 623647.650 3369139.650 34.47477 1 8 679 687 688 680 2434 2442 2443 2435
+ 596 623710.150 3369139.650 34.49163 1 8 680 688 689 681 2435 2443 2444 2436
+ 597 623647.650 3369077.150 34.47302 1 8 687 691 692 688 2442 2446 2447 2443
+ 598 623710.150 3369077.150 34.48985 1 8 688 692 693 689 2443 2447 2448 2444
+ 599 623553.900 3368983.400 34.48858 1 8 690 714 715 691 2445 2469 2470 2446
+ 600 623647.650 3369014.650 34.47073 1 8 691 696 697 692 2446 2451 2452 2447
+ 601 623710.150 3369014.650 34.48754 1 8 692 697 698 693 2447 2452 2453 2448
+ 602 623647.650 3368952.150 34.46789 1 8 696 715 716 697 2451 2470 2471 2452
+ 603 623710.150 3368952.150 34.48472 1 8 697 716 717 698 2452 2471 2472 2453
+ 604 623803.900 3369108.400 34.51600 1 8 681 693 694 682 2436 2448 2449 2437
+ 605 623928.900 3369108.400 34.54250 1 8 682 694 695 683 2437 2449 2450 2438
+ 606 623803.900 3368983.400 34.51136 1 8 693 717 718 694 2448 2472 2473 2449
+ 607 623928.900 3368983.400 34.53807 1 8 694 718 719 695 2449 2473 2474 2450
+ 608 624116.400 3369045.900 34.57004 1 8 683 719 720 684 2438 2474 2475 2439
+ 609 624366.400 3369045.900 34.59606 1 8 684 720 721 685 2439 2475 2476 2440
+ 610 624616.400 3369045.900 34.60929 1 8 685 721 722 686 2440 2476 2477 2441
+ 611 619866.400 3368795.900 36.98653 1 8 699 735 736 700 2454 2490 2491 2455
+ 612 620116.400 3368795.900 36.97974 1 8 700 736 737 701 2455 2491 2492 2456
+ 613 620366.400 3368795.900 36.97329 1 8 701 737 738 702 2456 2492 2493 2457
+ 614 620616.400 3368795.900 36.97570 1 8 702 738 739 703 2457 2493 2494 2458
+ 615 620866.400 3368795.900 -508.7450 1 8 703 739 740 704 2458 2494 2495 2459
+ 616 621116.400 3368795.900 -508.7450 1 8 704 740 741 705 2459 2495 2496 2460
+ 617 621366.400 3368795.900 -508.7450 1 8 705 741 742 706 2460 2496 2497 2461
+ 618 621616.400 3368795.900 -508.7450 1 8 706 742 743 707 2461 2497 2498 2462
+ 619 621866.400 3368795.900 34.92327 1 8 707 743 744 708 2462 2498 2499 2463
+ 620 622116.400 3368795.900 34.89658 1 8 708 744 745 709 2463 2499 2500 2464
+ 621 622366.400 3368795.900 34.85186 1 8 709 745 746 710 2464 2500 2501 2465
+ 622 622616.400 3368795.900 34.79669 1 8 710 746 747 711 2465 2501 2502 2466
+ 623 622866.400 3368795.900 34.72673 1 8 711 747 748 712 2466 2502 2503 2467
+ 624 623116.400 3368795.900 34.64648 1 8 712 748 749 713 2467 2503 2504 2468
+ 625 623366.400 3368795.900 34.55952 1 8 713 749 750 714 2468 2504 2505 2469
+ 626 623553.900 3368858.400 34.48228 1 8 714 726 727 715 2469 2481 2482 2470
+ 627 623647.650 3368889.650 34.46504 1 8 715 723 724 716 2470 2478 2479 2471
+ 628 623710.150 3368889.650 34.48189 1 8 716 724 725 717 2471 2479 2480 2472
+ 629 623647.650 3368827.150 34.46220 1 8 723 727 728 724 2478 2482 2483 2479
+ 630 623710.150 3368827.150 34.47906 1 8 724 728 729 725 2479 2483 2484 2480
+ 631 623553.900 3368733.400 34.47407 1 8 726 750 751 727 2481 2505 2506 2482
+ 632 623647.650 3368764.650 34.45865 1 8 727 732 733 728 2482 2487 2488 2483
+ 633 623710.150 3368764.650 34.47562 1 8 728 733 734 729 2483 2488 2489 2484
+ 634 623647.650 3368702.150 34.45440 1 8 732 751 752 733 2487 2506 2507 2488
+ 635 623710.150 3368702.150 34.47155 1 8 733 752 753 734 2488 2507 2508 2489
+ 636 623803.900 3368858.400 34.50577 1 8 717 729 730 718 2472 2484 2485 2473
+ 637 623928.900 3368858.400 34.53276 1 8 718 730 731 719 2473 2485 2486 2474
+ 638 623803.900 3368733.400 34.49917 1 8 729 753 754 730 2484 2508 2509 2485
+ 639 623928.900 3368733.400 34.52668 1 8 730 754 755 731 2485 2509 2510 2486
+ 640 624116.400 3368795.900 34.56087 1 8 719 755 756 720 2474 2510 2511 2475
+ 641 624366.400 3368795.900 34.58823 1 8 720 756 757 721 2475 2511 2512 2476
+ 642 624616.400 3368795.900 34.60220 1 8 721 757 758 722 2476 2512 2513 2477
+ 643 619866.400 3368545.900 36.86551 1 8 735 771 772 736 2490 2526 2527 2491
+ 644 620116.400 3368545.900 36.85978 1 8 736 772 773 737 2491 2527 2528 2492
+ 645 620366.400 3368545.900 36.85011 1 8 737 773 774 738 2492 2528 2529 2493
+ 646 620616.400 3368545.900 36.85116 1 8 738 774 775 739 2493 2529 2530 2494
+ 647 620866.400 3368545.900 -508.7450 1 8 739 775 776 740 2494 2530 2531 2495
+ 648 621116.400 3368545.900 -508.7450 1 8 740 776 777 741 2495 2531 2532 2496
+ 649 621366.400 3368545.900 -508.7450 1 8 741 777 778 742 2496 2532 2533 2497
+ 650 621616.400 3368545.900 -508.7450 1 8 742 778 779 743 2497 2533 2534 2498
+ 651 621866.400 3368545.900 34.91709 1 8 743 779 780 744 2498 2534 2535 2499
+ 652 622116.400 3368545.900 34.88847 1 8 744 780 781 745 2499 2535 2536 2500
+ 653 622366.400 3368545.900 34.84092 1 8 745 781 782 746 2500 2536 2537 2501
+ 654 622616.400 3368545.900 34.78184 1 8 746 782 783 747 2501 2537 2538 2502
+ 655 622866.400 3368545.900 34.70780 1 8 747 783 784 748 2502 2538 2539 2503
+ 656 623116.400 3368545.900 34.62156 1 8 748 784 785 749 2503 2539 2540 2504
+ 657 623366.400 3368545.900 34.53056 1 8 749 785 787 750 2504 2540 2542 2505
+ 658 623553.900 3368608.400 34.46394 1 8 750 762 763 751 2505 2517 2518 2506
+ 659 623647.650 3368639.650 34.45015 1 8 751 759 760 752 2506 2514 2515 2507
+ 660 623710.150 3368639.650 34.46748 1 8 752 760 761 753 2507 2515 2516 2508
+ 661 623647.650 3368577.150 34.44590 1 8 759 763 764 760 2514 2518 2519 2515
+ 662 623710.150 3368577.150 34.46341 1 8 760 764 765 761 2515 2519 2520 2516
+ 663 623553.900 3368483.400 34.45054 1 8 762 787 788 763 2517 2542 2543 2518
+ 664 623647.650 3368514.650 34.44065 1 8 763 768 769 764 2518 2523 2524 2519
+ 665 623710.150 3368514.650 34.45851 1 8 764 769 770 765 2519 2524 2525 2520
+ 666 623647.650 3368452.150 34.43440 1 8 768 788 789 769 2523 2543 2544 2524
+ 667 623710.150 3368452.150 34.45278 1 8 769 789 790 770 2524 2544 2545 2525
+ 668 623803.900 3368608.400 34.49157 1 8 753 765 766 754 2508 2520 2521 2509
+ 669 623928.900 3368608.400 34.51983 1 8 754 766 767 755 2509 2521 2522 2510
+ 670 623803.900 3368483.400 34.48282 1 8 765 790 791 766 2520 2545 2546 2521
+ 671 623928.900 3368483.400 34.51232 1 8 766 791 792 767 2521 2546 2547 2522
+ 672 624116.400 3368545.900 34.54956 1 8 755 792 793 756 2510 2547 2548 2511
+ 673 624366.400 3368545.900 34.57880 1 8 756 793 794 757 2511 2548 2549 2512
+ 674 624616.400 3368545.900 34.59417 1 8 757 794 795 758 2512 2549 2550 2513
+ 675 619866.400 3368295.900 36.72707 1 8 771 810 811 772 2526 2565 2566 2527
+ 676 620116.400 3368295.900 36.71624 1 8 772 811 812 773 2527 2566 2567 2528
+ 677 620366.400 3368295.900 36.70483 1 8 773 812 813 774 2528 2567 2568 2529
+ 678 620616.400 3368295.900 36.70127 1 8 774 813 814 775 2529 2568 2569 2530
+ 679 620866.400 3368295.900 -508.7450 1 8 775 814 815 776 2530 2569 2570 2531
+ 680 621116.400 3368295.900 -508.7450 1 8 776 815 816 777 2531 2570 2571 2532
+ 681 621366.400 3368295.900 -508.7450 1 8 777 816 817 778 2532 2571 2572 2533
+ 682 621616.400 3368295.900 -508.7450 1 8 778 817 818 779 2533 2572 2573 2534
+ 683 621866.400 3368295.900 34.92017 1 8 779 818 819 780 2534 2573 2574 2535
+ 684 622116.400 3368295.900 34.88599 1 8 780 819 820 781 2535 2574 2575 2536
+ 685 622366.400 3368295.900 34.83348 1 8 781 820 821 782 2536 2575 2576 2537
+ 686 622616.400 3368295.900 34.76878 1 8 782 821 822 783 2537 2576 2577 2538
+ 687 622866.400 3368295.900 34.68613 1 8 783 822 823 784 2538 2577 2578 2539
+ 688 623116.400 3368295.900 34.58576 1 8 784 823 825 785 2539 2578 2580 2540
+ 689 623303.900 3368358.400 34.51551 1 8 785 799 800 786 2540 2554 2555 2541
+ 690 623428.900 3368358.400 34.47070 1 8 786 800 801 787 2541 2555 2556 2542
+ 691 623303.900 3368233.400 34.47614 1 8 799 825 827 800 2554 2580 2582 2555
+ 692 623428.900 3368233.400 34.43253 1 8 800 827 829 801 2555 2582 2584 2556
+ 693 623553.900 3368358.400 34.43387 1 8 787 801 802 788 2542 2556 2557 2543
+ 694 623647.650 3368389.650 34.42816 1 8 788 796 797 789 2543 2551 2552 2544
+ 695 623710.150 3368389.650 34.44705 1 8 789 797 798 790 2544 2552 2553 2545
+ 696 623647.650 3368327.150 34.42191 1 8 796 802 803 797 2551 2557 2558 2552
+ 697 623710.150 3368327.150 34.44133 1 8 797 803 804 798 2552 2558 2559 2553
+ 698 623553.900 3368233.400 34.41152 1 8 801 829 830 802 2556 2584 2585 2557
+ 699 623647.650 3368264.650 34.41507 1 8 802 807 808 803 2557 2562 2563 2558
+ 700 623710.150 3368264.650 34.43526 1 8 803 808 809 804 2558 2563 2564 2559
+ 701 623647.650 3368202.150 34.40765 1 8 807 830 831 808 2562 2585 2586 2563
+ 702 623710.150 3368202.150 34.42884 1 8 808 831 832 809 2563 2586 2587 2564
+ 703 623803.900 3368358.400 34.47293 1 8 790 804 805 791 2545 2559 2560 2546
+ 704 623928.900 3368358.400 34.50414 1 8 791 805 806 792 2546 2560 2561 2547
+ 705 623803.900 3368233.400 34.46308 1 8 804 832 833 805 2559 2587 2588 2560
+ 706 623928.900 3368233.400 34.49645 1 8 805 833 834 806 2560 2588 2589 2561
+ 707 624116.400 3368295.900 34.53719 1 8 792 834 835 793 2547 2589 2590 2548
+ 708 624366.400 3368295.900 34.56950 1 8 793 835 836 794 2548 2590 2591 2549
+ 709 624616.400 3368295.900 34.58525 1 8 794 836 837 795 2549 2591 2592 2550
+ 710 619866.400 3368045.900 36.57045 1 8 810 882 883 811 2565 2637 2638 2566
+ 711 620116.400 3368045.900 36.56081 1 8 811 883 884 812 2566 2638 2639 2567
+ 712 620366.400 3368045.900 36.54777 1 8 812 884 885 813 2567 2639 2640 2568
+ 713 620616.400 3368045.900 36.52960 1 8 813 885 886 814 2568 2640 2641 2569
+ 714 620866.400 3368045.900 -508.7450 1 8 814 886 887 815 2569 2641 2642 2570
+ 715 621116.400 3368045.900 -508.7450 1 8 815 887 888 816 2570 2642 2643 2571
+ 716 621366.400 3368045.900 -508.7450 1 8 816 888 889 817 2571 2643 2644 2572
+ 717 621616.400 3368045.900 -508.7450 1 8 817 889 890 818 2572 2644 2645 2573
+ 718 621866.400 3368045.900 34.93615 1 8 818 890 891 819 2573 2645 2646 2574
+ 719 622116.400 3368045.900 34.89127 1 8 819 891 892 820 2574 2646 2647 2575
+ 720 622366.400 3368045.900 34.83070 1 8 820 892 893 821 2575 2647 2648 2576
+ 721 622616.400 3368045.900 34.75871 1 8 821 893 894 822 2576 2648 2649 2577
+ 722 622866.400 3368045.900 34.66740 1 8 822 894 895 823 2577 2649 2650 2578
+ 723 623053.900 3368108.400 34.58412 1 8 823 853 854 824 2578 2608 2609 2579
+ 724 623178.900 3368108.400 34.51073 1 8 824 854 855 825 2579 2609 2610 2580
+ 725 623053.900 3367983.400 34.57917 1 8 853 895 896 854 2608 2650 2651 2609
+ 726 623178.900 3367983.400 34.50576 1 8 854 896 897 855 2609 2651 2652 2610
+ 727 623272.650 3368139.650 34.45665 1 8 825 838 839 826 2580 2593 2594 2581
+ 728 623335.150 3368139.650 34.41532 1 8 826 839 841 827 2581 2594 2596 2582
+ 729 623272.650 3368077.150 34.43262 1 8 838 855 856 839 2593 2610 2611 2594
+ 730 623319.525 3368092.775 34.40455 1 8 839 848 849 840 2594 2603 2604 2595
+ 731 623350.775 3368092.775 34.38183 1 8 840 849 850 841 2595 2604 2605 2596
+ 732 623319.525 3368061.525 34.39047 1 8 848 856 857 849 2603 2611 2612 2604
+ 733 623350.775 3368061.525 34.36639 1 8 849 857 858 850 2604 2612 2613 2605
+ 734 623397.650 3368139.650 34.39397 1 8 827 841 843 828 2582 2596 2598 2583
+ 735 623460.150 3368139.650 34.39258 1 8 828 843 844 829 2583 2598 2599 2584
+ 736 623382.025 3368092.775 34.37126 1 8 841 850 851 842 2596 2605 2606 2597
+ 737 623413.275 3368092.775 34.37285 1 8 842 851 852 843 2597 2606 2607 2598
+ 738 623382.025 3368061.525 34.35590 1 8 850 858 859 851 2605 2613 2614 2606
+ 739 623413.275 3368061.525 34.35900 1 8 851 859 860 852 2606 2614 2615 2607
+ 740 623460.150 3368077.150 34.36945 1 8 843 860 861 844 2598 2615 2616 2599
+ 741 623272.650 3368014.650 34.43018 1 8 855 872 873 856 2610 2627 2628 2611
+ 742 623319.525 3368030.275 34.38927 1 8 856 867 868 857 2611 2622 2623 2612
+ 743 623350.775 3368030.275 34.36518 1 8 857 868 869 858 2612 2623 2624 2613
+ 744 623319.525 3367999.025 34.40092 1 8 867 873 874 868 2622 2628 2629 2623
+ 745 623350.775 3367999.025 34.37822 1 8 868 874 875 869 2623 2629 2630 2624
+ 746 623272.650 3367952.150 34.44932 1 8 872 897 898 873 2627 2652 2653 2628
+ 747 623335.150 3367952.150 34.40808 1 8 873 898 899 875 2628 2653 2654 2630
+ 748 623382.025 3368030.275 34.35471 1 8 858 869 870 859 2613 2624 2625 2614
+ 749 623413.275 3368030.275 34.35785 1 8 859 870 871 860 2614 2625 2626 2615
+ 750 623382.025 3367999.025 34.36771 1 8 869 875 876 870 2624 2630 2631 2625
+ 751 623413.275 3367999.025 34.36940 1 8 870 876 877 871 2625 2631 2632 2626
+ 752 623460.150 3368014.650 34.36724 1 8 860 877 878 861 2615 2632 2633 2616
+ 753 623397.650 3367952.150 34.38696 1 8 875 899 900 877 2630 2654 2655 2632
+ 754 623460.150 3367952.150 34.38596 1 8 877 900 901 878 2632 2655 2656 2633
+ 755 623553.900 3368108.400 34.38350 1 8 829 861 862 830 2584 2616 2617 2585
+ 756 623647.650 3368139.650 34.40022 1 8 830 845 846 831 2585 2600 2601 2586
+ 757 623710.150 3368139.650 34.42243 1 8 831 846 847 832 2586 2601 2602 2587
+ 758 623647.650 3368077.150 34.39280 1 8 845 862 863 846 2600 2617 2618 2601
+ 759 623710.150 3368077.150 34.41602 1 8 846 863 864 847 2601 2618 2619 2602
+ 760 623553.900 3367983.400 34.37947 1 8 861 901 902 862 2616 2656 2657 2617
+ 761 623647.650 3368014.650 34.39091 1 8 862 879 880 863 2617 2634 2635 2618
+ 762 623710.150 3368014.650 34.41412 1 8 863 880 881 864 2618 2635 2636 2619
+ 763 623647.650 3367952.150 34.39455 1 8 879 902 903 880 2634 2657 2658 2635
+ 764 623710.150 3367952.150 34.41675 1 8 880 903 904 881 2635 2658 2659 2636
+ 765 623803.900 3368108.400 34.45329 1 8 832 864 865 833 2587 2619 2620 2588
+ 766 623928.900 3368108.400 34.48927 1 8 833 865 866 834 2588 2620 2621 2589
+ 767 623803.900 3367983.400 34.44949 1 8 864 904 905 865 2619 2659 2660 2620
+ 768 623928.900 3367983.400 34.48542 1 8 865 905 906 866 2620 2660 2661 2621
+ 769 624116.400 3368045.900 34.52643 1 8 834 906 907 835 2589 2661 2662 2590
+ 770 624366.400 3368045.900 34.56075 1 8 835 907 908 836 2590 2662 2663 2591
+ 771 624616.400 3368045.900 34.57699 1 8 836 908 909 837 2591 2663 2664 2592
+ 772 619866.400 3367795.900 36.41625 1 8 882 924 925 883 2637 2679 2680 2638
+ 773 620116.400 3367795.900 36.39238 1 8 883 925 926 884 2638 2680 2681 2639
+ 774 620366.400 3367795.900 36.35525 1 8 884 926 927 885 2639 2681 2682 2640
+ 775 620616.400 3367795.900 36.32713 1 8 885 927 928 886 2640 2682 2683 2641
+ 776 620866.400 3367795.900 -508.7450 1 8 886 928 929 887 2641 2683 2684 2642
+ 777 621116.400 3367795.900 -508.7450 1 8 887 929 930 888 2642 2684 2685 2643
+ 778 621366.400 3367795.900 35.12371 1 8 888 930 931 889 2643 2685 2686 2644
+ 779 621616.400 3367795.900 35.07079 1 8 889 931 932 890 2644 2686 2687 2645
+ 780 621866.400 3367795.900 34.97421 1 8 890 932 933 891 2645 2687 2688 2646
+ 781 622116.400 3367795.900 34.90440 1 8 891 933 934 892 2646 2688 2689 2647
+ 782 622366.400 3367795.900 34.82882 1 8 892 934 935 893 2647 2689 2690 2648
+ 783 622616.400 3367795.900 34.75456 1 8 893 935 936 894 2648 2690 2691 2649
+ 784 622866.400 3367795.900 34.66737 1 8 894 936 937 895 2649 2691 2692 2650
+ 785 623116.400 3367795.900 34.56562 1 8 895 937 938 897 2650 2692 2693 2652
+ 786 623303.900 3367858.400 34.46157 1 8 897 913 914 899 2652 2668 2669 2654
+ 787 623428.900 3367858.400 34.41891 1 8 899 914 915 901 2654 2669 2670 2656
+ 788 623303.900 3367733.400 34.49145 1 8 913 938 939 914 2668 2693 2694 2669
+ 789 623428.900 3367733.400 34.44817 1 8 914 939 940 915 2669 2694 2695 2670
+ 790 623553.900 3367858.400 34.39943 1 8 901 915 916 902 2656 2670 2671 2657
+ 791 623647.650 3367889.650 34.39820 1 8 902 910 911 903 2657 2665 2666 2658
+ 792 623710.150 3367889.650 34.41938 1 8 903 911 912 904 2658 2666 2667 2659
+ 793 623647.650 3367827.150 34.40184 1 8 910 916 917 911 2665 2671 2672 2666
+ 794 623710.150 3367827.150 34.42200 1 8 911 917 918 912 2666 2672 2673 2667
+ 795 623553.900 3367733.400 34.41365 1 8 915 940 941 916 2670 2695 2696 2671
+ 796 623647.650 3367764.650 34.40482 1 8 916 921 922 917 2671 2676 2677 2672
+ 797 623710.150 3367764.650 34.42421 1 8 917 922 923 918 2672 2677 2678 2673
+ 798 623647.650 3367702.150 34.40712 1 8 921 941 942 922 2676 2696 2697 2677
+ 799 623710.150 3367702.150 34.42600 1 8 922 942 943 923 2677 2697 2698 2678
+ 800 623803.900 3367858.400 34.45170 1 8 904 918 919 905 2659 2673 2674 2660
+ 801 623928.900 3367858.400 34.48489 1 8 905 919 920 906 2660 2674 2675 2661
+ 802 623803.900 3367733.400 34.45382 1 8 918 943 944 919 2673 2698 2699 2674
+ 803 623928.900 3367733.400 34.48480 1 8 919 944 945 920 2674 2699 2700 2675
+ 804 624116.400 3367795.900 34.52109 1 8 906 945 946 907 2661 2700 2701 2662
+ 805 624366.400 3367795.900 34.55345 1 8 907 946 947 908 2662 2701 2702 2663
+ 806 624616.400 3367795.900 34.56972 1 8 908 947 948 909 2663 2702 2703 2664
+ 807 619866.400 3367545.900 36.24027 1 8 924 961 962 925 2679 2716 2717 2680
+ 808 620116.400 3367545.900 36.21427 1 8 925 962 963 926 2680 2717 2718 2681
+ 809 620366.400 3367545.900 36.16567 1 8 926 963 964 927 2681 2718 2719 2682
+ 810 620616.400 3367545.900 36.08415 1 8 927 964 965 928 2682 2719 2720 2683
+ 811 620866.400 3367545.900 35.91439 1 8 928 965 966 929 2683 2720 2721 2684
+ 812 621116.400 3367545.900 -508.7450 1 8 929 966 967 930 2684 2721 2722 2685
+ 813 621366.400 3367545.900 35.15636 1 8 930 967 968 931 2685 2722 2723 2686
+ 814 621616.400 3367545.900 35.08730 1 8 931 968 969 932 2686 2723 2724 2687
+ 815 621866.400 3367545.900 34.99004 1 8 932 969 970 933 2687 2724 2725 2688
+ 816 622116.400 3367545.900 34.90677 1 8 933 970 971 934 2688 2725 2726 2689
+ 817 622366.400 3367545.900 34.82239 1 8 934 971 972 935 2689 2726 2727 2690
+ 818 622616.400 3367545.900 34.74766 1 8 935 972 973 936 2690 2727 2728 2691
+ 819 622866.400 3367545.900 34.66681 1 8 936 973 974 937 2691 2728 2729 2692
+ 820 623116.400 3367545.900 34.58130 1 8 937 974 975 938 2692 2729 2730 2693
+ 821 623366.400 3367545.900 34.49336 1 8 938 975 976 940 2693 2730 2731 2695
+ 822 623553.900 3367608.400 34.42215 1 8 940 952 953 941 2695 2707 2708 2696
+ 823 623647.650 3367639.650 34.40942 1 8 941 949 950 942 2696 2704 2705 2697
+ 824 623710.150 3367639.650 34.42779 1 8 942 950 951 943 2697 2705 2706 2698
+ 825 623647.650 3367577.150 34.41172 1 8 949 953 954 950 2704 2708 2709 2705
+ 826 623710.150 3367577.150 34.42958 1 8 950 954 955 951 2705 2709 2710 2706
+ 827 623553.900 3367483.400 34.42736 1 8 952 976 977 953 2707 2731 2732 2708
+ 828 623647.650 3367514.650 34.41307 1 8 953 958 959 954 2708 2713 2714 2709
+ 829 623710.150 3367514.650 34.43058 1 8 954 959 960 955 2709 2714 2715 2710
+ 830 623647.650 3367452.150 34.41347 1 8 958 977 978 959 2713 2732 2733 2714
+ 831 623710.150 3367452.150 34.43079 1 8 959 978 979 960 2714 2733 2734 2715
+ 832 623803.900 3367608.400 34.45586 1 8 943 955 956 944 2698 2710 2711 2699
+ 833 623928.900 3367608.400 34.48516 1 8 944 956 957 945 2699 2711 2712 2700
+ 834 623803.900 3367483.400 34.45681 1 8 955 979 980 956 2710 2734 2735 2711
+ 835 623928.900 3367483.400 34.48489 1 8 956 980 981 957 2711 2735 2736 2712
+ 836 624116.400 3367545.900 34.51793 1 8 945 981 982 946 2700 2736 2737 2701
+ 837 624366.400 3367545.900 34.54767 1 8 946 982 983 947 2701 2737 2738 2702
+ 838 624616.400 3367545.900 34.56306 1 8 947 983 984 948 2702 2738 2739 2703
+ 839 619866.400 3367295.900 36.09068 1 8 961 997 998 962 2716 2752 2753 2717
+ 840 620116.400 3367295.900 36.05260 1 8 962 998 999 963 2717 2753 2754 2718
+ 841 620366.400 3367295.900 35.99393 1 8 963 999 1000 964 2718 2754 2755 2719
+ 842 620616.400 3367295.900 35.89670 1 8 964 1000 1001 965 2719 2755 2756 2720
+ 843 620866.400 3367295.900 35.72673 1 8 965 1001 1002 966 2720 2756 2757 2721
+ 844 621116.400 3367295.900 35.45915 1 8 966 1002 1003 967 2721 2757 2758 2722
+ 845 621366.400 3367295.900 35.23893 1 8 967 1003 1004 968 2722 2758 2759 2723
+ 846 621616.400 3367295.900 35.10081 1 8 968 1004 1005 969 2723 2759 2760 2724
+ 847 621866.400 3367295.900 34.99591 1 8 969 1005 1006 970 2724 2760 2761 2725
+ 848 622116.400 3367295.900 34.89344 1 8 970 1006 1007 971 2725 2761 2762 2726
+ 849 622366.400 3367295.900 34.80428 1 8 971 1007 1008 972 2726 2762 2763 2727
+ 850 622616.400 3367295.900 34.73086 1 8 972 1008 1009 973 2727 2763 2764 2728
+ 851 622866.400 3367295.900 34.65815 1 8 973 1009 1010 974 2728 2764 2765 2729
+ 852 623116.400 3367295.900 34.58199 1 8 974 1010 1011 975 2729 2765 2766 2730
+ 853 623366.400 3367295.900 34.50294 1 8 975 1011 1012 976 2730 2766 2767 2731
+ 854 623553.900 3367358.400 34.42929 1 8 976 988 989 977 2731 2743 2744 2732
+ 855 623647.650 3367389.650 34.41386 1 8 977 985 986 978 2732 2740 2741 2733
+ 856 623710.150 3367389.650 34.43100 1 8 978 986 987 979 2733 2741 2742 2734
+ 857 623647.650 3367327.150 34.41426 1 8 985 989 990 986 2740 2744 2745 2741
+ 858 623710.150 3367327.150 34.43121 1 8 986 990 991 987 2741 2745 2746 2742
+ 859 623553.900 3367233.400 34.42920 1 8 988 1012 1013 989 2743 2767 2768 2744
+ 860 623647.650 3367264.650 34.41393 1 8 989 994 995 990 2744 2749 2750 2745
+ 861 623710.150 3367264.650 34.43078 1 8 990 995 996 991 2745 2750 2751 2746
+ 862 623647.650 3367202.150 34.41288 1 8 994 1013 1014 995 2749 2768 2769 2750
+ 863 623710.150 3367202.150 34.42972 1 8 995 1014 1015 996 2750 2769 2770 2751
+ 864 623803.900 3367358.400 34.45667 1 8 979 991 992 980 2734 2746 2747 2735
+ 865 623928.900 3367358.400 34.48396 1 8 980 992 993 981 2735 2747 2748 2736
+ 866 623803.900 3367233.400 34.45552 1 8 991 1015 1016 992 2746 2770 2771 2747
+ 867 623928.900 3367233.400 34.48231 1 8 992 1016 1017 993 2747 2771 2772 2748
+ 868 624116.400 3367295.900 34.51368 1 8 981 1017 1018 982 2736 2772 2773 2737
+ 869 624366.400 3367295.900 34.54203 1 8 982 1018 1019 983 2737 2773 2774 2738
+ 870 624616.400 3367295.900 34.55642 1 8 983 1019 1020 984 2738 2774 2775 2739
+ 871 619866.400 3367045.900 35.94162 1 8 997 1033 1034 998 2752 2788 2789 2753
+ 872 620116.400 3367045.900 35.90236 1 8 998 1034 1035 999 2753 2789 2790 2754
+ 873 620366.400 3367045.900 35.83660 1 8 999 1035 1036 1000 2754 2790 2791 2755
+ 874 620616.400 3367045.900 35.74638 1 8 1000 1036 1037 1001 2755 2791 2792 2756
+ 875 620866.400 3367045.900 35.58167 1 8 1001 1037 1038 1002 2756 2792 2793 2757
+ 876 621116.400 3367045.900 35.38604 1 8 1002 1038 1039 1003 2757 2793 2794 2758
+ 877 621366.400 3367045.900 35.22868 1 8 1003 1039 1040 1004 2758 2794 2795 2759
+ 878 621616.400 3367045.900 35.09145 1 8 1004 1040 1041 1005 2759 2795 2796 2760
+ 879 621866.400 3367045.900 34.97337 1 8 1005 1041 1042 1006 2760 2796 2797 2761
+ 880 622116.400 3367045.900 34.85813 1 8 1006 1042 1043 1007 2761 2797 2798 2762
+ 881 622366.400 3367045.900 34.76579 1 8 1007 1043 1045 1008 2762 2798 2800 2763
+ 882 622616.400 3367045.900 34.69957 1 8 1008 1045 1046 1009 2763 2800 2801 2764
+ 883 622866.400 3367045.900 34.63769 1 8 1009 1046 1047 1010 2764 2801 2802 2765
+ 884 623116.400 3367045.900 34.57166 1 8 1010 1047 1048 1011 2765 2802 2803 2766
+ 885 623366.400 3367045.900 34.49856 1 8 1011 1048 1049 1012 2766 2803 2804 2767
+ 886 623553.900 3367108.400 34.42708 1 8 1012 1024 1025 1013 2767 2779 2780 2768
+ 887 623647.650 3367139.650 34.41183 1 8 1013 1021 1022 1014 2768 2776 2777 2769
+ 888 623710.150 3367139.650 34.42866 1 8 1014 1022 1023 1015 2769 2777 2778 2770
+ 889 623647.650 3367077.150 34.41077 1 8 1021 1025 1026 1022 2776 2780 2781 2777
+ 890 623710.150 3367077.150 34.42760 1 8 1022 1026 1027 1023 2777 2781 2782 2778
+ 891 623553.900 3366983.400 34.42383 1 8 1024 1049 1050 1025 2779 2804 2805 2780
+ 892 623647.650 3367014.650 34.40925 1 8 1025 1030 1031 1026 2780 2785 2786 2781
+ 893 623710.150 3367014.650 34.42606 1 8 1026 1031 1032 1027 2781 2786 2787 2782
+ 894 623647.650 3366952.150 34.40726 1 8 1030 1050 1051 1031 2785 2805 2806 2786
+ 895 623710.150 3366952.150 34.42403 1 8 1031 1051 1052 1032 2786 2806 2807 2787
+ 896 623803.900 3367108.400 34.45337 1 8 1015 1027 1028 1016 2770 2782 2783 2771
+ 897 623928.900 3367108.400 34.47993 1 8 1016 1028 1029 1017 2771 2783 2784 2772
+ 898 623803.900 3366983.400 34.45023 1 8 1027 1052 1053 1028 2782 2807 2808 2783
+ 899 623928.900 3366983.400 34.47660 1 8 1028 1053 1054 1029 2783 2808 2809 2784
+ 900 624116.400 3367045.900 34.50757 1 8 1017 1054 1055 1018 2772 2809 2810 2773
+ 901 624366.400 3367045.900 34.53482 1 8 1018 1055 1056 1019 2773 2810 2811 2774
+ 902 624616.400 3367045.900 34.54855 1 8 1019 1056 1057 1020 2774 2811 2812 2775
+ 903 619866.400 3366795.900 35.80350 1 8 1033 1073 1074 1034 2788 2828 2829 2789
+ 904 620116.400 3366795.900 35.76710 1 8 1034 1074 1075 1035 2789 2829 2830 2790
+ 905 620366.400 3366795.900 35.70565 1 8 1035 1075 1076 1036 2790 2830 2831 2791
+ 906 620616.400 3366795.900 35.59055 1 8 1036 1076 1077 1037 2791 2831 2832 2792
+ 907 620866.400 3366795.900 35.45884 1 8 1037 1077 1078 1038 2792 2832 2833 2793
+ 908 621116.400 3366795.900 35.31458 1 8 1038 1078 1079 1039 2793 2833 2834 2794
+ 909 621366.400 3366795.900 35.18031 1 8 1039 1079 1080 1040 2794 2834 2835 2795
+ 910 621616.400 3366795.900 35.04716 1 8 1040 1080 1081 1041 2795 2835 2836 2796
+ 911 621866.400 3366795.900 34.92602 1 8 1041 1081 1082 1042 2796 2836 2837 2797
+ 912 622116.400 3366795.900 34.80669 1 8 1042 1082 1084 1043 2797 2837 2839 2798
+ 913 622303.900 3366858.400 34.73744 1 8 1043 1061 1062 1044 2798 2816 2817 2799
+ 914 622428.900 3366858.400 34.69841 1 8 1044 1062 1063 1045 2799 2817 2818 2800
+ 915 622303.900 3366733.400 34.68782 1 8 1061 1084 1086 1062 2816 2839 2841 2817
+ 916 622428.900 3366733.400 34.64957 1 8 1062 1086 1088 1063 2817 2841 2843 2818
+ 917 622616.400 3366795.900 34.65138 1 8 1045 1088 1090 1046 2800 2843 2845 2801
+ 918 622866.400 3366795.900 34.60809 1 8 1046 1090 1091 1047 2801 2845 2846 2802
+ 919 623116.400 3366795.900 34.55338 1 8 1047 1091 1092 1048 2802 2846 2847 2803
+ 920 623366.400 3366795.900 34.48728 1 8 1048 1092 1093 1049 2803 2847 2848 2804
+ 921 623553.900 3366858.400 34.41945 1 8 1049 1064 1065 1050 2804 2819 2820 2805
+ 922 623647.650 3366889.650 34.40526 1 8 1050 1058 1059 1051 2805 2813 2814 2806
+ 923 623710.150 3366889.650 34.42200 1 8 1051 1059 1060 1052 2806 2814 2815 2807
+ 924 623647.650 3366827.150 34.40326 1 8 1058 1065 1066 1059 2813 2820 2821 2814
+ 925 623710.150 3366827.150 34.41997 1 8 1059 1066 1067 1060 2814 2821 2822 2815
+ 926 623553.900 3366733.400 34.41435 1 8 1064 1093 1094 1065 2819 2848 2849 2820
+ 927 623647.650 3366764.650 34.40096 1 8 1065 1070 1071 1066 2820 2825 2826 2821
+ 928 623710.150 3366764.650 34.41765 1 8 1066 1071 1072 1067 2821 2826 2827 2822
+ 929 623647.650 3366702.150 34.39835 1 8 1070 1094 1095 1071 2825 2849 2850 2826
+ 930 623710.150 3366702.150 34.41504 1 8 1071 1095 1096 1072 2826 2850 2851 2827
+ 931 623803.900 3366858.400 34.44607 1 8 1052 1067 1068 1053 2807 2822 2823 2808
+ 932 623928.900 3366858.400 34.47235 1 8 1053 1068 1069 1054 2808 2823 2824 2809
+ 933 623803.900 3366733.400 34.44138 1 8 1067 1096 1097 1068 2822 2851 2852 2823
+ 934 623928.900 3366733.400 34.46758 1 8 1068 1097 1098 1069 2823 2852 2853 2824
+ 935 624116.400 3366795.900 34.49883 1 8 1054 1098 1099 1055 2809 2853 2854 2810
+ 936 624366.400 3366795.900 34.52563 1 8 1055 1099 1100 1056 2810 2854 2855 2811
+ 937 624616.400 3366795.900 34.53915 1 8 1056 1100 1101 1057 2811 2855 2856 2812
+ 938 619866.400 3366545.900 35.67183 1 8 1073 1149 1150 1074 2828 2904 2905 2829
+ 939 620116.400 3366545.900 35.63927 1 8 1074 1150 1151 1075 2829 2905 2906 2830
+ 940 620366.400 3366545.900 35.57321 1 8 1075 1151 1152 1076 2830 2906 2907 2831
+ 941 620616.400 3366545.900 35.48102 1 8 1076 1152 1153 1077 2831 2907 2908 2832
+ 942 620866.400 3366545.900 35.35625 1 8 1077 1153 1154 1078 2832 2908 2909 2833
+ 943 621116.400 3366545.900 35.23175 1 8 1078 1154 1155 1079 2833 2909 2910 2834
+ 944 621366.400 3366545.900 35.10379 1 8 1079 1155 1156 1080 2834 2910 2911 2835
+ 945 621616.400 3366545.900 34.98678 1 8 1080 1156 1157 1081 2835 2911 2912 2836
+ 946 621866.400 3366545.900 34.86887 1 8 1081 1157 1158 1082 2836 2912 2913 2837
+ 947 622053.900 3366608.400 34.78703 1 8 1082 1117 1118 1083 2837 2872 2873 2838
+ 948 622178.900 3366608.400 34.71094 1 8 1083 1118 1119 1084 2838 2873 2874 2839
+ 949 622053.900 3366483.400 34.76389 1 8 1117 1158 1159 1118 2872 2913 2914 2873
+ 950 622178.900 3366483.400 34.69006 1 8 1118 1159 1160 1119 2873 2914 2915 2874
+ 951 622272.650 3366639.650 34.65984 1 8 1084 1102 1103 1085 2839 2857 2858 2840
+ 952 622335.150 3366639.650 34.61834 1 8 1085 1103 1105 1086 2840 2858 2860 2841
+ 953 622272.650 3366577.150 34.62990 1 8 1102 1119 1120 1103 2857 2874 2875 2858
+ 954 622319.525 3366592.775 34.60340 1 8 1103 1112 1113 1104 2858 2867 2868 2859
+ 955 622350.775 3366592.775 34.58074 1 8 1104 1113 1114 1105 2859 2868 2869 2860
+ 956 622319.525 3366561.525 34.58652 1 8 1112 1120 1121 1113 2867 2875 2876 2868
+ 957 622350.775 3366561.525 34.56259 1 8 1113 1121 1122 1114 2868 2876 2877 2869
+ 958 622397.650 3366639.650 34.59966 1 8 1086 1105 1107 1087 2841 2860 2862 2842
+ 959 622460.150 3366639.650 34.60379 1 8 1087 1107 1108 1088 2842 2862 2863 2843
+ 960 622382.025 3366592.775 34.57151 1 8 1105 1114 1115 1106 2860 2869 2870 2861
+ 961 622413.275 3366592.775 34.57570 1 8 1106 1115 1116 1107 2861 2870 2871 2862
+ 962 622382.025 3366561.525 34.55343 1 8 1114 1122 1123 1115 2869 2877 2878 2870
+ 963 622413.275 3366561.525 34.55904 1 8 1115 1123 1124 1116 2870 2878 2879 2871
+ 964 622460.150 3366577.150 34.57472 1 8 1107 1124 1125 1108 2862 2879 2880 2863
+ 965 622272.650 3366514.650 34.62019 1 8 1119 1139 1140 1120 2874 2894 2895 2875
+ 966 622319.525 3366530.275 34.58185 1 8 1120 1134 1135 1121 2875 2889 2890 2876
+ 967 622350.775 3366530.275 34.55804 1 8 1121 1135 1136 1122 2876 2890 2891 2877
+ 968 622319.525 3366499.025 34.58938 1 8 1134 1140 1141 1135 2889 2895 2896 2890
+ 969 622350.775 3366499.025 34.56709 1 8 1135 1141 1142 1136 2890 2896 2897 2891
+ 970 622272.650 3366452.150 34.63071 1 8 1139 1160 1161 1140 2894 2915 2916 2895
+ 971 622335.150 3366452.150 34.59067 1 8 1140 1161 1162 1142 2895 2916 2917 2897
+ 972 622382.025 3366530.275 34.54898 1 8 1122 1136 1137 1123 2877 2891 2892 2878
+ 973 622413.275 3366530.275 34.55466 1 8 1123 1137 1138 1124 2878 2892 2893 2879
+ 974 622382.025 3366499.025 34.55816 1 8 1136 1142 1143 1137 2891 2897 2898 2892
+ 975 622413.275 3366499.025 34.56258 1 8 1137 1143 1144 1138 2892 2898 2899 2893
+ 976 622460.150 3366514.650 34.56621 1 8 1124 1144 1145 1125 2879 2899 2900 2880
+ 977 622397.650 3366452.150 34.57319 1 8 1142 1162 1163 1144 2897 2917 2918 2899
+ 978 622460.150 3366452.150 34.57827 1 8 1144 1163 1164 1145 2899 2918 2919 2900
+ 979 622553.900 3366608.400 34.59970 1 8 1088 1125 1126 1089 2843 2880 2881 2844
+ 980 622678.900 3366608.400 34.60093 1 8 1089 1126 1127 1090 2844 2881 2882 2845
+ 981 622553.900 3366483.400 34.58364 1 8 1125 1164 1165 1126 2880 2919 2920 2881
+ 982 622678.900 3366483.400 34.58614 1 8 1126 1165 1166 1127 2881 2920 2921 2882
+ 983 622866.400 3366545.900 34.57560 1 8 1090 1166 1167 1091 2845 2921 2922 2846
+ 984 623116.400 3366545.900 34.53181 1 8 1091 1167 1168 1092 2846 2922 2923 2847
+ 985 623366.400 3366545.900 34.47211 1 8 1092 1168 1169 1093 2847 2923 2924 2848
+ 986 623553.900 3366608.400 34.40855 1 8 1093 1128 1129 1094 2848 2883 2884 2849
+ 987 623647.650 3366639.650 34.39574 1 8 1094 1109 1110 1095 2849 2864 2865 2850
+ 988 623710.150 3366639.650 34.41243 1 8 1095 1110 1111 1096 2850 2865 2866 2851
+ 989 623647.650 3366577.150 34.39314 1 8 1109 1129 1130 1110 2864 2884 2885 2865
+ 990 623710.150 3366577.150 34.40981 1 8 1110 1130 1131 1111 2865 2885 2886 2866
+ 991 623553.900 3366483.400 34.40231 1 8 1128 1169 1170 1129 2883 2924 2925 2884
+ 992 623647.650 3366514.650 34.39030 1 8 1129 1146 1147 1130 2884 2901 2902 2885
+ 993 623710.150 3366514.650 34.40694 1 8 1130 1147 1148 1131 2885 2902 2903 2886
+ 994 623647.650 3366452.150 34.38723 1 8 1146 1170 1171 1147 2901 2925 2926 2902
+ 995 623710.150 3366452.150 34.40380 1 8 1147 1171 1172 1148 2902 2926 2927 2903
+ 996 623803.900 3366608.400 34.43613 1 8 1096 1131 1132 1097 2851 2886 2887 2852
+ 997 623928.900 3366608.400 34.46231 1 8 1097 1132 1133 1098 2852 2887 2888 2853
+ 998 623803.900 3366483.400 34.43027 1 8 1131 1172 1173 1132 2886 2927 2928 2887
+ 999 623928.900 3366483.400 34.45635 1 8 1132 1173 1174 1133 2887 2928 2929 2888
+ 1000 624116.400 3366545.900 34.48812 1 8 1098 1174 1175 1099 2853 2929 2930 2854
+ 1001 624366.400 3366545.900 34.51348 1 8 1099 1175 1176 1100 2854 2930 2931 2855
+ 1002 624616.400 3366545.900 34.52716 1 8 1100 1176 1177 1101 2855 2931 2932 2856
+ 1003 619866.400 3366295.900 35.55888 1 8 1149 1193 1194 1150 2904 2948 2949 2905
+ 1004 620116.400 3366295.900 35.52415 1 8 1150 1194 1195 1151 2905 2949 2950 2906
+ 1005 620366.400 3366295.900 35.45770 1 8 1151 1195 1196 1152 2906 2950 2951 2907
+ 1006 620616.400 3366295.900 35.36938 1 8 1152 1196 1197 1153 2907 2951 2952 2908
+ 1007 620866.400 3366295.900 35.25220 1 8 1153 1197 1198 1154 2908 2952 2953 2909
+ 1008 621116.400 3366295.900 35.13292 1 8 1154 1198 1199 1155 2909 2953 2954 2910
+ 1009 621366.400 3366295.900 35.01077 1 8 1155 1199 1201 1156 2910 2954 2956 2911
+ 1010 621616.400 3366295.900 34.91072 1 8 1156 1201 1202 1157 2911 2956 2957 2912
+ 1011 621866.400 3366295.900 34.81796 1 8 1157 1202 1203 1158 2912 2957 2958 2913
+ 1012 622116.400 3366295.900 34.71929 1 8 1158 1203 1204 1160 2913 2958 2959 2915
+ 1013 622303.900 3366358.400 34.63102 1 8 1160 1181 1182 1162 2915 2936 2937 2917
+ 1014 622428.900 3366358.400 34.59759 1 8 1162 1182 1183 1164 2917 2937 2938 2919
+ 1015 622303.900 3366233.400 34.64329 1 8 1181 1204 1205 1182 2936 2959 2960 2937
+ 1016 622428.900 3366233.400 34.61190 1 8 1182 1205 1206 1183 2937 2960 2961 2938
+ 1017 622616.400 3366295.900 34.58965 1 8 1164 1206 1207 1166 2919 2961 2962 2921
+ 1018 622866.400 3366295.900 34.55666 1 8 1166 1207 1208 1167 2921 2962 2963 2922
+ 1019 623116.400 3366295.900 34.51164 1 8 1167 1208 1209 1168 2922 2963 2964 2923
+ 1020 623366.400 3366295.900 34.45518 1 8 1168 1209 1210 1169 2923 2964 2965 2924
+ 1021 623553.900 3366358.400 34.39565 1 8 1169 1184 1185 1170 2924 2939 2940 2925
+ 1022 623647.650 3366389.650 34.38416 1 8 1170 1178 1179 1171 2925 2933 2934 2926
+ 1023 623710.150 3366389.650 34.40066 1 8 1171 1179 1180 1172 2926 2934 2935 2927
+ 1024 623647.650 3366327.150 34.38108 1 8 1178 1185 1186 1179 2933 2940 2941 2934
+ 1025 623710.150 3366327.150 34.39752 1 8 1179 1186 1187 1180 2934 2941 2942 2935
+ 1026 623553.900 3366233.400 34.38841 1 8 1184 1210 1211 1185 2939 2965 2966 2940
+ 1027 623647.650 3366264.650 34.37775 1 8 1185 1190 1191 1186 2940 2945 2946 2941
+ 1028 623710.150 3366264.650 34.39410 1 8 1186 1191 1192 1187 2941 2946 2947 2942
+ 1029 623647.650 3366202.150 34.37415 1 8 1190 1211 1212 1191 2945 2966 2967 2946
+ 1030 623710.150 3366202.150 34.39042 1 8 1191 1212 1213 1192 2946 2967 2968 2947
+ 1031 623803.900 3366358.400 34.42379 1 8 1172 1187 1188 1173 2927 2942 2943 2928
+ 1032 623928.900 3366358.400 34.44970 1 8 1173 1188 1189 1174 2928 2943 2944 2929
+ 1033 623803.900 3366233.400 34.41672 1 8 1187 1213 1214 1188 2942 2968 2969 2943
+ 1034 623928.900 3366233.400 34.44243 1 8 1188 1214 1215 1189 2943 2969 2970 2944
+ 1035 624116.400 3366295.900 34.47466 1 8 1174 1215 1216 1175 2929 2970 2971 2930
+ 1036 624366.400 3366295.900 34.49990 1 8 1175 1216 1217 1176 2930 2971 2972 2931
+ 1037 624616.400 3366295.900 34.51315 1 8 1176 1217 1218 1177 2931 2972 2973 2932
+ 1038 619866.400 3366045.900 35.45472 1 8 1193 1234 1235 1194 2948 2989 2990 2949
+ 1039 620116.400 3366045.900 35.41394 1 8 1194 1235 1236 1195 2949 2990 2991 2950
+ 1040 620366.400 3366045.900 35.35190 1 8 1195 1236 1237 1196 2950 2991 2992 2951
+ 1041 620616.400 3366045.900 35.26173 1 8 1196 1237 1238 1197 2951 2992 2993 2952
+ 1042 620866.400 3366045.900 35.14400 1 8 1197 1238 1239 1198 2952 2993 2994 2953
+ 1043 621116.400 3366045.900 35.01826 1 8 1198 1239 1241 1199 2953 2994 2996 2954
+ 1044 621303.900 3366108.400 34.94763 1 8 1199 1222 1223 1200 2954 2977 2978 2955
+ 1045 621428.900 3366108.400 34.89677 1 8 1200 1223 1224 1201 2955 2978 2979 2956
+ 1046 621303.900 3365983.400 34.86971 1 8 1222 1241 1243 1223 2977 2996 2998 2978
+ 1047 621428.900 3365983.400 34.82182 1 8 1223 1243 1245 1224 2978 2998 3000 2979
+ 1048 621616.400 3366045.900 34.82109 1 8 1201 1245 1247 1202 2956 3000 3002 2957
+ 1049 621866.400 3366045.900 34.76009 1 8 1202 1247 1248 1203 2957 3002 3003 2958
+ 1050 622116.400 3366045.900 34.69016 1 8 1203 1248 1249 1204 2958 3003 3004 2959
+ 1051 622366.400 3366045.900 34.62254 1 8 1204 1249 1250 1206 2959 3004 3005 2961
+ 1052 622616.400 3366045.900 34.57691 1 8 1206 1250 1251 1207 2961 3005 3006 2962
+ 1053 622866.400 3366045.900 34.53522 1 8 1207 1251 1252 1208 2962 3006 3007 2963
+ 1054 623116.400 3366045.900 34.48891 1 8 1208 1252 1253 1209 2963 3007 3008 2964
+ 1055 623366.400 3366045.900 34.43543 1 8 1209 1253 1254 1210 2964 3008 3009 2965
+ 1056 623553.900 3366108.400 34.38062 1 8 1210 1225 1226 1211 2965 2980 2981 2966
+ 1057 623647.650 3366139.650 34.37056 1 8 1211 1219 1220 1212 2966 2974 2975 2967
+ 1058 623710.150 3366139.650 34.38673 1 8 1212 1220 1221 1213 2967 2975 2976 2968
+ 1059 623647.650 3366077.150 34.36696 1 8 1219 1226 1227 1220 2974 2981 2982 2975
+ 1060 623710.150 3366077.150 34.38303 1 8 1220 1227 1228 1221 2975 2982 2983 2976
+ 1061 623553.900 3365983.400 34.37202 1 8 1225 1254 1255 1226 2980 3009 3010 2981
+ 1062 623647.650 3366014.650 34.36304 1 8 1226 1231 1232 1227 2981 2986 2987 2982
+ 1063 623710.150 3366014.650 34.37900 1 8 1227 1232 1233 1228 2982 2987 2988 2983
+ 1064 623647.650 3365952.150 34.35880 1 8 1231 1255 1256 1232 2986 3010 3011 2987
+ 1065 623710.150 3365952.150 34.37462 1 8 1232 1256 1257 1233 2987 3011 3012 2988
+ 1066 623803.900 3366108.400 34.40906 1 8 1213 1228 1229 1214 2968 2983 2984 2969
+ 1067 623928.900 3366108.400 34.43453 1 8 1214 1229 1230 1215 2969 2984 2985 2970
+ 1068 623803.900 3365983.400 34.40063 1 8 1228 1257 1258 1229 2983 3012 3013 2984
+ 1069 623928.900 3365983.400 34.42587 1 8 1229 1258 1259 1230 2984 3013 3014 2985
+ 1070 624116.400 3366045.900 34.45858 1 8 1215 1259 1260 1216 2970 3014 3015 2971
+ 1071 624366.400 3366045.900 34.48383 1 8 1216 1260 1261 1217 2971 3015 3016 2972
+ 1072 624616.400 3366045.900 34.49731 1 8 1217 1261 1262 1218 2972 3016 3017 2973
+ 1073 619866.400 3365795.900 35.35838 1 8 1234 1310 1311 1235 2989 3065 3066 2990
+ 1074 620116.400 3365795.900 35.31757 1 8 1235 1311 1312 1236 2990 3066 3067 2991
+ 1075 620366.400 3365795.900 35.25014 1 8 1236 1312 1313 1237 2991 3067 3068 2992
+ 1076 620616.400 3365795.900 35.15767 1 8 1237 1313 1314 1238 2992 3068 3069 2993
+ 1077 620866.400 3365795.900 35.04689 1 8 1238 1314 1315 1239 2993 3069 3070 2994
+ 1078 621053.900 3365858.400 34.96449 1 8 1239 1278 1279 1240 2994 3033 3034 2995
+ 1079 621178.900 3365858.400 34.87807 1 8 1240 1279 1280 1241 2995 3034 3035 2996
+ 1080 621053.900 3365733.400 34.92331 1 8 1278 1315 1316 1279 3033 3070 3071 3034
+ 1081 621178.900 3365733.400 34.83852 1 8 1279 1316 1317 1280 3034 3071 3072 3035
+ 1082 621272.650 3365889.650 34.82371 1 8 1241 1263 1264 1242 2996 3018 3019 2997
+ 1083 621335.150 3365889.650 34.77567 1 8 1242 1264 1266 1243 2997 3019 3021 2998
+ 1084 621272.650 3365827.150 34.77985 1 8 1263 1280 1281 1264 3018 3035 3036 3019
+ 1085 621319.525 3365842.775 34.75161 1 8 1264 1273 1274 1265 3019 3028 3029 3020
+ 1086 621350.775 3365842.775 34.72547 1 8 1265 1274 1275 1266 3020 3029 3030 3021
+ 1087 621319.525 3365811.525 34.72756 1 8 1273 1281 1282 1274 3028 3036 3037 3029
+ 1088 621350.775 3365811.525 34.70002 1 8 1274 1282 1283 1275 3029 3037 3038 3030
+ 1089 621397.650 3365889.650 34.75277 1 8 1243 1266 1268 1244 2998 3021 3023 2999
+ 1090 621460.150 3365889.650 34.75503 1 8 1244 1268 1269 1245 2999 3023 3024 3000
+ 1091 621382.025 3365842.775 34.71429 1 8 1266 1275 1276 1267 3021 3030 3031 3022
+ 1092 621413.275 3365842.775 34.71806 1 8 1267 1276 1277 1268 3022 3031 3032 3023
+ 1093 621382.025 3365811.525 34.68901 1 8 1275 1283 1284 1276 3030 3038 3039 3031
+ 1094 621413.275 3365811.525 34.69453 1 8 1276 1284 1285 1277 3031 3039 3040 3032
+ 1095 621460.150 3365827.150 34.71326 1 8 1268 1285 1286 1269 3023 3040 3041 3024
+ 1096 621272.650 3365764.650 34.76060 1 8 1280 1300 1301 1281 3035 3055 3056 3036
+ 1097 621319.525 3365780.275 34.71807 1 8 1281 1295 1296 1282 3036 3050 3051 3037
+ 1098 621350.775 3365780.275 34.69061 1 8 1282 1296 1297 1283 3037 3051 3052 3038
+ 1099 621319.525 3365749.025 34.72313 1 8 1295 1301 1302 1296 3050 3056 3057 3051
+ 1100 621350.775 3365749.025 34.69726 1 8 1296 1302 1303 1297 3051 3057 3058 3052
+ 1101 621272.650 3365702.150 34.76597 1 8 1300 1317 1318 1301 3055 3072 3073 3056
+ 1102 621335.150 3365702.150 34.71897 1 8 1301 1318 1319 1303 3056 3073 3074 3058
+ 1103 621382.025 3365780.275 34.67970 1 8 1283 1297 1298 1284 3038 3052 3053 3039
+ 1104 621413.275 3365780.275 34.68533 1 8 1284 1298 1299 1285 3039 3053 3054 3040
+ 1105 621382.025 3365749.025 34.68637 1 8 1297 1303 1304 1298 3052 3058 3059 3053
+ 1106 621413.275 3365749.025 34.69046 1 8 1298 1304 1305 1299 3053 3059 3060 3054
+ 1107 621460.150 3365764.650 34.69520 1 8 1285 1305 1306 1286 3040 3060 3061 3041
+ 1108 621397.650 3365702.150 34.69727 1 8 1303 1319 1320 1305 3058 3074 3075 3060
+ 1109 621460.150 3365702.150 34.70084 1 8 1305 1320 1321 1306 3060 3075 3076 3061
+ 1110 621553.900 3365858.400 34.74280 1 8 1245 1286 1287 1246 3000 3041 3042 3001
+ 1111 621678.900 3365858.400 34.73943 1 8 1246 1287 1288 1247 3001 3042 3043 3002
+ 1112 621553.900 3365733.400 34.70800 1 8 1286 1321 1322 1287 3041 3076 3077 3042
+ 1113 621678.900 3365733.400 34.70654 1 8 1287 1322 1323 1288 3042 3077 3078 3043
+ 1114 621866.400 3365795.900 34.69595 1 8 1247 1323 1324 1248 3002 3078 3079 3003
+ 1115 622116.400 3365795.900 34.64594 1 8 1248 1324 1325 1249 3003 3079 3080 3004
+ 1116 622366.400 3365795.900 34.59281 1 8 1249 1325 1326 1250 3004 3080 3081 3005
+ 1117 622616.400 3365795.900 34.54631 1 8 1250 1326 1327 1251 3005 3081 3082 3006
+ 1118 622866.400 3365795.900 34.50283 1 8 1251 1327 1328 1252 3006 3082 3083 3007
+ 1119 623116.400 3365795.900 34.45891 1 8 1252 1328 1329 1253 3007 3083 3084 3008
+ 1120 623366.400 3365795.900 34.41023 1 8 1253 1329 1330 1254 3008 3084 3085 3009
+ 1121 623553.900 3365858.400 34.36261 1 8 1254 1289 1290 1255 3009 3044 3045 3010
+ 1122 623647.650 3365889.650 34.35456 1 8 1255 1270 1271 1256 3010 3025 3026 3011
+ 1123 623710.150 3365889.650 34.37024 1 8 1256 1271 1272 1257 3011 3026 3027 3012
+ 1124 623647.650 3365827.150 34.35032 1 8 1270 1290 1291 1271 3025 3045 3046 3026
+ 1125 623710.150 3365827.150 34.36586 1 8 1271 1291 1292 1272 3026 3046 3047 3027
+ 1126 623553.900 3365733.400 34.35212 1 8 1289 1330 1331 1290 3044 3085 3086 3045
+ 1127 623647.650 3365764.650 34.34564 1 8 1290 1307 1308 1291 3045 3062 3063 3046
+ 1128 623710.150 3365764.650 34.36107 1 8 1291 1308 1309 1292 3046 3063 3064 3047
+ 1129 623647.650 3365702.150 34.34052 1 8 1307 1331 1332 1308 3062 3086 3087 3063
+ 1130 623710.150 3365702.150 34.35587 1 8 1308 1332 1333 1309 3063 3087 3088 3064
+ 1131 623803.900 3365858.400 34.39145 1 8 1257 1292 1293 1258 3012 3047 3048 3013
+ 1132 623928.900 3365858.400 34.41644 1 8 1258 1293 1294 1259 3013 3048 3049 3014
+ 1133 623803.900 3365733.400 34.38156 1 8 1292 1333 1334 1293 3047 3088 3089 3048
+ 1134 623928.900 3365733.400 34.40634 1 8 1293 1334 1335 1294 3048 3089 3090 3049
+ 1135 624116.400 3365795.900 34.43989 1 8 1259 1335 1336 1260 3014 3090 3091 3015
+ 1136 624366.400 3365795.900 34.46526 1 8 1260 1336 1337 1261 3015 3091 3092 3016
+ 1137 624616.400 3365795.900 34.47865 1 8 1261 1337 1338 1262 3016 3092 3093 3017
+ 1138 619866.400 3365545.900 35.28326 1 8 1310 1354 1355 1311 3065 3109 3110 3066
+ 1139 620116.400 3365545.900 35.23963 1 8 1311 1355 1356 1312 3066 3110 3111 3067
+ 1140 620366.400 3365545.900 35.17007 1 8 1312 1356 1357 1313 3067 3111 3112 3068
+ 1141 620616.400 3365545.900 35.08377 1 8 1313 1357 1358 1314 3068 3112 3113 3069
+ 1142 620866.400 3365545.900 34.96799 1 8 1314 1358 1359 1315 3069 3113 3114 3070
+ 1143 621116.400 3365545.900 34.85728 1 8 1315 1359 1360 1317 3070 3114 3115 3072
+ 1144 621303.900 3365608.400 34.75528 1 8 1317 1342 1343 1319 3072 3097 3098 3074
+ 1145 621428.900 3365608.400 34.71214 1 8 1319 1343 1344 1321 3074 3098 3099 3076
+ 1146 621303.900 3365483.400 34.75420 1 8 1342 1360 1361 1343 3097 3115 3116 3098
+ 1147 621428.900 3365483.400 34.71159 1 8 1343 1361 1362 1344 3098 3116 3117 3099
+ 1148 621616.400 3365545.900 34.68543 1 8 1321 1362 1363 1323 3076 3117 3118 3078
+ 1149 621866.400 3365545.900 34.64085 1 8 1323 1363 1364 1324 3078 3118 3119 3079
+ 1150 622116.400 3365545.900 34.59177 1 8 1324 1364 1365 1325 3079 3119 3120 3080
+ 1151 622366.400 3365545.900 34.54268 1 8 1325 1365 1366 1326 3080 3120 3121 3081
+ 1152 622616.400 3365545.900 34.49825 1 8 1326 1366 1367 1327 3081 3121 3122 3082
+ 1153 622866.400 3365545.900 34.45728 1 8 1327 1367 1368 1328 3082 3122 3123 3083
+ 1154 623116.400 3365545.900 34.41869 1 8 1328 1368 1369 1329 3083 3123 3124 3084
+ 1155 623366.400 3365545.900 34.37869 1 8 1329 1369 1370 1330 3084 3124 3125 3085
+ 1156 623553.900 3365608.400 34.34055 1 8 1330 1345 1346 1331 3085 3100 3101 3086
+ 1157 623647.650 3365639.650 34.33540 1 8 1331 1339 1340 1332 3086 3094 3095 3087
+ 1158 623710.150 3365639.650 34.35068 1 8 1332 1340 1341 1333 3087 3095 3096 3088
+ 1159 623647.650 3365577.150 34.33027 1 8 1339 1346 1347 1340 3094 3101 3102 3095
+ 1160 623710.150 3365577.150 34.34548 1 8 1340 1347 1348 1341 3095 3102 3103 3096
+ 1161 623553.900 3365483.400 34.32769 1 8 1345 1370 1371 1346 3100 3125 3126 3101
+ 1162 623647.650 3365514.650 34.32466 1 8 1346 1351 1352 1347 3101 3106 3107 3102
+ 1163 623710.150 3365514.650 34.33980 1 8 1347 1352 1353 1348 3102 3107 3108 3103
+ 1164 623647.650 3365452.150 34.31857 1 8 1351 1371 1372 1352 3106 3126 3127 3107
+ 1165 623710.150 3365452.150 34.33362 1 8 1352 1372 1373 1353 3107 3127 3128 3108
+ 1166 623803.900 3365608.400 34.37096 1 8 1333 1348 1349 1334 3088 3103 3104 3089
+ 1167 623928.900 3365608.400 34.39559 1 8 1334 1349 1350 1335 3089 3104 3105 3090
+ 1168 623803.900 3365483.400 34.35936 1 8 1348 1373 1374 1349 3103 3128 3129 3104
+ 1169 623928.900 3365483.400 34.38393 1 8 1349 1374 1375 1350 3104 3129 3130 3105
+ 1170 624116.400 3365545.900 34.41837 1 8 1335 1375 1376 1336 3090 3130 3131 3091
+ 1171 624366.400 3365545.900 34.44424 1 8 1336 1376 1377 1337 3091 3131 3132 3092
+ 1172 624616.400 3365545.900 34.45764 1 8 1337 1377 1378 1338 3092 3132 3133 3093
+ 1173 619866.400 3365295.900 35.24014 1 8 1354 1391 1392 1355 3109 3146 3147 3110
+ 1174 620116.400 3365295.900 35.17185 1 8 1355 1392 1393 1356 3110 3147 3148 3111
+ 1175 620366.400 3365295.900 35.09416 1 8 1356 1393 1394 1357 3111 3148 3149 3112
+ 1176 620616.400 3365295.900 34.98869 1 8 1357 1394 1395 1358 3112 3149 3150 3113
+ 1177 620866.400 3365295.900 34.89749 1 8 1358 1395 1396 1359 3113 3150 3151 3114
+ 1178 621116.400 3365295.900 34.79790 1 8 1359 1396 1397 1360 3114 3151 3152 3115
+ 1179 621366.400 3365295.900 34.70116 1 8 1360 1397 1398 1362 3115 3152 3153 3117
+ 1180 621616.400 3365295.900 34.63162 1 8 1362 1398 1399 1363 3117 3153 3154 3118
+ 1181 621866.400 3365295.900 34.57855 1 8 1363 1399 1400 1364 3118 3154 3155 3119
+ 1182 622116.400 3365295.900 34.52555 1 8 1364 1400 1401 1365 3119 3155 3156 3120
+ 1183 622366.400 3365295.900 34.47575 1 8 1365 1401 1402 1366 3120 3156 3157 3121
+ 1184 622616.400 3365295.900 34.43134 1 8 1366 1402 1403 1367 3121 3157 3158 3122
+ 1185 622866.400 3365295.900 34.39404 1 8 1367 1403 1404 1368 3122 3158 3159 3123
+ 1186 623116.400 3365295.900 34.36488 1 8 1368 1404 1405 1369 3123 3159 3160 3124
+ 1187 623366.400 3365295.900 34.33818 1 8 1369 1405 1406 1370 3124 3160 3161 3125
+ 1188 623553.900 3365358.400 34.31354 1 8 1370 1382 1383 1371 3125 3137 3138 3126
+ 1189 623647.650 3365389.650 34.31247 1 8 1371 1379 1380 1372 3126 3134 3135 3127
+ 1190 623710.150 3365389.650 34.32745 1 8 1372 1380 1381 1373 3127 3135 3136 3128
+ 1191 623647.650 3365327.150 34.30637 1 8 1379 1383 1384 1380 3134 3138 3139 3135
+ 1192 623710.150 3365327.150 34.32127 1 8 1380 1384 1385 1381 3135 3139 3140 3136
+ 1193 623553.900 3365233.400 34.29784 1 8 1382 1406 1407 1383 3137 3161 3162 3138
+ 1194 623647.650 3365264.650 34.29969 1 8 1383 1388 1389 1384 3138 3143 3144 3139
+ 1195 623710.150 3365264.650 34.31455 1 8 1384 1389 1390 1385 3139 3144 3145 3140
+ 1196 623647.650 3365202.150 34.29244 1 8 1388 1407 1408 1389 3143 3162 3163 3144
+ 1197 623710.150 3365202.150 34.30729 1 8 1389 1408 1409 1390 3144 3163 3164 3145
+ 1198 623803.900 3365358.400 34.34677 1 8 1373 1385 1386 1374 3128 3140 3141 3129
+ 1199 623928.900 3365358.400 34.37135 1 8 1374 1386 1387 1375 3129 3141 3142 3130
+ 1200 623803.900 3365233.400 34.33321 1 8 1385 1409 1410 1386 3140 3164 3165 3141
+ 1201 623928.900 3365233.400 34.35792 1 8 1386 1410 1411 1387 3141 3165 3166 3142
+ 1202 624116.400 3365295.900 34.39425 1 8 1375 1411 1412 1376 3130 3166 3167 3131
+ 1203 624366.400 3365295.900 34.42082 1 8 1376 1412 1413 1377 3131 3167 3168 3132
+ 1204 624616.400 3365295.900 34.43552 1 8 1377 1413 1414 1378 3132 3168 3169 3133
+ 1205 619866.400 3365045.900 -508.7450 1 8 1391 1427 1428 1392 3146 3182 3183 3147
+ 1206 620116.400 3365045.900 35.10043 1 8 1392 1428 1429 1393 3147 3183 3184 3148
+ 1207 620366.400 3365045.900 35.01283 1 8 1393 1429 1430 1394 3148 3184 3185 3149
+ 1208 620616.400 3365045.900 34.90618 1 8 1394 1430 1431 1395 3149 3185 3186 3150
+ 1209 620866.400 3365045.900 34.81296 1 8 1395 1431 1432 1396 3150 3186 3187 3151
+ 1210 621116.400 3365045.900 34.71805 1 8 1396 1432 1433 1397 3151 3187 3188 3152
+ 1211 621366.400 3365045.900 34.62942 1 8 1397 1433 1434 1398 3152 3188 3189 3153
+ 1212 621616.400 3365045.900 34.55833 1 8 1398 1434 1435 1399 3153 3189 3190 3154
+ 1213 621866.400 3365045.900 34.49712 1 8 1399 1435 1436 1400 3154 3190 3191 3155
+ 1214 622116.400 3365045.900 34.44161 1 8 1400 1436 1437 1401 3155 3191 3192 3156
+ 1215 622366.400 3365045.900 34.38986 1 8 1401 1437 1438 1402 3156 3192 3193 3157
+ 1216 622616.400 3365045.900 34.34390 1 8 1402 1438 1439 1403 3157 3193 3194 3158
+ 1217 622866.400 3365045.900 34.30638 1 8 1403 1439 1441 1404 3158 3194 3196 3159
+ 1218 623116.400 3365045.900 34.29401 1 8 1404 1441 1442 1405 3159 3196 3197 3160
+ 1219 623366.400 3365045.900 34.28725 1 8 1405 1442 1443 1406 3160 3197 3198 3161
+ 1220 623553.900 3365108.400 34.28059 1 8 1406 1418 1419 1407 3161 3173 3174 3162
+ 1221 623647.650 3365139.650 34.28518 1 8 1407 1415 1416 1408 3162 3170 3171 3163
+ 1222 623710.150 3365139.650 34.30003 1 8 1408 1416 1417 1409 3163 3171 3172 3164
+ 1223 623647.650 3365077.150 34.27793 1 8 1415 1419 1420 1416 3170 3174 3175 3171
+ 1224 623710.150 3365077.150 34.29277 1 8 1416 1420 1421 1417 3171 3175 3176 3172
+ 1225 623553.900 3364983.400 34.26190 1 8 1418 1443 1444 1419 3173 3198 3199 3174
+ 1226 623647.650 3365014.650 34.27016 1 8 1419 1424 1425 1420 3174 3179 3180 3175
+ 1227 623710.150 3365014.650 34.28501 1 8 1420 1425 1426 1421 3175 3180 3181 3176
+ 1228 623647.650 3364952.150 34.26186 1 8 1424 1444 1445 1425 3179 3199 3200 3180
+ 1229 623710.150 3364952.150 34.27676 1 8 1425 1445 1446 1426 3180 3200 3201 3181
+ 1230 623803.900 3365108.400 34.31867 1 8 1409 1421 1422 1410 3164 3176 3177 3165
+ 1231 623928.900 3365108.400 34.34363 1 8 1410 1422 1423 1411 3165 3177 3178 3166
+ 1232 623803.900 3364983.400 34.30320 1 8 1421 1446 1447 1422 3176 3201 3202 3177
+ 1233 623928.900 3364983.400 34.32847 1 8 1422 1447 1448 1423 3177 3202 3203 3178
+ 1234 624116.400 3365045.900 34.36723 1 8 1411 1448 1449 1412 3166 3203 3204 3167
+ 1235 624366.400 3365045.900 34.39569 1 8 1412 1449 1450 1413 3167 3204 3205 3168
+ 1236 624616.400 3365045.900 34.41167 1 8 1413 1450 1451 1414 3168 3205 3206 3169
+ 1237 619866.400 3364795.900 -508.7450 1 8 1427 1467 1468 1428 3182 3222 3223 3183
+ 1238 620116.400 3364795.900 -508.7450 1 8 1428 1468 1469 1429 3183 3223 3224 3184
+ 1239 620366.400 3364795.900 34.92122 1 8 1429 1469 1470 1430 3184 3224 3225 3185
+ 1240 620616.400 3364795.900 34.80882 1 8 1430 1470 1471 1431 3185 3225 3226 3186
+ 1241 620866.400 3364795.900 34.70674 1 8 1431 1471 1472 1432 3186 3226 3227 3187
+ 1242 621116.400 3364795.900 34.61421 1 8 1432 1472 1473 1433 3187 3227 3228 3188
+ 1243 621366.400 3364795.900 34.52846 1 8 1433 1473 1474 1434 3188 3228 3229 3189
+ 1244 621616.400 3364795.900 34.46124 1 8 1434 1474 1475 1435 3189 3229 3230 3190
+ 1245 621866.400 3364795.900 34.39889 1 8 1435 1475 1476 1436 3190 3230 3231 3191
+ 1246 622116.400 3364795.900 34.33946 1 8 1436 1476 1477 1437 3191 3231 3232 3192
+ 1247 622366.400 3364795.900 34.28562 1 8 1437 1477 1478 1438 3192 3232 3233 3193
+ 1248 622616.400 3364795.900 34.23133 1 8 1438 1478 1480 1439 3193 3233 3235 3194
+ 1249 622803.900 3364858.400 34.22405 1 8 1439 1455 1456 1440 3194 3210 3211 3195
+ 1250 622928.900 3364858.400 34.21552 1 8 1440 1456 1457 1441 3195 3211 3212 3196
+ 1251 622803.900 3364733.400 34.14573 1 8 1455 1480 1482 1456 3210 3235 3237 3211
+ 1252 622928.900 3364733.400 34.14008 1 8 1456 1482 1484 1457 3211 3237 3239 3212
+ 1253 623116.400 3364795.900 34.20247 1 8 1441 1484 1486 1442 3196 3239 3241 3197
+ 1254 623366.400 3364795.900 34.22576 1 8 1442 1486 1487 1443 3197 3241 3242 3198
+ 1255 623553.900 3364858.400 34.24175 1 8 1443 1458 1459 1444 3198 3213 3214 3199
+ 1256 623647.650 3364889.650 34.25358 1 8 1444 1452 1453 1445 3199 3207 3208 3200
+ 1257 623710.150 3364889.650 34.26851 1 8 1445 1453 1454 1446 3200 3208 3209 3201
+ 1258 623647.650 3364827.150 34.24529 1 8 1452 1459 1460 1453 3207 3214 3215 3208
+ 1259 623710.150 3364827.150 34.26025 1 8 1453 1460 1461 1454 3208 3215 3216 3209
+ 1260 623553.900 3364733.400 34.22063 1 8 1458 1487 1488 1459 3213 3242 3243 3214
+ 1261 623647.650 3364764.650 34.23658 1 8 1459 1464 1465 1460 3214 3219 3220 3215
+ 1262 623710.150 3364764.650 34.25156 1 8 1460 1465 1466 1461 3215 3220 3221 3216
+ 1263 623647.650 3364702.150 34.22747 1 8 1464 1488 1489 1465 3219 3243 3244 3220
+ 1264 623710.150 3364702.150 34.24242 1 8 1465 1489 1490 1466 3220 3244 3245 3221
+ 1265 623803.900 3364858.400 34.28680 1 8 1446 1461 1462 1447 3201 3216 3217 3202
+ 1266 623928.900 3364858.400 34.31242 1 8 1447 1462 1463 1448 3202 3217 3218 3203
+ 1267 623803.900 3364733.400 34.26942 1 8 1461 1490 1491 1462 3216 3245 3246 3217
+ 1268 623928.900 3364733.400 34.29538 1 8 1462 1491 1492 1463 3217 3246 3247 3218
+ 1269 624116.400 3364795.900 34.33687 1 8 1448 1492 1493 1449 3203 3247 3248 3204
+ 1270 624366.400 3364795.900 34.36890 1 8 1449 1493 1494 1450 3204 3248 3249 3205
+ 1271 624616.400 3364795.900 34.38880 1 8 1450 1494 1495 1451 3205 3249 3250 3206
+ 1272 619866.400 3364545.900 -508.7450 1 8 1467 1543 1544 1468 3222 3298 3299 3223
+ 1273 620116.400 3364545.900 -508.7450 1 8 1468 1544 1545 1469 3223 3299 3300 3224
+ 1274 620366.400 3364545.900 -508.7450 1 8 1469 1545 1546 1470 3224 3300 3301 3225
+ 1275 620616.400 3364545.900 34.70282 1 8 1470 1546 1547 1471 3225 3301 3302 3226
+ 1276 620866.400 3364545.900 34.57443 1 8 1471 1547 1548 1472 3226 3302 3303 3227
+ 1277 621116.400 3364545.900 34.48441 1 8 1472 1548 1549 1473 3227 3303 3304 3228
+ 1278 621366.400 3364545.900 34.41064 1 8 1473 1549 1550 1474 3228 3304 3305 3229
+ 1279 621616.400 3364545.900 34.34389 1 8 1474 1550 1551 1475 3229 3305 3306 3230
+ 1280 621866.400 3364545.900 34.27827 1 8 1475 1551 1552 1476 3230 3306 3307 3231
+ 1281 622116.400 3364545.900 34.22315 1 8 1476 1552 1553 1477 3231 3307 3308 3232
+ 1282 622366.400 3364545.900 34.16866 1 8 1477 1553 1554 1478 3232 3308 3309 3233
+ 1283 622553.900 3364608.400 34.14818 1 8 1478 1511 1512 1479 3233 3266 3267 3234
+ 1284 622678.900 3364608.400 34.10448 1 8 1479 1512 1513 1480 3234 3267 3268 3235
+ 1285 622553.900 3364483.400 34.09218 1 8 1511 1554 1555 1512 3266 3309 3310 3267
+ 1286 622678.900 3364483.400 34.05085 1 8 1512 1555 1556 1513 3267 3310 3311 3268
+ 1287 622772.650 3364639.650 34.08646 1 8 1480 1496 1497 1481 3235 3251 3252 3236
+ 1288 622835.150 3364639.650 34.06176 1 8 1481 1497 1499 1482 3236 3252 3254 3237
+ 1289 622772.650 3364577.150 34.04113 1 8 1496 1513 1514 1497 3251 3268 3269 3252
+ 1290 622819.525 3364592.775 34.03121 1 8 1497 1506 1507 1498 3252 3261 3262 3253
+ 1291 622850.775 3364592.775 34.01705 1 8 1498 1507 1508 1499 3253 3262 3263 3254
+ 1292 622819.525 3364561.525 34.00674 1 8 1506 1514 1515 1507 3261 3269 3270 3262
+ 1293 622850.775 3364561.525 33.99136 1 8 1507 1515 1516 1508 3262 3270 3271 3263
+ 1294 622897.650 3364639.650 34.06010 1 8 1482 1499 1501 1483 3237 3254 3256 3238
+ 1295 622960.150 3364639.650 34.08149 1 8 1483 1501 1502 1484 3238 3256 3257 3239
+ 1296 622882.025 3364592.775 34.01651 1 8 1499 1508 1509 1500 3254 3263 3264 3255
+ 1297 622913.275 3364592.775 34.02961 1 8 1500 1509 1510 1501 3255 3264 3265 3256
+ 1298 622882.025 3364561.525 33.99102 1 8 1508 1516 1517 1509 3263 3271 3272 3264
+ 1299 622913.275 3364561.525 34.00571 1 8 1509 1517 1518 1510 3264 3272 3273 3265
+ 1300 622960.150 3364577.150 34.03851 1 8 1501 1518 1519 1502 3256 3273 3274 3257
+ 1301 622772.650 3364514.650 34.01536 1 8 1513 1533 1534 1514 3268 3288 3289 3269
+ 1302 622819.525 3364530.275 33.99411 1 8 1514 1528 1529 1515 3269 3283 3284 3270
+ 1303 622850.775 3364530.275 33.97891 1 8 1515 1529 1530 1516 3270 3284 3285 3271
+ 1304 622819.525 3364499.025 33.99334 1 8 1528 1534 1535 1529 3283 3289 3290 3284
+ 1305 622850.775 3364499.025 33.97969 1 8 1529 1535 1536 1530 3284 3290 3291 3285
+ 1306 622772.650 3364452.150 34.00915 1 8 1533 1556 1557 1534 3288 3311 3312 3289
+ 1307 622835.150 3364452.150 33.98653 1 8 1534 1557 1558 1536 3289 3312 3313 3291
+ 1308 622882.025 3364530.275 33.97878 1 8 1516 1530 1531 1517 3271 3285 3286 3272
+ 1309 622913.275 3364530.275 33.99371 1 8 1517 1531 1532 1518 3272 3286 3287 3273
+ 1310 622882.025 3364499.025 33.97977 1 8 1530 1536 1537 1531 3285 3291 3292 3286
+ 1311 622913.275 3364499.025 33.99358 1 8 1531 1537 1538 1532 3286 3292 3293 3287
+ 1312 622960.150 3364514.650 34.01520 1 8 1518 1538 1539 1519 3273 3293 3294 3274
+ 1313 622897.650 3364452.150 33.98734 1 8 1536 1558 1559 1538 3291 3313 3314 3293
+ 1314 622960.150 3364452.150 34.01157 1 8 1538 1559 1560 1539 3293 3314 3315 3294
+ 1315 623053.900 3364608.400 34.09689 1 8 1484 1519 1520 1485 3239 3274 3275 3240
+ 1316 623178.900 3364608.400 34.13487 1 8 1485 1520 1521 1486 3240 3275 3276 3241
+ 1317 623053.900 3364483.400 34.05312 1 8 1519 1560 1561 1520 3274 3315 3316 3275
+ 1318 623178.900 3364483.400 34.09541 1 8 1520 1561 1562 1521 3275 3316 3317 3276
+ 1319 623366.400 3364545.900 34.15815 1 8 1486 1562 1563 1487 3241 3317 3318 3242
+ 1320 623553.900 3364608.400 34.19852 1 8 1487 1522 1523 1488 3242 3277 3278 3243
+ 1321 623647.650 3364639.650 34.21836 1 8 1488 1503 1504 1489 3243 3258 3259 3244
+ 1322 623710.150 3364639.650 34.23328 1 8 1489 1504 1505 1490 3244 3259 3260 3245
+ 1323 623647.650 3364577.150 34.20924 1 8 1503 1523 1524 1504 3258 3278 3279 3259
+ 1324 623710.150 3364577.150 34.22414 1 8 1504 1524 1525 1505 3259 3279 3280 3260
+ 1325 623553.900 3364483.400 34.17651 1 8 1522 1563 1564 1523 3277 3318 3319 3278
+ 1326 623647.650 3364514.650 34.19990 1 8 1523 1540 1541 1524 3278 3295 3296 3279
+ 1327 623710.150 3364514.650 34.21470 1 8 1524 1541 1542 1525 3279 3296 3297 3280
+ 1328 623647.650 3364452.150 34.19032 1 8 1540 1564 1565 1541 3295 3319 3320 3296
+ 1329 623710.150 3364452.150 34.20496 1 8 1541 1565 1566 1542 3296 3320 3321 3297
+ 1330 623803.900 3364608.400 34.25107 1 8 1490 1525 1526 1491 3245 3280 3281 3246
+ 1331 623928.900 3364608.400 34.27732 1 8 1491 1526 1527 1492 3246 3281 3282 3247
+ 1332 623803.900 3364483.400 34.23190 1 8 1525 1566 1567 1526 3280 3321 3322 3281
+ 1333 623928.900 3364483.400 34.25820 1 8 1526 1567 1568 1527 3281 3322 3323 3282
+ 1334 624116.400 3364545.900 34.30285 1 8 1492 1568 1569 1493 3247 3323 3324 3248
+ 1335 624366.400 3364545.900 34.33831 1 8 1493 1569 1570 1494 3248 3324 3325 3249
+ 1336 624616.400 3364545.900 34.37138 1 8 1494 1570 1571 1495 3249 3325 3326 3250
+ 1337 619866.400 3364295.900 -508.7450 1 8 1543 1587 1588 1544 3298 3342 3343 3299
+ 1338 620116.400 3364295.900 -508.7450 1 8 1544 1588 1589 1545 3299 3343 3344 3300
+ 1339 620366.400 3364295.900 -508.7450 1 8 1545 1589 1590 1546 3300 3344 3345 3301
+ 1340 620616.400 3364295.900 -508.7450 1 8 1546 1590 1591 1547 3301 3345 3346 3302
+ 1341 620866.400 3364295.900 34.40188 1 8 1547 1591 1592 1548 3302 3346 3347 3303
+ 1342 621116.400 3364295.900 34.32855 1 8 1548 1592 1593 1549 3303 3347 3348 3304
+ 1343 621366.400 3364295.900 34.25681 1 8 1549 1593 1594 1550 3304 3348 3349 3305
+ 1344 621616.400 3364295.900 34.19006 1 8 1550 1594 1595 1551 3305 3349 3350 3306
+ 1345 621866.400 3364295.900 34.13667 1 8 1551 1595 1596 1552 3306 3350 3351 3307
+ 1346 622116.400 3364295.900 34.09151 1 8 1552 1596 1597 1553 3307 3351 3352 3308
+ 1347 622366.400 3364295.900 34.04996 1 8 1553 1597 1598 1554 3308 3352 3353 3309
+ 1348 622616.400 3364295.900 34.01122 1 8 1554 1598 1599 1556 3309 3353 3354 3311
+ 1349 622803.900 3364358.400 33.99319 1 8 1556 1575 1576 1558 3311 3330 3331 3313
+ 1350 622928.900 3364358.400 33.99740 1 8 1558 1576 1577 1560 3313 3331 3332 3315
+ 1351 622803.900 3364233.400 33.96804 1 8 1575 1599 1600 1576 3330 3354 3355 3331
+ 1352 622928.900 3364233.400 33.97565 1 8 1576 1600 1601 1577 3331 3355 3356 3332
+ 1353 623116.400 3364295.900 34.03497 1 8 1560 1601 1602 1562 3315 3356 3357 3317
+ 1354 623366.400 3364295.900 34.09678 1 8 1562 1602 1603 1563 3317 3357 3358 3318
+ 1355 623553.900 3364358.400 34.15459 1 8 1563 1578 1579 1564 3318 3333 3334 3319
+ 1356 623647.650 3364389.650 34.18074 1 8 1564 1572 1573 1565 3319 3327 3328 3320
+ 1357 623710.150 3364389.650 34.19521 1 8 1565 1573 1574 1566 3320 3328 3329 3321
+ 1358 623647.650 3364327.150 34.17116 1 8 1572 1579 1580 1573 3327 3334 3335 3328
+ 1359 623710.150 3364327.150 34.18546 1 8 1573 1580 1581 1574 3328 3335 3336 3329
+ 1360 623553.900 3364233.400 34.13059 1 8 1578 1603 1604 1579 3333 3358 3359 3334
+ 1361 623647.650 3364264.650 34.16084 1 8 1579 1584 1585 1580 3334 3339 3340 3335
+ 1362 623710.150 3364264.650 34.17504 1 8 1580 1585 1586 1581 3335 3340 3341 3336
+ 1363 623647.650 3364202.150 34.14979 1 8 1584 1604 1605 1585 3339 3359 3360 3340
+ 1364 623710.150 3364202.150 34.16393 1 8 1585 1605 1606 1586 3340 3360 3361 3341
+ 1365 623803.900 3364358.400 34.21191 1 8 1566 1581 1582 1567 3321 3336 3337 3322
+ 1366 623928.900 3364358.400 34.23800 1 8 1567 1582 1583 1568 3322 3337 3338 3323
+ 1367 623803.900 3364233.400 34.19073 1 8 1581 1606 1607 1582 3336 3361 3362 3337
+ 1368 623928.900 3364233.400 34.21704 1 8 1582 1607 1608 1583 3337 3362 3363 3338
+ 1369 624116.400 3364295.900 34.26316 1 8 1568 1608 1609 1569 3323 3363 3364 3324
+ 1370 624366.400 3364295.900 34.29457 1 8 1569 1609 1610 1570 3324 3364 3365 3325
+ 1371 624616.400 3364295.900 -508.7450 1 8 1570 1610 1611 1571 3325 3365 3366 3326
+ 1372 619866.400 3364045.900 -508.7450 1 8 1587 1624 1625 1588 3342 3379 3380 3343
+ 1373 620116.400 3364045.900 -508.7450 1 8 1588 1625 1626 1589 3343 3380 3381 3344
+ 1374 620366.400 3364045.900 -508.7450 1 8 1589 1626 1627 1590 3344 3381 3382 3345
+ 1375 620616.400 3364045.900 -508.7450 1 8 1590 1627 1628 1591 3345 3382 3383 3346
+ 1376 620866.400 3364045.900 34.28918 1 8 1591 1628 1629 1592 3346 3383 3384 3347
+ 1377 621116.400 3364045.900 34.15118 1 8 1592 1629 1630 1593 3347 3384 3385 3348
+ 1378 621366.400 3364045.900 34.07428 1 8 1593 1630 1631 1594 3348 3385 3386 3349
+ 1379 621616.400 3364045.900 34.01086 1 8 1594 1631 1632 1595 3349 3386 3387 3350
+ 1380 621866.400 3364045.900 33.97174 1 8 1595 1632 1633 1596 3350 3387 3388 3351
+ 1381 622116.400 3364045.900 33.94009 1 8 1596 1633 1634 1597 3351 3388 3389 3352
+ 1382 622366.400 3364045.900 33.91383 1 8 1597 1634 1635 1598 3352 3389 3390 3353
+ 1383 622616.400 3364045.900 33.89818 1 8 1598 1635 1636 1599 3353 3390 3391 3354
+ 1384 622866.400 3364045.900 33.90313 1 8 1599 1636 1637 1601 3354 3391 3392 3356
+ 1385 623116.400 3364045.900 33.94871 1 8 1601 1637 1638 1602 3356 3392 3393 3357
+ 1386 623366.400 3364045.900 34.02028 1 8 1602 1638 1639 1603 3357 3393 3394 3358
+ 1387 623553.900 3364108.400 34.10449 1 8 1603 1615 1616 1604 3358 3370 3371 3359
+ 1388 623647.650 3364139.650 34.13874 1 8 1604 1612 1613 1605 3359 3367 3368 3360
+ 1389 623710.150 3364139.650 34.15282 1 8 1605 1613 1614 1606 3360 3368 3369 3361
+ 1390 623647.650 3364077.150 34.12769 1 8 1612 1616 1617 1613 3367 3371 3372 3368
+ 1391 623710.150 3364077.150 34.14172 1 8 1613 1617 1618 1614 3368 3372 3373 3369
+ 1392 623553.900 3363983.400 34.07437 1 8 1615 1639 1640 1616 3370 3394 3395 3371
+ 1393 623647.650 3364014.650 34.11545 1 8 1616 1621 1622 1617 3371 3376 3377 3372
+ 1394 623710.150 3364014.650 34.12954 1 8 1617 1622 1623 1618 3372 3377 3378 3373
+ 1395 623647.650 3363952.150 34.10202 1 8 1621 1640 1641 1622 3376 3395 3396 3377
+ 1396 623710.150 3363952.150 34.11629 1 8 1622 1641 1642 1623 3377 3396 3397 3378
+ 1397 623803.900 3364108.400 34.16835 1 8 1606 1618 1619 1607 3361 3373 3374 3362
+ 1398 623928.900 3364108.400 34.19533 1 8 1607 1619 1620 1608 3362 3374 3375 3363
+ 1399 623803.900 3363983.400 34.14418 1 8 1618 1642 1643 1619 3373 3397 3398 3374
+ 1400 623928.900 3363983.400 34.17208 1 8 1619 1643 1644 1620 3374 3398 3399 3375
+ 1401 624116.400 3364045.900 34.22442 1 8 1608 1644 1645 1609 3363 3399 3400 3364
+ 1402 624366.400 3364045.900 34.26710 1 8 1609 1645 1646 1610 3364 3400 3401 3365
+ 1403 624616.400 3364045.900 -508.7450 1 8 1610 1646 1647 1611 3365 3401 3402 3366
+ 1404 619866.400 3363795.900 -508.7450 1 8 1624 1660 1661 1625 3379 3415 3416 3380
+ 1405 620116.400 3363795.900 -508.7450 1 8 1625 1661 1662 1626 3380 3416 3417 3381
+ 1406 620366.400 3363795.900 -508.7450 1 8 1626 1662 1663 1627 3381 3417 3418 3382
+ 1407 620616.400 3363795.900 -508.7450 1 8 1627 1663 1664 1628 3382 3418 3419 3383
+ 1408 620866.400 3363795.900 -508.7450 1 8 1628 1664 1665 1629 3383 3419 3420 3384
+ 1409 621116.400 3363795.900 33.87853 1 8 1629 1665 1666 1630 3384 3420 3421 3385
+ 1410 621366.400 3363795.900 33.84200 1 8 1630 1666 1667 1631 3385 3421 3422 3386
+ 1411 621616.400 3363795.900 33.80978 1 8 1631 1667 1668 1632 3386 3422 3423 3387
+ 1412 621866.400 3363795.900 33.78757 1 8 1632 1668 1669 1633 3387 3423 3424 3388
+ 1413 622116.400 3363795.900 33.76645 1 8 1633 1669 1670 1634 3388 3424 3425 3389
+ 1414 622366.400 3363795.900 33.75312 1 8 1634 1670 1671 1635 3389 3425 3426 3390
+ 1415 622616.400 3363795.900 33.75095 1 8 1635 1671 1672 1636 3390 3426 3427 3391
+ 1416 622866.400 3363795.900 33.76723 1 8 1636 1672 1673 1637 3391 3427 3428 3392
+ 1417 623116.400 3363795.900 33.81617 1 8 1637 1673 1674 1638 3392 3428 3429 3393
+ 1418 623366.400 3363795.900 33.90929 1 8 1638 1674 1675 1639 3393 3429 3430 3394
+ 1419 623553.900 3363858.400 34.04022 1 8 1639 1651 1652 1640 3394 3406 3407 3395
+ 1420 623647.650 3363889.650 34.08860 1 8 1640 1648 1649 1641 3395 3403 3404 3396
+ 1421 623710.150 3363889.650 34.10305 1 8 1641 1649 1650 1642 3396 3404 3405 3397
+ 1422 623647.650 3363827.150 34.07517 1 8 1648 1652 1653 1649 3403 3407 3408 3404
+ 1423 623710.150 3363827.150 34.08980 1 8 1649 1653 1654 1650 3404 3408 3409 3405
+ 1424 623553.900 3363733.400 34.00102 1 8 1651 1675 1676 1652 3406 3430 3431 3407
+ 1425 623647.650 3363764.650 34.06123 1 8 1652 1657 1658 1653 3407 3412 3413 3408
+ 1426 623710.150 3363764.650 34.07594 1 8 1653 1658 1659 1654 3408 3413 3414 3409
+ 1427 623647.650 3363702.150 34.04675 1 8 1657 1676 1677 1658 3412 3431 3432 3413
+ 1428 623710.150 3363702.150 34.06147 1 8 1658 1677 1678 1659 3413 3432 3433 3414
+ 1429 623803.900 3363858.400 34.11823 1 8 1642 1654 1655 1643 3397 3409 3410 3398
+ 1430 623928.900 3363858.400 34.14730 1 8 1643 1655 1656 1644 3398 3410 3411 3399
+ 1431 623803.900 3363733.400 34.09078 1 8 1654 1678 1679 1655 3409 3433 3434 3410
+ 1432 623928.900 3363733.400 0.1912537 1 8 1655 1679 1680 1656 3410 3434 3435 3411
+ 1433 624116.400 3363795.900 34.17970 1 8 1644 1680 1681 1645 3399 3435 3436 3400
+ 1434 624366.400 3363795.900 -508.7450 1 8 1645 1681 1682 1646 3400 3436 3437 3401
+ 1435 624616.400 3363795.900 -508.7450 1 8 1646 1682 1683 1647 3401 3437 3438 3402
+ 1436 619866.400 3363545.900 -508.7450 1 8 1660 1696 1697 1661 3415 3451 3452 3416
+ 1437 620116.400 3363545.900 -508.7450 1 8 1661 1697 1698 1662 3416 3452 3453 3417
+ 1438 620366.400 3363545.900 -508.7450 1 8 1662 1698 1699 1663 3417 3453 3454 3418
+ 1439 620616.400 3363545.900 -508.7450 1 8 1663 1699 1700 1664 3418 3454 3455 3419
+ 1440 620866.400 3363545.900 -508.7450 1 8 1664 1700 1701 1665 3419 3455 3456 3420
+ 1441 621116.400 3363545.900 33.61322 1 8 1665 1701 1702 1666 3420 3456 3457 3421
+ 1442 621366.400 3363545.900 33.60641 1 8 1666 1702 1703 1667 3421 3457 3458 3422
+ 1443 621616.400 3363545.900 33.59106 1 8 1667 1703 1704 1668 3422 3458 3459 3423
+ 1444 621866.400 3363545.900 33.57785 1 8 1668 1704 1705 1669 3423 3459 3460 3424
+ 1445 622116.400 3363545.900 33.56753 1 8 1669 1705 1706 1670 3424 3460 3461 3425
+ 1446 622366.400 3363545.900 33.56189 1 8 1670 1706 1707 1671 3425 3461 3462 3426
+ 1447 622616.400 3363545.900 33.56512 1 8 1671 1707 1708 1672 3426 3462 3463 3427
+ 1448 622866.400 3363545.900 33.58125 1 8 1672 1708 1709 1673 3427 3463 3464 3428
+ 1449 623116.400 3363545.900 33.62429 1 8 1673 1709 1710 1674 3428 3464 3465 3429
+ 1450 623366.400 3363545.900 33.72894 1 8 1674 1710 1711 1675 3429 3465 3466 3430
+ 1451 623553.900 3363608.400 33.95678 1 8 1675 1687 1688 1676 3430 3442 3443 3431
+ 1452 623647.650 3363639.650 34.03229 1 8 1676 1684 1685 1677 3431 3439 3440 3432
+ 1453 623710.150 3363639.650 34.04700 1 8 1677 1685 1686 1678 3432 3440 3441 3433
+ 1454 623647.650 3363577.150 34.01781 1 8 1684 1688 1689 1685 3439 3443 3444 3440
+ 1455 623710.150 3363577.150 34.03252 1 8 1685 1689 1690 1686 3440 3444 3445 3441
+ 1456 623553.900 3363483.400 -67.85632 1 8 1687 1711 1712 1688 3442 3466 3467 3443
+ 1457 623647.650 3363514.650 -33.83387 1 8 1688 1693 1694 1689 3443 3448 3449 3444
+ 1458 623710.150 3363514.650 -33.82100 1 8 1689 1694 1695 1690 3444 3449 3450 3445
+ 1459 623647.650 3363452.150 -169.5228 1 8 1693 1712 1713 1694 3448 3467 3468 3449
+ 1460 623710.150 3363452.150 -169.5136 1 8 1694 1713 1714 1695 3449 3468 3469 3450
+ 1461 623803.900 3363608.400 34.06183 1 8 1678 1690 1691 1679 3433 3445 3446 3434
+ 1462 623928.900 3363608.400 -67.69605 1 8 1679 1691 1692 1680 3434 3446 3447 3435
+ 1463 623803.900 3363483.400 -101.6507 1 8 1690 1714 1715 1691 3445 3469 3470 3446
+ 1464 623928.900 3363483.400 -203.4160 1 8 1691 1715 1716 1692 3446 3470 3471 3447
+ 1465 624116.400 3363545.900 -508.7450 1 8 1680 1716 1717 1681 3435 3471 3472 3436
+ 1466 624366.400 3363545.900 -508.7450 1 8 1681 1717 1718 1682 3436 3472 3473 3437
+ 1467 624616.400 3363545.900 -508.7450 1 8 1682 1718 1719 1683 3437 3473 3474 3438
+ 1468 619866.400 3363295.900 -508.7450 1 8 1696 1732 1733 1697 3451 3487 3488 3452
+ 1469 620116.400 3363295.900 -508.7450 1 8 1697 1733 1734 1698 3452 3488 3489 3453
+ 1470 620366.400 3363295.900 -508.7450 1 8 1698 1734 1735 1699 3453 3489 3490 3454
+ 1471 620616.400 3363295.900 -508.7450 1 8 1699 1735 1736 1700 3454 3490 3491 3455
+ 1472 620866.400 3363295.900 -508.7450 1 8 1700 1736 1737 1701 3455 3491 3492 3456
+ 1473 621116.400 3363295.900 33.31617 1 8 1701 1737 1738 1702 3456 3492 3493 3457
+ 1474 621366.400 3363295.900 33.31602 1 8 1702 1738 1739 1703 3457 3493 3494 3458
+ 1475 621616.400 3363295.900 33.31615 1 8 1703 1739 1740 1704 3458 3494 3495 3459
+ 1476 621866.400 3363295.900 33.31601 1 8 1704 1740 1741 1705 3459 3495 3496 3460
+ 1477 622116.400 3363295.900 33.31598 1 8 1705 1741 1742 1706 3460 3496 3497 3461
+ 1478 622366.400 3363295.900 33.31601 1 8 1706 1742 1743 1707 3461 3497 3498 3462
+ 1479 622616.400 3363295.900 33.31605 1 8 1707 1743 1744 1708 3462 3498 3499 3463
+ 1480 622866.400 3363295.900 33.31629 1 8 1708 1744 1745 1709 3463 3499 3500 3464
+ 1481 623116.400 3363295.900 33.31692 1 8 1709 1745 1746 1710 3464 3500 3501 3465
+ 1482 623366.400 3363295.900 33.31805 1 8 1710 1746 1747 1711 3465 3501 3502 3466
+ 1483 623553.900 3363358.400 -271.4383 1 8 1711 1723 1724 1712 3466 3478 3479 3467
+ 1484 623647.650 3363389.650 -305.2116 1 8 1712 1720 1721 1713 3467 3475 3476 3468
+ 1485 623710.150 3363389.650 -305.2061 1 8 1713 1721 1722 1714 3468 3476 3477 3469
+ 1486 623647.650 3363327.150 -440.9005 1 8 1720 1724 1725 1721 3475 3479 3480 3476
+ 1487 623710.150 3363327.150 -440.8987 1 8 1721 1725 1726 1722 3476 3480 3481 3477
+ 1488 623553.900 3363233.400 -373.2292 1 8 1723 1747 1748 1724 3478 3502 3503 3479
+ 1489 623647.650 3363264.650 -508.7450 1 8 1724 1729 1730 1725 3479 3484 3485 3480
+ 1490 623710.150 3363264.650 -508.7450 1 8 1725 1730 1731 1726 3480 3485 3486 3481
+ 1491 623647.650 3363202.150 -508.7450 1 8 1729 1748 1749 1730 3484 3503 3504 3485
+ 1492 623710.150 3363202.150 -508.7450 1 8 1730 1749 1750 1731 3485 3504 3505 3486
+ 1493 623803.900 3363358.400 -373.0469 1 8 1714 1726 1727 1715 3469 3481 3482 3470
+ 1494 623928.900 3363358.400 -406.9687 1 8 1715 1727 1728 1716 3470 3482 3483 3471
+ 1495 623803.900 3363233.400 -508.7450 1 8 1726 1750 1751 1727 3481 3505 3506 3482
+ 1496 623928.900 3363233.400 -508.7450 1 8 1727 1751 1752 1728 3482 3506 3507 3483
+ 1497 624116.400 3363295.900 -508.7450 1 8 1716 1752 1753 1717 3471 3507 3508 3472
+ 1498 624366.400 3363295.900 -508.7450 1 8 1717 1753 1754 1718 3472 3508 3509 3473
+ 1499 624616.400 3363295.900 -508.7450 1 8 1718 1754 1755 1719 3473 3509 3510 3474
+ 1500 619866.400 3373045.900 31.25000 2 8 1756 1792 1793 1757 3511 3547 3548 3512
+ 1501 620116.400 3373045.900 31.25000 2 8 1757 1793 1794 1758 3512 3548 3549 3513
+ 1502 620366.400 3373045.900 31.25000 2 8 1758 1794 1795 1759 3513 3549 3550 3514
+ 1503 620616.400 3373045.900 31.25000 2 8 1759 1795 1796 1760 3514 3550 3551 3515
+ 1504 620866.400 3373045.900 31.25000 2 8 1760 1796 1797 1761 3515 3551 3552 3516
+ 1505 621116.400 3373045.900 31.25000 2 8 1761 1797 1798 1762 3516 3552 3553 3517
+ 1506 621366.400 3373045.900 31.25000 2 8 1762 1798 1799 1763 3517 3553 3554 3518
+ 1507 621616.400 3373045.900 31.25000 2 8 1763 1799 1800 1764 3518 3554 3555 3519
+ 1508 621866.400 3373045.900 31.25000 2 8 1764 1800 1801 1765 3519 3555 3556 3520
+ 1509 622116.400 3373045.900 31.25000 2 8 1765 1801 1802 1766 3520 3556 3557 3521
+ 1510 622366.400 3373045.900 31.25000 2 8 1766 1802 1803 1767 3521 3557 3558 3522
+ 1511 622616.400 3373045.900 31.25000 2 8 1767 1803 1804 1768 3522 3558 3559 3523
+ 1512 622866.400 3373045.900 31.25000 2 8 1768 1804 1805 1769 3523 3559 3560 3524
+ 1513 623116.400 3373045.900 31.25000 2 8 1769 1805 1806 1770 3524 3560 3561 3525
+ 1514 623366.400 3373045.900 31.25000 2 8 1770 1806 1807 1771 3525 3561 3562 3526
+ 1515 623553.900 3373108.400 31.25000 2 8 1771 1783 1784 1772 3526 3538 3539 3527
+ 1516 623647.650 3373139.650 31.25000 2 8 1772 1780 1781 1773 3527 3535 3536 3528
+ 1517 623710.150 3373139.650 31.25000 2 8 1773 1781 1782 1774 3528 3536 3537 3529
+ 1518 623647.650 3373077.150 31.25000 2 8 1780 1784 1785 1781 3535 3539 3540 3536
+ 1519 623710.150 3373077.150 31.25000 2 8 1781 1785 1786 1782 3536 3540 3541 3537
+ 1520 623553.900 3372983.400 31.25000 2 8 1783 1807 1808 1784 3538 3562 3563 3539
+ 1521 623647.650 3373014.650 31.25000 2 8 1784 1789 1790 1785 3539 3544 3545 3540
+ 1522 623710.150 3373014.650 31.25000 2 8 1785 1790 1791 1786 3540 3545 3546 3541
+ 1523 623647.650 3372952.150 31.25000 2 8 1789 1808 1809 1790 3544 3563 3564 3545
+ 1524 623710.150 3372952.150 31.25000 2 8 1790 1809 1810 1791 3545 3564 3565 3546
+ 1525 623803.900 3373108.400 31.25000 2 8 1774 1786 1787 1775 3529 3541 3542 3530
+ 1526 623928.900 3373108.400 31.25000 2 8 1775 1787 1788 1776 3530 3542 3543 3531
+ 1527 623803.900 3372983.400 31.25000 2 8 1786 1810 1811 1787 3541 3565 3566 3542
+ 1528 623928.900 3372983.400 31.25000 2 8 1787 1811 1812 1788 3542 3566 3567 3543
+ 1529 624116.400 3373045.900 31.25000 2 8 1776 1812 1813 1777 3531 3567 3568 3532
+ 1530 624366.400 3373045.900 31.25000 2 8 1777 1813 1814 1778 3532 3568 3569 3533
+ 1531 624616.400 3373045.900 31.25000 2 8 1778 1814 1815 1779 3533 3569 3570 3534
+ 1532 619866.400 3372795.900 31.25000 2 8 1792 1828 1829 1793 3547 3583 3584 3548
+ 1533 620116.400 3372795.900 31.25000 2 8 1793 1829 1830 1794 3548 3584 3585 3549
+ 1534 620366.400 3372795.900 31.25000 2 8 1794 1830 1831 1795 3549 3585 3586 3550
+ 1535 620616.400 3372795.900 31.25000 2 8 1795 1831 1832 1796 3550 3586 3587 3551
+ 1536 620866.400 3372795.900 31.25000 2 8 1796 1832 1833 1797 3551 3587 3588 3552
+ 1537 621116.400 3372795.900 31.25000 2 8 1797 1833 1834 1798 3552 3588 3589 3553
+ 1538 621366.400 3372795.900 31.25000 2 8 1798 1834 1835 1799 3553 3589 3590 3554
+ 1539 621616.400 3372795.900 31.25000 2 8 1799 1835 1836 1800 3554 3590 3591 3555
+ 1540 621866.400 3372795.900 31.25000 2 8 1800 1836 1837 1801 3555 3591 3592 3556
+ 1541 622116.400 3372795.900 31.25000 2 8 1801 1837 1838 1802 3556 3592 3593 3557
+ 1542 622366.400 3372795.900 31.25000 2 8 1802 1838 1839 1803 3557 3593 3594 3558
+ 1543 622616.400 3372795.900 31.25000 2 8 1803 1839 1840 1804 3558 3594 3595 3559
+ 1544 622866.400 3372795.900 31.25000 2 8 1804 1840 1841 1805 3559 3595 3596 3560
+ 1545 623116.400 3372795.900 31.25000 2 8 1805 1841 1842 1806 3560 3596 3597 3561
+ 1546 623366.400 3372795.900 31.25000 2 8 1806 1842 1843 1807 3561 3597 3598 3562
+ 1547 623553.900 3372858.400 31.25000 2 8 1807 1819 1820 1808 3562 3574 3575 3563
+ 1548 623647.650 3372889.650 31.25000 2 8 1808 1816 1817 1809 3563 3571 3572 3564
+ 1549 623710.150 3372889.650 31.25000 2 8 1809 1817 1818 1810 3564 3572 3573 3565
+ 1550 623647.650 3372827.150 31.25000 2 8 1816 1820 1821 1817 3571 3575 3576 3572
+ 1551 623710.150 3372827.150 31.25000 2 8 1817 1821 1822 1818 3572 3576 3577 3573
+ 1552 623553.900 3372733.400 31.25000 2 8 1819 1843 1844 1820 3574 3598 3599 3575
+ 1553 623647.650 3372764.650 31.25000 2 8 1820 1825 1826 1821 3575 3580 3581 3576
+ 1554 623710.150 3372764.650 31.25000 2 8 1821 1826 1827 1822 3576 3581 3582 3577
+ 1555 623647.650 3372702.150 31.25000 2 8 1825 1844 1845 1826 3580 3599 3600 3581
+ 1556 623710.150 3372702.150 31.25000 2 8 1826 1845 1846 1827 3581 3600 3601 3582
+ 1557 623803.900 3372858.400 31.25000 2 8 1810 1822 1823 1811 3565 3577 3578 3566
+ 1558 623928.900 3372858.400 31.25000 2 8 1811 1823 1824 1812 3566 3578 3579 3567
+ 1559 623803.900 3372733.400 31.25000 2 8 1822 1846 1847 1823 3577 3601 3602 3578
+ 1560 623928.900 3372733.400 31.25000 2 8 1823 1847 1848 1824 3578 3602 3603 3579
+ 1561 624116.400 3372795.900 31.25000 2 8 1812 1848 1849 1813 3567 3603 3604 3568
+ 1562 624366.400 3372795.900 31.25000 2 8 1813 1849 1850 1814 3568 3604 3605 3569
+ 1563 624616.400 3372795.900 31.25000 2 8 1814 1850 1851 1815 3569 3605 3606 3570
+ 1564 619866.400 3372545.900 31.25000 2 8 1828 1864 1865 1829 3583 3619 3620 3584
+ 1565 620116.400 3372545.900 31.25000 2 8 1829 1865 1866 1830 3584 3620 3621 3585
+ 1566 620366.400 3372545.900 31.25000 2 8 1830 1866 1867 1831 3585 3621 3622 3586
+ 1567 620616.400 3372545.900 31.25000 2 8 1831 1867 1868 1832 3586 3622 3623 3587
+ 1568 620866.400 3372545.900 31.25000 2 8 1832 1868 1869 1833 3587 3623 3624 3588
+ 1569 621116.400 3372545.900 31.25000 2 8 1833 1869 1870 1834 3588 3624 3625 3589
+ 1570 621366.400 3372545.900 31.25000 2 8 1834 1870 1871 1835 3589 3625 3626 3590
+ 1571 621616.400 3372545.900 31.25000 2 8 1835 1871 1872 1836 3590 3626 3627 3591
+ 1572 621866.400 3372545.900 31.25000 2 8 1836 1872 1873 1837 3591 3627 3628 3592
+ 1573 622116.400 3372545.900 31.25000 2 8 1837 1873 1874 1838 3592 3628 3629 3593
+ 1574 622366.400 3372545.900 31.25000 2 8 1838 1874 1875 1839 3593 3629 3630 3594
+ 1575 622616.400 3372545.900 31.25000 2 8 1839 1875 1876 1840 3594 3630 3631 3595
+ 1576 622866.400 3372545.900 31.25000 2 8 1840 1876 1877 1841 3595 3631 3632 3596
+ 1577 623116.400 3372545.900 31.25000 2 8 1841 1877 1878 1842 3596 3632 3633 3597
+ 1578 623366.400 3372545.900 31.25000 2 8 1842 1878 1879 1843 3597 3633 3634 3598
+ 1579 623553.900 3372608.400 31.25000 2 8 1843 1855 1856 1844 3598 3610 3611 3599
+ 1580 623647.650 3372639.650 31.25000 2 8 1844 1852 1853 1845 3599 3607 3608 3600
+ 1581 623710.150 3372639.650 31.25000 2 8 1845 1853 1854 1846 3600 3608 3609 3601
+ 1582 623647.650 3372577.150 31.25000 2 8 1852 1856 1857 1853 3607 3611 3612 3608
+ 1583 623710.150 3372577.150 31.25000 2 8 1853 1857 1858 1854 3608 3612 3613 3609
+ 1584 623553.900 3372483.400 31.25000 2 8 1855 1879 1880 1856 3610 3634 3635 3611
+ 1585 623647.650 3372514.650 31.25000 2 8 1856 1861 1862 1857 3611 3616 3617 3612
+ 1586 623710.150 3372514.650 31.25000 2 8 1857 1862 1863 1858 3612 3617 3618 3613
+ 1587 623647.650 3372452.150 31.25000 2 8 1861 1880 1881 1862 3616 3635 3636 3617
+ 1588 623710.150 3372452.150 31.25000 2 8 1862 1881 1882 1863 3617 3636 3637 3618
+ 1589 623803.900 3372608.400 31.25000 2 8 1846 1858 1859 1847 3601 3613 3614 3602
+ 1590 623928.900 3372608.400 31.25000 2 8 1847 1859 1860 1848 3602 3614 3615 3603
+ 1591 623803.900 3372483.400 31.25000 2 8 1858 1882 1883 1859 3613 3637 3638 3614
+ 1592 623928.900 3372483.400 31.25000 2 8 1859 1883 1884 1860 3614 3638 3639 3615
+ 1593 624116.400 3372545.900 31.25000 2 8 1848 1884 1885 1849 3603 3639 3640 3604
+ 1594 624366.400 3372545.900 31.25000 2 8 1849 1885 1886 1850 3604 3640 3641 3605
+ 1595 624616.400 3372545.900 31.25000 2 8 1850 1886 1887 1851 3605 3641 3642 3606
+ 1596 619866.400 3372295.900 31.25000 2 8 1864 1900 1901 1865 3619 3655 3656 3620
+ 1597 620116.400 3372295.900 31.25000 2 8 1865 1901 1902 1866 3620 3656 3657 3621
+ 1598 620366.400 3372295.900 31.25000 2 8 1866 1902 1903 1867 3621 3657 3658 3622
+ 1599 620616.400 3372295.900 31.25000 2 8 1867 1903 1904 1868 3622 3658 3659 3623
+ 1600 620866.400 3372295.900 31.25000 2 8 1868 1904 1905 1869 3623 3659 3660 3624
+ 1601 621116.400 3372295.900 31.25000 2 8 1869 1905 1906 1870 3624 3660 3661 3625
+ 1602 621366.400 3372295.900 31.25000 2 8 1870 1906 1907 1871 3625 3661 3662 3626
+ 1603 621616.400 3372295.900 31.25000 2 8 1871 1907 1908 1872 3626 3662 3663 3627
+ 1604 621866.400 3372295.900 31.25000 2 8 1872 1908 1909 1873 3627 3663 3664 3628
+ 1605 622116.400 3372295.900 31.25000 2 8 1873 1909 1910 1874 3628 3664 3665 3629
+ 1606 622366.400 3372295.900 31.25000 2 8 1874 1910 1911 1875 3629 3665 3666 3630
+ 1607 622616.400 3372295.900 31.25000 2 8 1875 1911 1912 1876 3630 3666 3667 3631
+ 1608 622866.400 3372295.900 31.25000 2 8 1876 1912 1913 1877 3631 3667 3668 3632
+ 1609 623116.400 3372295.900 31.25000 2 8 1877 1913 1914 1878 3632 3668 3669 3633
+ 1610 623366.400 3372295.900 31.25000 2 8 1878 1914 1915 1879 3633 3669 3670 3634
+ 1611 623553.900 3372358.400 31.25000 2 8 1879 1891 1892 1880 3634 3646 3647 3635
+ 1612 623647.650 3372389.650 31.25000 2 8 1880 1888 1889 1881 3635 3643 3644 3636
+ 1613 623710.150 3372389.650 31.25000 2 8 1881 1889 1890 1882 3636 3644 3645 3637
+ 1614 623647.650 3372327.150 31.25000 2 8 1888 1892 1893 1889 3643 3647 3648 3644
+ 1615 623710.150 3372327.150 31.25000 2 8 1889 1893 1894 1890 3644 3648 3649 3645
+ 1616 623553.900 3372233.400 31.25000 2 8 1891 1915 1916 1892 3646 3670 3671 3647
+ 1617 623647.650 3372264.650 31.25000 2 8 1892 1897 1898 1893 3647 3652 3653 3648
+ 1618 623710.150 3372264.650 31.25000 2 8 1893 1898 1899 1894 3648 3653 3654 3649
+ 1619 623647.650 3372202.150 31.25000 2 8 1897 1916 1917 1898 3652 3671 3672 3653
+ 1620 623710.150 3372202.150 31.25000 2 8 1898 1917 1918 1899 3653 3672 3673 3654
+ 1621 623803.900 3372358.400 31.25000 2 8 1882 1894 1895 1883 3637 3649 3650 3638
+ 1622 623928.900 3372358.400 31.25000 2 8 1883 1895 1896 1884 3638 3650 3651 3639
+ 1623 623803.900 3372233.400 31.25000 2 8 1894 1918 1919 1895 3649 3673 3674 3650
+ 1624 623928.900 3372233.400 31.25000 2 8 1895 1919 1920 1896 3650 3674 3675 3651
+ 1625 624116.400 3372295.900 31.25000 2 8 1884 1920 1921 1885 3639 3675 3676 3640
+ 1626 624366.400 3372295.900 31.25000 2 8 1885 1921 1922 1886 3640 3676 3677 3641
+ 1627 624616.400 3372295.900 31.25000 2 8 1886 1922 1923 1887 3641 3677 3678 3642
+ 1628 619866.400 3372045.900 31.25000 2 8 1900 1936 1937 1901 3655 3691 3692 3656
+ 1629 620116.400 3372045.900 31.25000 2 8 1901 1937 1938 1902 3656 3692 3693 3657
+ 1630 620366.400 3372045.900 31.25000 2 8 1902 1938 1939 1903 3657 3693 3694 3658
+ 1631 620616.400 3372045.900 31.25000 2 8 1903 1939 1940 1904 3658 3694 3695 3659
+ 1632 620866.400 3372045.900 31.25000 2 8 1904 1940 1941 1905 3659 3695 3696 3660
+ 1633 621116.400 3372045.900 31.25000 2 8 1905 1941 1942 1906 3660 3696 3697 3661
+ 1634 621366.400 3372045.900 31.25000 2 8 1906 1942 1943 1907 3661 3697 3698 3662
+ 1635 621616.400 3372045.900 31.25000 2 8 1907 1943 1944 1908 3662 3698 3699 3663
+ 1636 621866.400 3372045.900 31.25000 2 8 1908 1944 1945 1909 3663 3699 3700 3664
+ 1637 622116.400 3372045.900 31.25000 2 8 1909 1945 1946 1910 3664 3700 3701 3665
+ 1638 622366.400 3372045.900 31.25000 2 8 1910 1946 1947 1911 3665 3701 3702 3666
+ 1639 622616.400 3372045.900 31.25000 2 8 1911 1947 1948 1912 3666 3702 3703 3667
+ 1640 622866.400 3372045.900 31.25000 2 8 1912 1948 1949 1913 3667 3703 3704 3668
+ 1641 623116.400 3372045.900 31.25000 2 8 1913 1949 1950 1914 3668 3704 3705 3669
+ 1642 623366.400 3372045.900 31.25000 2 8 1914 1950 1951 1915 3669 3705 3706 3670
+ 1643 623553.900 3372108.400 31.25000 2 8 1915 1927 1928 1916 3670 3682 3683 3671
+ 1644 623647.650 3372139.650 31.25000 2 8 1916 1924 1925 1917 3671 3679 3680 3672
+ 1645 623710.150 3372139.650 31.25000 2 8 1917 1925 1926 1918 3672 3680 3681 3673
+ 1646 623647.650 3372077.150 31.25000 2 8 1924 1928 1929 1925 3679 3683 3684 3680
+ 1647 623710.150 3372077.150 31.25000 2 8 1925 1929 1930 1926 3680 3684 3685 3681
+ 1648 623553.900 3371983.400 31.25000 2 8 1927 1951 1952 1928 3682 3706 3707 3683
+ 1649 623647.650 3372014.650 31.25000 2 8 1928 1933 1934 1929 3683 3688 3689 3684
+ 1650 623710.150 3372014.650 31.25000 2 8 1929 1934 1935 1930 3684 3689 3690 3685
+ 1651 623647.650 3371952.150 31.25000 2 8 1933 1952 1953 1934 3688 3707 3708 3689
+ 1652 623710.150 3371952.150 31.25000 2 8 1934 1953 1954 1935 3689 3708 3709 3690
+ 1653 623803.900 3372108.400 31.25000 2 8 1918 1930 1931 1919 3673 3685 3686 3674
+ 1654 623928.900 3372108.400 31.25000 2 8 1919 1931 1932 1920 3674 3686 3687 3675
+ 1655 623803.900 3371983.400 31.25000 2 8 1930 1954 1955 1931 3685 3709 3710 3686
+ 1656 623928.900 3371983.400 31.25000 2 8 1931 1955 1956 1932 3686 3710 3711 3687
+ 1657 624116.400 3372045.900 31.25000 2 8 1920 1956 1957 1921 3675 3711 3712 3676
+ 1658 624366.400 3372045.900 31.25000 2 8 1921 1957 1958 1922 3676 3712 3713 3677
+ 1659 624616.400 3372045.900 31.25000 2 8 1922 1958 1959 1923 3677 3713 3714 3678
+ 1660 619866.400 3371795.900 31.25000 2 8 1936 1972 1973 1937 3691 3727 3728 3692
+ 1661 620116.400 3371795.900 31.25000 2 8 1937 1973 1974 1938 3692 3728 3729 3693
+ 1662 620366.400 3371795.900 31.25000 2 8 1938 1974 1975 1939 3693 3729 3730 3694
+ 1663 620616.400 3371795.900 31.25000 2 8 1939 1975 1976 1940 3694 3730 3731 3695
+ 1664 620866.400 3371795.900 31.25000 2 8 1940 1976 1977 1941 3695 3731 3732 3696
+ 1665 621116.400 3371795.900 31.25000 2 8 1941 1977 1978 1942 3696 3732 3733 3697
+ 1666 621366.400 3371795.900 31.25000 2 8 1942 1978 1979 1943 3697 3733 3734 3698
+ 1667 621616.400 3371795.900 31.25000 2 8 1943 1979 1980 1944 3698 3734 3735 3699
+ 1668 621866.400 3371795.900 31.25000 2 8 1944 1980 1981 1945 3699 3735 3736 3700
+ 1669 622116.400 3371795.900 31.25000 2 8 1945 1981 1982 1946 3700 3736 3737 3701
+ 1670 622366.400 3371795.900 31.25000 2 8 1946 1982 1983 1947 3701 3737 3738 3702
+ 1671 622616.400 3371795.900 31.25000 2 8 1947 1983 1984 1948 3702 3738 3739 3703
+ 1672 622866.400 3371795.900 31.25000 2 8 1948 1984 1985 1949 3703 3739 3740 3704
+ 1673 623116.400 3371795.900 31.25000 2 8 1949 1985 1986 1950 3704 3740 3741 3705
+ 1674 623366.400 3371795.900 31.25000 2 8 1950 1986 1987 1951 3705 3741 3742 3706
+ 1675 623553.900 3371858.400 31.25000 2 8 1951 1963 1964 1952 3706 3718 3719 3707
+ 1676 623647.650 3371889.650 31.25000 2 8 1952 1960 1961 1953 3707 3715 3716 3708
+ 1677 623710.150 3371889.650 31.25000 2 8 1953 1961 1962 1954 3708 3716 3717 3709
+ 1678 623647.650 3371827.150 31.25000 2 8 1960 1964 1965 1961 3715 3719 3720 3716
+ 1679 623710.150 3371827.150 31.25000 2 8 1961 1965 1966 1962 3716 3720 3721 3717
+ 1680 623553.900 3371733.400 31.25000 2 8 1963 1987 1988 1964 3718 3742 3743 3719
+ 1681 623647.650 3371764.650 31.25000 2 8 1964 1969 1970 1965 3719 3724 3725 3720
+ 1682 623710.150 3371764.650 31.25000 2 8 1965 1970 1971 1966 3720 3725 3726 3721
+ 1683 623647.650 3371702.150 31.25000 2 8 1969 1988 1989 1970 3724 3743 3744 3725
+ 1684 623710.150 3371702.150 31.25000 2 8 1970 1989 1990 1971 3725 3744 3745 3726
+ 1685 623803.900 3371858.400 31.25000 2 8 1954 1966 1967 1955 3709 3721 3722 3710
+ 1686 623928.900 3371858.400 31.25000 2 8 1955 1967 1968 1956 3710 3722 3723 3711
+ 1687 623803.900 3371733.400 31.25000 2 8 1966 1990 1991 1967 3721 3745 3746 3722
+ 1688 623928.900 3371733.400 31.25000 2 8 1967 1991 1992 1968 3722 3746 3747 3723
+ 1689 624116.400 3371795.900 31.25000 2 8 1956 1992 1993 1957 3711 3747 3748 3712
+ 1690 624366.400 3371795.900 31.25000 2 8 1957 1993 1994 1958 3712 3748 3749 3713
+ 1691 624616.400 3371795.900 31.25000 2 8 1958 1994 1995 1959 3713 3749 3750 3714
+ 1692 619866.400 3371545.900 31.25000 2 8 1972 2008 2009 1973 3727 3763 3764 3728
+ 1693 620116.400 3371545.900 31.25000 2 8 1973 2009 2010 1974 3728 3764 3765 3729
+ 1694 620366.400 3371545.900 31.25000 2 8 1974 2010 2011 1975 3729 3765 3766 3730
+ 1695 620616.400 3371545.900 31.25000 2 8 1975 2011 2012 1976 3730 3766 3767 3731
+ 1696 620866.400 3371545.900 31.25000 2 8 1976 2012 2013 1977 3731 3767 3768 3732
+ 1697 621116.400 3371545.900 31.25000 2 8 1977 2013 2014 1978 3732 3768 3769 3733
+ 1698 621366.400 3371545.900 31.25000 2 8 1978 2014 2015 1979 3733 3769 3770 3734
+ 1699 621616.400 3371545.900 31.25000 2 8 1979 2015 2016 1980 3734 3770 3771 3735
+ 1700 621866.400 3371545.900 31.25000 2 8 1980 2016 2017 1981 3735 3771 3772 3736
+ 1701 622116.400 3371545.900 31.25000 2 8 1981 2017 2018 1982 3736 3772 3773 3737
+ 1702 622366.400 3371545.900 31.25000 2 8 1982 2018 2019 1983 3737 3773 3774 3738
+ 1703 622616.400 3371545.900 31.25000 2 8 1983 2019 2020 1984 3738 3774 3775 3739
+ 1704 622866.400 3371545.900 31.25000 2 8 1984 2020 2021 1985 3739 3775 3776 3740
+ 1705 623116.400 3371545.900 31.25000 2 8 1985 2021 2022 1986 3740 3776 3777 3741
+ 1706 623366.400 3371545.900 31.25000 2 8 1986 2022 2023 1987 3741 3777 3778 3742
+ 1707 623553.900 3371608.400 31.25000 2 8 1987 1999 2000 1988 3742 3754 3755 3743
+ 1708 623647.650 3371639.650 31.25000 2 8 1988 1996 1997 1989 3743 3751 3752 3744
+ 1709 623710.150 3371639.650 31.25000 2 8 1989 1997 1998 1990 3744 3752 3753 3745
+ 1710 623647.650 3371577.150 31.25000 2 8 1996 2000 2001 1997 3751 3755 3756 3752
+ 1711 623710.150 3371577.150 31.25000 2 8 1997 2001 2002 1998 3752 3756 3757 3753
+ 1712 623553.900 3371483.400 31.25000 2 8 1999 2023 2024 2000 3754 3778 3779 3755
+ 1713 623647.650 3371514.650 31.25000 2 8 2000 2005 2006 2001 3755 3760 3761 3756
+ 1714 623710.150 3371514.650 31.25000 2 8 2001 2006 2007 2002 3756 3761 3762 3757
+ 1715 623647.650 3371452.150 31.25000 2 8 2005 2024 2025 2006 3760 3779 3780 3761
+ 1716 623710.150 3371452.150 31.25000 2 8 2006 2025 2026 2007 3761 3780 3781 3762
+ 1717 623803.900 3371608.400 31.25000 2 8 1990 2002 2003 1991 3745 3757 3758 3746
+ 1718 623928.900 3371608.400 31.25000 2 8 1991 2003 2004 1992 3746 3758 3759 3747
+ 1719 623803.900 3371483.400 31.25000 2 8 2002 2026 2027 2003 3757 3781 3782 3758
+ 1720 623928.900 3371483.400 31.25000 2 8 2003 2027 2028 2004 3758 3782 3783 3759
+ 1721 624116.400 3371545.900 31.25000 2 8 1992 2028 2029 1993 3747 3783 3784 3748
+ 1722 624366.400 3371545.900 31.25000 2 8 1993 2029 2030 1994 3748 3784 3785 3749
+ 1723 624616.400 3371545.900 31.25000 2 8 1994 2030 2031 1995 3749 3785 3786 3750
+ 1724 619866.400 3371295.900 31.25000 2 8 2008 2044 2045 2009 3763 3799 3800 3764
+ 1725 620116.400 3371295.900 31.25000 2 8 2009 2045 2046 2010 3764 3800 3801 3765
+ 1726 620366.400 3371295.900 31.25000 2 8 2010 2046 2047 2011 3765 3801 3802 3766
+ 1727 620616.400 3371295.900 31.25000 2 8 2011 2047 2048 2012 3766 3802 3803 3767
+ 1728 620866.400 3371295.900 31.25000 2 8 2012 2048 2049 2013 3767 3803 3804 3768
+ 1729 621116.400 3371295.900 31.25000 2 8 2013 2049 2050 2014 3768 3804 3805 3769
+ 1730 621366.400 3371295.900 31.25000 2 8 2014 2050 2051 2015 3769 3805 3806 3770
+ 1731 621616.400 3371295.900 31.25000 2 8 2015 2051 2052 2016 3770 3806 3807 3771
+ 1732 621866.400 3371295.900 31.25000 2 8 2016 2052 2053 2017 3771 3807 3808 3772
+ 1733 622116.400 3371295.900 31.25000 2 8 2017 2053 2054 2018 3772 3808 3809 3773
+ 1734 622366.400 3371295.900 31.25000 2 8 2018 2054 2055 2019 3773 3809 3810 3774
+ 1735 622616.400 3371295.900 31.25000 2 8 2019 2055 2056 2020 3774 3810 3811 3775
+ 1736 622866.400 3371295.900 31.25000 2 8 2020 2056 2057 2021 3775 3811 3812 3776
+ 1737 623116.400 3371295.900 31.25000 2 8 2021 2057 2058 2022 3776 3812 3813 3777
+ 1738 623366.400 3371295.900 31.25000 2 8 2022 2058 2059 2023 3777 3813 3814 3778
+ 1739 623553.900 3371358.400 31.25000 2 8 2023 2035 2036 2024 3778 3790 3791 3779
+ 1740 623647.650 3371389.650 31.25000 2 8 2024 2032 2033 2025 3779 3787 3788 3780
+ 1741 623710.150 3371389.650 31.25000 2 8 2025 2033 2034 2026 3780 3788 3789 3781
+ 1742 623647.650 3371327.150 31.25000 2 8 2032 2036 2037 2033 3787 3791 3792 3788
+ 1743 623710.150 3371327.150 31.25000 2 8 2033 2037 2038 2034 3788 3792 3793 3789
+ 1744 623553.900 3371233.400 31.25000 2 8 2035 2059 2060 2036 3790 3814 3815 3791
+ 1745 623647.650 3371264.650 31.25000 2 8 2036 2041 2042 2037 3791 3796 3797 3792
+ 1746 623710.150 3371264.650 31.25000 2 8 2037 2042 2043 2038 3792 3797 3798 3793
+ 1747 623647.650 3371202.150 31.25000 2 8 2041 2060 2061 2042 3796 3815 3816 3797
+ 1748 623710.150 3371202.150 31.25000 2 8 2042 2061 2062 2043 3797 3816 3817 3798
+ 1749 623803.900 3371358.400 31.25000 2 8 2026 2038 2039 2027 3781 3793 3794 3782
+ 1750 623928.900 3371358.400 31.25000 2 8 2027 2039 2040 2028 3782 3794 3795 3783
+ 1751 623803.900 3371233.400 31.25000 2 8 2038 2062 2063 2039 3793 3817 3818 3794
+ 1752 623928.900 3371233.400 31.25000 2 8 2039 2063 2064 2040 3794 3818 3819 3795
+ 1753 624116.400 3371295.900 31.25000 2 8 2028 2064 2065 2029 3783 3819 3820 3784
+ 1754 624366.400 3371295.900 31.25000 2 8 2029 2065 2066 2030 3784 3820 3821 3785
+ 1755 624616.400 3371295.900 31.25000 2 8 2030 2066 2067 2031 3785 3821 3822 3786
+ 1756 619866.400 3371045.900 31.25000 2 8 2044 2080 2081 2045 3799 3835 3836 3800
+ 1757 620116.400 3371045.900 31.25000 2 8 2045 2081 2082 2046 3800 3836 3837 3801
+ 1758 620366.400 3371045.900 31.25000 2 8 2046 2082 2083 2047 3801 3837 3838 3802
+ 1759 620616.400 3371045.900 31.25000 2 8 2047 2083 2084 2048 3802 3838 3839 3803
+ 1760 620866.400 3371045.900 31.25000 2 8 2048 2084 2085 2049 3803 3839 3840 3804
+ 1761 621116.400 3371045.900 31.25000 2 8 2049 2085 2086 2050 3804 3840 3841 3805
+ 1762 621366.400 3371045.900 31.25000 2 8 2050 2086 2087 2051 3805 3841 3842 3806
+ 1763 621616.400 3371045.900 31.25000 2 8 2051 2087 2088 2052 3806 3842 3843 3807
+ 1764 621866.400 3371045.900 31.25000 2 8 2052 2088 2089 2053 3807 3843 3844 3808
+ 1765 622116.400 3371045.900 31.25000 2 8 2053 2089 2090 2054 3808 3844 3845 3809
+ 1766 622366.400 3371045.900 31.25000 2 8 2054 2090 2091 2055 3809 3845 3846 3810
+ 1767 622616.400 3371045.900 31.25000 2 8 2055 2091 2092 2056 3810 3846 3847 3811
+ 1768 622866.400 3371045.900 31.25000 2 8 2056 2092 2093 2057 3811 3847 3848 3812
+ 1769 623116.400 3371045.900 31.25000 2 8 2057 2093 2094 2058 3812 3848 3849 3813
+ 1770 623366.400 3371045.900 31.25000 2 8 2058 2094 2095 2059 3813 3849 3850 3814
+ 1771 623553.900 3371108.400 31.25000 2 8 2059 2071 2072 2060 3814 3826 3827 3815
+ 1772 623647.650 3371139.650 31.25000 2 8 2060 2068 2069 2061 3815 3823 3824 3816
+ 1773 623710.150 3371139.650 31.25000 2 8 2061 2069 2070 2062 3816 3824 3825 3817
+ 1774 623647.650 3371077.150 31.25000 2 8 2068 2072 2073 2069 3823 3827 3828 3824
+ 1775 623710.150 3371077.150 31.25000 2 8 2069 2073 2074 2070 3824 3828 3829 3825
+ 1776 623553.900 3370983.400 31.25000 2 8 2071 2095 2096 2072 3826 3850 3851 3827
+ 1777 623647.650 3371014.650 31.25000 2 8 2072 2077 2078 2073 3827 3832 3833 3828
+ 1778 623710.150 3371014.650 31.25000 2 8 2073 2078 2079 2074 3828 3833 3834 3829
+ 1779 623647.650 3370952.150 31.25000 2 8 2077 2096 2097 2078 3832 3851 3852 3833
+ 1780 623710.150 3370952.150 31.25000 2 8 2078 2097 2098 2079 3833 3852 3853 3834
+ 1781 623803.900 3371108.400 31.25000 2 8 2062 2074 2075 2063 3817 3829 3830 3818
+ 1782 623928.900 3371108.400 31.25000 2 8 2063 2075 2076 2064 3818 3830 3831 3819
+ 1783 623803.900 3370983.400 31.25000 2 8 2074 2098 2100 2075 3829 3853 3855 3830
+ 1784 623928.900 3370983.400 31.25000 2 8 2075 2100 2102 2076 3830 3855 3857 3831
+ 1785 624116.400 3371045.900 31.25000 2 8 2064 2102 2104 2065 3819 3857 3859 3820
+ 1786 624366.400 3371045.900 31.25000 2 8 2065 2104 2105 2066 3820 3859 3860 3821
+ 1787 624616.400 3371045.900 31.25000 2 8 2066 2105 2106 2067 3821 3860 3861 3822
+ 1788 619866.400 3370795.900 31.25000 2 8 2080 2147 2148 2081 3835 3902 3903 3836
+ 1789 620116.400 3370795.900 31.25000 2 8 2081 2148 2149 2082 3836 3903 3904 3837
+ 1790 620366.400 3370795.900 31.25000 2 8 2082 2149 2150 2083 3837 3904 3905 3838
+ 1791 620616.400 3370795.900 31.25000 2 8 2083 2150 2151 2084 3838 3905 3906 3839
+ 1792 620866.400 3370795.900 31.25000 2 8 2084 2151 2152 2085 3839 3906 3907 3840
+ 1793 621116.400 3370795.900 31.25000 2 8 2085 2152 2153 2086 3840 3907 3908 3841
+ 1794 621366.400 3370795.900 31.25000 2 8 2086 2153 2154 2087 3841 3908 3909 3842
+ 1795 621616.400 3370795.900 31.25000 2 8 2087 2154 2155 2088 3842 3909 3910 3843
+ 1796 621866.400 3370795.900 31.25000 2 8 2088 2155 2156 2089 3843 3910 3911 3844
+ 1797 622116.400 3370795.900 31.25000 2 8 2089 2156 2157 2090 3844 3911 3912 3845
+ 1798 622366.400 3370795.900 31.25000 2 8 2090 2157 2158 2091 3845 3912 3913 3846
+ 1799 622616.400 3370795.900 31.25000 2 8 2091 2158 2159 2092 3846 3913 3914 3847
+ 1800 622866.400 3370795.900 31.25000 2 8 2092 2159 2160 2093 3847 3914 3915 3848
+ 1801 623116.400 3370795.900 31.25000 2 8 2093 2160 2162 2094 3848 3915 3917 3849
+ 1802 623366.400 3370795.900 31.25000 2 8 2094 2162 2163 2095 3849 3917 3918 3850
+ 1803 623553.900 3370858.400 31.25000 2 8 2095 2121 2122 2096 3850 3876 3877 3851
+ 1804 623647.650 3370889.650 31.25000 2 8 2096 2107 2108 2097 3851 3862 3863 3852
+ 1805 623710.150 3370889.650 31.25000 2 8 2097 2108 2109 2098 3852 3863 3864 3853
+ 1806 623647.650 3370827.150 31.25000 2 8 2107 2122 2123 2108 3862 3877 3878 3863
+ 1807 623710.150 3370827.150 31.25000 2 8 2108 2123 2124 2109 3863 3878 3879 3864
+ 1808 623553.900 3370733.400 31.25000 2 8 2121 2163 2164 2122 3876 3918 3919 3877
+ 1809 623647.650 3370764.650 31.25000 2 8 2122 2138 2139 2123 3877 3893 3894 3878
+ 1810 623710.150 3370764.650 31.25000 2 8 2123 2139 2140 2124 3878 3894 3895 3879
+ 1811 623647.650 3370702.150 31.25000 2 8 2138 2164 2165 2139 3893 3919 3920 3894
+ 1812 623710.150 3370702.150 31.25000 2 8 2139 2165 2166 2140 3894 3920 3921 3895
+ 1813 623772.650 3370889.650 31.25000 2 8 2098 2109 2110 2099 3853 3864 3865 3854
+ 1814 623835.150 3370889.650 31.25000 2 8 2099 2110 2112 2100 3854 3865 3867 3855
+ 1815 623772.650 3370827.150 31.25000 2 8 2109 2124 2125 2110 3864 3879 3880 3865
+ 1816 623819.525 3370842.775 31.25000 2 8 2110 2116 2117 2111 3865 3871 3872 3866
+ 1817 623850.775 3370842.775 31.25000 2 8 2111 2117 2118 2112 3866 3872 3873 3867
+ 1818 623819.525 3370811.525 31.25000 2 8 2116 2125 2126 2117 3871 3880 3881 3872
+ 1819 623850.775 3370811.525 31.25000 2 8 2117 2126 2127 2118 3872 3881 3882 3873
+ 1820 623897.650 3370889.650 31.25000 2 8 2100 2112 2114 2101 3855 3867 3869 3856
+ 1821 623960.150 3370889.650 31.25000 2 8 2101 2114 2115 2102 3856 3869 3870 3857
+ 1822 623882.025 3370842.775 31.25000 2 8 2112 2118 2119 2113 3867 3873 3874 3868
+ 1823 623913.275 3370842.775 31.25000 2 8 2113 2119 2120 2114 3868 3874 3875 3869
+ 1824 623882.025 3370811.525 31.25000 2 8 2118 2127 2128 2119 3873 3882 3883 3874
+ 1825 623913.275 3370811.525 31.25000 2 8 2119 2128 2129 2120 3874 3883 3884 3875
+ 1826 623960.150 3370827.150 31.25000 2 8 2114 2129 2130 2115 3869 3884 3885 3870
+ 1827 623772.650 3370764.650 31.25000 2 8 2124 2140 2141 2125 3879 3895 3896 3880
+ 1828 623819.525 3370780.275 31.25000 2 8 2125 2133 2134 2126 3880 3888 3889 3881
+ 1829 623850.775 3370780.275 31.25000 2 8 2126 2134 2135 2127 3881 3889 3890 3882
+ 1830 623819.525 3370749.025 31.25000 2 8 2133 2141 2142 2134 3888 3896 3897 3889
+ 1831 623850.775 3370749.025 31.25000 2 8 2134 2142 2143 2135 3889 3897 3898 3890
+ 1832 623772.650 3370702.150 31.25000 2 8 2140 2166 2167 2141 3895 3921 3922 3896
+ 1833 623835.150 3370702.150 31.25000 2 8 2141 2167 2168 2143 3896 3922 3923 3898
+ 1834 623882.025 3370780.275 31.25000 2 8 2127 2135 2136 2128 3882 3890 3891 3883
+ 1835 623913.275 3370780.275 31.25000 2 8 2128 2136 2137 2129 3883 3891 3892 3884
+ 1836 623882.025 3370749.025 31.25000 2 8 2135 2143 2144 2136 3890 3898 3899 3891
+ 1837 623913.275 3370749.025 31.25000 2 8 2136 2144 2145 2137 3891 3899 3900 3892
+ 1838 623960.150 3370764.650 31.25000 2 8 2129 2145 2146 2130 3884 3900 3901 3885
+ 1839 623897.650 3370702.150 31.25000 2 8 2143 2168 2169 2145 3898 3923 3924 3900
+ 1840 623960.150 3370702.150 31.25000 2 8 2145 2169 2170 2146 3900 3924 3925 3901
+ 1841 624053.900 3370858.400 31.25000 2 8 2102 2130 2131 2103 3857 3885 3886 3858
+ 1842 624178.900 3370858.400 31.25000 2 8 2103 2131 2132 2104 3858 3886 3887 3859
+ 1843 624053.900 3370733.400 31.25000 2 8 2130 2170 2171 2131 3885 3925 3926 3886
+ 1844 624178.900 3370733.400 31.25000 2 8 2131 2171 2172 2132 3886 3926 3927 3887
+ 1845 624366.400 3370795.900 31.25000 2 8 2104 2172 2173 2105 3859 3927 3928 3860
+ 1846 624616.400 3370795.900 31.25000 2 8 2105 2173 2174 2106 3860 3928 3929 3861
+ 1847 619866.400 3370545.900 31.25000 2 8 2147 2190 2191 2148 3902 3945 3946 3903
+ 1848 620116.400 3370545.900 31.25000 2 8 2148 2191 2192 2149 3903 3946 3947 3904
+ 1849 620366.400 3370545.900 31.25000 2 8 2149 2192 2193 2150 3904 3947 3948 3905
+ 1850 620616.400 3370545.900 31.25000 2 8 2150 2193 2194 2151 3905 3948 3949 3906
+ 1851 620866.400 3370545.900 31.25000 2 8 2151 2194 2195 2152 3906 3949 3950 3907
+ 1852 621116.400 3370545.900 31.25000 2 8 2152 2195 2196 2153 3907 3950 3951 3908
+ 1853 621366.400 3370545.900 31.25000 2 8 2153 2196 2197 2154 3908 3951 3952 3909
+ 1854 621616.400 3370545.900 31.25000 2 8 2154 2197 2198 2155 3909 3952 3953 3910
+ 1855 621866.400 3370545.900 31.25000 2 8 2155 2198 2199 2156 3910 3953 3954 3911
+ 1856 622116.400 3370545.900 31.25000 2 8 2156 2199 2200 2157 3911 3954 3955 3912
+ 1857 622366.400 3370545.900 31.25000 2 8 2157 2200 2201 2158 3912 3955 3956 3913
+ 1858 622616.400 3370545.900 31.25000 2 8 2158 2201 2202 2159 3913 3956 3957 3914
+ 1859 622866.400 3370545.900 31.25000 2 8 2159 2202 2204 2160 3914 3957 3959 3915
+ 1860 623053.900 3370608.400 31.25000 2 8 2160 2178 2179 2161 3915 3933 3934 3916
+ 1861 623178.900 3370608.400 31.25000 2 8 2161 2179 2180 2162 3916 3934 3935 3917
+ 1862 623053.900 3370483.400 31.25000 2 8 2178 2204 2206 2179 3933 3959 3961 3934
+ 1863 623178.900 3370483.400 31.25000 2 8 2179 2206 2208 2180 3934 3961 3963 3935
+ 1864 623366.400 3370545.900 31.25000 2 8 2162 2208 2210 2163 3917 3963 3965 3918
+ 1865 623553.900 3370608.400 31.25000 2 8 2163 2181 2182 2164 3918 3936 3937 3919
+ 1866 623647.650 3370639.650 31.25000 2 8 2164 2175 2176 2165 3919 3930 3931 3920
+ 1867 623710.150 3370639.650 31.25000 2 8 2165 2176 2177 2166 3920 3931 3932 3921
+ 1868 623647.650 3370577.150 31.25000 2 8 2175 2182 2183 2176 3930 3937 3938 3931
+ 1869 623710.150 3370577.150 31.25000 2 8 2176 2183 2184 2177 3931 3938 3939 3932
+ 1870 623553.900 3370483.400 31.25000 2 8 2181 2210 2211 2182 3936 3965 3966 3937
+ 1871 623647.650 3370514.650 31.25000 2 8 2182 2187 2188 2183 3937 3942 3943 3938
+ 1872 623710.150 3370514.650 31.25000 2 8 2183 2188 2189 2184 3938 3943 3944 3939
+ 1873 623647.650 3370452.150 31.25000 2 8 2187 2211 2212 2188 3942 3966 3967 3943
+ 1874 623710.150 3370452.150 31.25000 2 8 2188 2212 2213 2189 3943 3967 3968 3944
+ 1875 623803.900 3370608.400 31.25000 2 8 2166 2184 2185 2168 3921 3939 3940 3923
+ 1876 623928.900 3370608.400 31.25000 2 8 2168 2185 2186 2170 3923 3940 3941 3925
+ 1877 623803.900 3370483.400 31.25000 2 8 2184 2213 2214 2185 3939 3968 3969 3940
+ 1878 623928.900 3370483.400 31.25000 2 8 2185 2214 2215 2186 3940 3969 3970 3941
+ 1879 624116.400 3370545.900 31.25000 2 8 2170 2215 2216 2172 3925 3970 3971 3927
+ 1880 624366.400 3370545.900 31.25000 2 8 2172 2216 2217 2173 3927 3971 3972 3928
+ 1881 624616.400 3370545.900 31.25000 2 8 2173 2217 2218 2174 3928 3972 3973 3929
+ 1882 619866.400 3370295.900 31.25000 2 8 2190 2265 2266 2191 3945 4020 4021 3946
+ 1883 620116.400 3370295.900 31.25000 2 8 2191 2266 2267 2192 3946 4021 4022 3947
+ 1884 620366.400 3370295.900 31.25000 2 8 2192 2267 2268 2193 3947 4022 4023 3948
+ 1885 620616.400 3370295.900 31.25000 2 8 2193 2268 2269 2194 3948 4023 4024 3949
+ 1886 620866.400 3370295.900 31.25000 2 8 2194 2269 2270 2195 3949 4024 4025 3950
+ 1887 621116.400 3370295.900 31.25000 2 8 2195 2270 2271 2196 3950 4025 4026 3951
+ 1888 621366.400 3370295.900 31.25000 2 8 2196 2271 2272 2197 3951 4026 4027 3952
+ 1889 621616.400 3370295.900 31.25000 2 8 2197 2272 2273 2198 3952 4027 4028 3953
+ 1890 621866.400 3370295.900 31.25000 2 8 2198 2273 2274 2199 3953 4028 4029 3954
+ 1891 622116.400 3370295.900 31.25000 2 8 2199 2274 2275 2200 3954 4029 4030 3955
+ 1892 622366.400 3370295.900 31.25000 2 8 2200 2275 2276 2201 3955 4030 4031 3956
+ 1893 622616.400 3370295.900 31.25000 2 8 2201 2276 2277 2202 3956 4031 4032 3957
+ 1894 622803.900 3370358.400 31.25000 2 8 2202 2234 2235 2203 3957 3989 3990 3958
+ 1895 622928.900 3370358.400 31.25000 2 8 2203 2235 2236 2204 3958 3990 3991 3959
+ 1896 622803.900 3370233.400 31.25000 2 8 2234 2277 2278 2235 3989 4032 4033 3990
+ 1897 622928.900 3370233.400 31.25000 2 8 2235 2278 2279 2236 3990 4033 4034 3991
+ 1898 623022.650 3370389.650 31.25000 2 8 2204 2219 2220 2205 3959 3974 3975 3960
+ 1899 623085.150 3370389.650 31.25000 2 8 2205 2220 2222 2206 3960 3975 3977 3961
+ 1900 623022.650 3370327.150 31.25000 2 8 2219 2236 2237 2220 3974 3991 3992 3975
+ 1901 623069.525 3370342.775 31.25000 2 8 2220 2229 2230 2221 3975 3984 3985 3976
+ 1902 623100.775 3370342.775 31.25000 2 8 2221 2230 2231 2222 3976 3985 3986 3977
+ 1903 623069.525 3370311.525 31.25000 2 8 2229 2237 2238 2230 3984 3992 3993 3985
+ 1904 623100.775 3370311.525 31.25000 2 8 2230 2238 2239 2231 3985 3993 3994 3986
+ 1905 623147.650 3370389.650 31.25000 2 8 2206 2222 2224 2207 3961 3977 3979 3962
+ 1906 623210.150 3370389.650 31.25000 2 8 2207 2224 2225 2208 3962 3979 3980 3963
+ 1907 623132.025 3370342.775 31.25000 2 8 2222 2231 2232 2223 3977 3986 3987 3978
+ 1908 623163.275 3370342.775 31.25000 2 8 2223 2232 2233 2224 3978 3987 3988 3979
+ 1909 623132.025 3370311.525 31.25000 2 8 2231 2239 2240 2232 3986 3994 3995 3987
+ 1910 623163.275 3370311.525 31.25000 2 8 2232 2240 2241 2233 3987 3995 3996 3988
+ 1911 623210.150 3370327.150 31.25000 2 8 2224 2241 2242 2225 3979 3996 3997 3980
+ 1912 623022.650 3370264.650 31.25000 2 8 2236 2255 2256 2237 3991 4010 4011 3992
+ 1913 623069.525 3370280.275 31.25000 2 8 2237 2250 2251 2238 3992 4005 4006 3993
+ 1914 623100.775 3370280.275 31.25000 2 8 2238 2251 2252 2239 3993 4006 4007 3994
+ 1915 623069.525 3370249.025 31.25000 2 8 2250 2256 2257 2251 4005 4011 4012 4006
+ 1916 623100.775 3370249.025 31.25000 2 8 2251 2257 2258 2252 4006 4012 4013 4007
+ 1917 623022.650 3370202.150 31.25000 2 8 2255 2279 2280 2256 4010 4034 4035 4011
+ 1918 623085.150 3370202.150 31.25000 2 8 2256 2280 2281 2258 4011 4035 4036 4013
+ 1919 623132.025 3370280.275 31.25000 2 8 2239 2252 2253 2240 3994 4007 4008 3995
+ 1920 623163.275 3370280.275 31.25000 2 8 2240 2253 2254 2241 3995 4008 4009 3996
+ 1921 623132.025 3370249.025 31.25000 2 8 2252 2258 2259 2253 4007 4013 4014 4008
+ 1922 623163.275 3370249.025 31.25000 2 8 2253 2259 2260 2254 4008 4014 4015 4009
+ 1923 623210.150 3370264.650 31.25000 2 8 2241 2260 2261 2242 3996 4015 4016 3997
+ 1924 623147.650 3370202.150 31.25000 2 8 2258 2281 2282 2260 4013 4036 4037 4015
+ 1925 623210.150 3370202.150 31.25000 2 8 2260 2282 2283 2261 4015 4037 4038 4016
+ 1926 623303.900 3370358.400 31.25000 2 8 2208 2242 2243 2209 3963 3997 3998 3964
+ 1927 623428.900 3370358.400 31.25000 2 8 2209 2243 2244 2210 3964 3998 3999 3965
+ 1928 623303.900 3370233.400 31.25000 2 8 2242 2283 2284 2243 3997 4038 4039 3998
+ 1929 623428.900 3370233.400 31.25000 2 8 2243 2284 2285 2244 3998 4039 4040 3999
+ 1930 623553.900 3370358.400 31.25000 2 8 2210 2244 2245 2211 3965 3999 4000 3966
+ 1931 623647.650 3370389.650 31.25000 2 8 2211 2226 2227 2212 3966 3981 3982 3967
+ 1932 623710.150 3370389.650 31.25000 2 8 2212 2227 2228 2213 3967 3982 3983 3968
+ 1933 623647.650 3370327.150 31.25000 2 8 2226 2245 2246 2227 3981 4000 4001 3982
+ 1934 623710.150 3370327.150 31.25000 2 8 2227 2246 2247 2228 3982 4001 4002 3983
+ 1935 623553.900 3370233.400 31.25000 2 8 2244 2285 2286 2245 3999 4040 4041 4000
+ 1936 623647.650 3370264.650 31.25000 2 8 2245 2262 2263 2246 4000 4017 4018 4001
+ 1937 623710.150 3370264.650 31.25000 2 8 2246 2263 2264 2247 4001 4018 4019 4002
+ 1938 623647.650 3370202.150 31.25000 2 8 2262 2286 2287 2263 4017 4041 4042 4018
+ 1939 623710.150 3370202.150 31.25000 2 8 2263 2287 2288 2264 4018 4042 4043 4019
+ 1940 623803.900 3370358.400 31.25000 2 8 2213 2247 2248 2214 3968 4002 4003 3969
+ 1941 623928.900 3370358.400 31.25000 2 8 2214 2248 2249 2215 3969 4003 4004 3970
+ 1942 623803.900 3370233.400 31.25000 2 8 2247 2288 2289 2248 4002 4043 4044 4003
+ 1943 623928.900 3370233.400 31.25000 2 8 2248 2289 2290 2249 4003 4044 4045 4004
+ 1944 624116.400 3370295.900 31.25000 2 8 2215 2290 2291 2216 3970 4045 4046 3971
+ 1945 624366.400 3370295.900 31.25000 2 8 2216 2291 2292 2217 3971 4046 4047 3972
+ 1946 624616.400 3370295.900 31.25000 2 8 2217 2292 2293 2218 3972 4047 4048 3973
+ 1947 619866.400 3370045.900 31.25000 2 8 2265 2309 2310 2266 4020 4064 4065 4021
+ 1948 620116.400 3370045.900 31.25000 2 8 2266 2310 2311 2267 4021 4065 4066 4022
+ 1949 620366.400 3370045.900 31.25000 2 8 2267 2311 2312 2268 4022 4066 4067 4023
+ 1950 620616.400 3370045.900 31.25000 2 8 2268 2312 2313 2269 4023 4067 4068 4024
+ 1951 620866.400 3370045.900 31.25000 2 8 2269 2313 2314 2270 4024 4068 4069 4025
+ 1952 621116.400 3370045.900 31.25000 2 8 2270 2314 2315 2271 4025 4069 4070 4026
+ 1953 621366.400 3370045.900 31.25000 2 8 2271 2315 2316 2272 4026 4070 4071 4027
+ 1954 621616.400 3370045.900 31.25000 2 8 2272 2316 2317 2273 4027 4071 4072 4028
+ 1955 621866.400 3370045.900 31.25000 2 8 2273 2317 2318 2274 4028 4072 4073 4029
+ 1956 622116.400 3370045.900 31.25000 2 8 2274 2318 2319 2275 4029 4073 4074 4030
+ 1957 622366.400 3370045.900 31.25000 2 8 2275 2319 2320 2276 4030 4074 4075 4031
+ 1958 622616.400 3370045.900 31.25000 2 8 2276 2320 2321 2277 4031 4075 4076 4032
+ 1959 622866.400 3370045.900 31.25000 2 8 2277 2321 2322 2279 4032 4076 4077 4034
+ 1960 623053.900 3370108.400 31.25000 2 8 2279 2297 2298 2281 4034 4052 4053 4036
+ 1961 623178.900 3370108.400 31.25000 2 8 2281 2298 2299 2283 4036 4053 4054 4038
+ 1962 623053.900 3369983.400 31.25000 2 8 2297 2322 2323 2298 4052 4077 4078 4053
+ 1963 623178.900 3369983.400 31.25000 2 8 2298 2323 2324 2299 4053 4078 4079 4054
+ 1964 623366.400 3370045.900 31.25000 2 8 2283 2324 2325 2285 4038 4079 4080 4040
+ 1965 623553.900 3370108.400 31.25000 2 8 2285 2300 2301 2286 4040 4055 4056 4041
+ 1966 623647.650 3370139.650 31.25000 2 8 2286 2294 2295 2287 4041 4049 4050 4042
+ 1967 623710.150 3370139.650 31.25000 2 8 2287 2295 2296 2288 4042 4050 4051 4043
+ 1968 623647.650 3370077.150 31.25000 2 8 2294 2301 2302 2295 4049 4056 4057 4050
+ 1969 623710.150 3370077.150 31.25000 2 8 2295 2302 2303 2296 4050 4057 4058 4051
+ 1970 623553.900 3369983.400 31.25000 2 8 2300 2325 2326 2301 4055 4080 4081 4056
+ 1971 623647.650 3370014.650 31.25000 2 8 2301 2306 2307 2302 4056 4061 4062 4057
+ 1972 623710.150 3370014.650 31.25000 2 8 2302 2307 2308 2303 4057 4062 4063 4058
+ 1973 623647.650 3369952.150 31.25000 2 8 2306 2326 2327 2307 4061 4081 4082 4062
+ 1974 623710.150 3369952.150 31.25000 2 8 2307 2327 2328 2308 4062 4082 4083 4063
+ 1975 623803.900 3370108.400 31.25000 2 8 2288 2303 2304 2289 4043 4058 4059 4044
+ 1976 623928.900 3370108.400 31.25000 2 8 2289 2304 2305 2290 4044 4059 4060 4045
+ 1977 623803.900 3369983.400 31.25000 2 8 2303 2328 2329 2304 4058 4083 4084 4059
+ 1978 623928.900 3369983.400 31.25000 2 8 2304 2329 2330 2305 4059 4084 4085 4060
+ 1979 624116.400 3370045.900 31.25000 2 8 2290 2330 2331 2291 4045 4085 4086 4046
+ 1980 624366.400 3370045.900 31.25000 2 8 2291 2331 2332 2292 4046 4086 4087 4047
+ 1981 624616.400 3370045.900 31.25000 2 8 2292 2332 2333 2293 4047 4087 4088 4048
+ 1982 619866.400 3369795.900 31.25000 2 8 2309 2346 2347 2310 4064 4101 4102 4065
+ 1983 620116.400 3369795.900 31.25000 2 8 2310 2347 2348 2311 4065 4102 4103 4066
+ 1984 620366.400 3369795.900 31.25000 2 8 2311 2348 2349 2312 4066 4103 4104 4067
+ 1985 620616.400 3369795.900 31.25000 2 8 2312 2349 2350 2313 4067 4104 4105 4068
+ 1986 620866.400 3369795.900 31.25000 2 8 2313 2350 2351 2314 4068 4105 4106 4069
+ 1987 621116.400 3369795.900 31.25000 2 8 2314 2351 2352 2315 4069 4106 4107 4070
+ 1988 621366.400 3369795.900 31.25000 2 8 2315 2352 2353 2316 4070 4107 4108 4071
+ 1989 621616.400 3369795.900 31.25000 2 8 2316 2353 2354 2317 4071 4108 4109 4072
+ 1990 621866.400 3369795.900 31.25000 2 8 2317 2354 2355 2318 4072 4109 4110 4073
+ 1991 622116.400 3369795.900 31.25000 2 8 2318 2355 2356 2319 4073 4110 4111 4074
+ 1992 622366.400 3369795.900 31.25000 2 8 2319 2356 2357 2320 4074 4111 4112 4075
+ 1993 622616.400 3369795.900 31.25000 2 8 2320 2357 2358 2321 4075 4112 4113 4076
+ 1994 622866.400 3369795.900 31.25000 2 8 2321 2358 2359 2322 4076 4113 4114 4077
+ 1995 623116.400 3369795.900 31.25000 2 8 2322 2359 2360 2324 4077 4114 4115 4079
+ 1996 623366.400 3369795.900 31.25000 2 8 2324 2360 2361 2325 4079 4115 4116 4080
+ 1997 623553.900 3369858.400 31.25000 2 8 2325 2337 2338 2326 4080 4092 4093 4081
+ 1998 623647.650 3369889.650 31.25000 2 8 2326 2334 2335 2327 4081 4089 4090 4082
+ 1999 623710.150 3369889.650 31.25000 2 8 2327 2335 2336 2328 4082 4090 4091 4083
+ 2000 623647.650 3369827.150 31.25000 2 8 2334 2338 2339 2335 4089 4093 4094 4090
+ 2001 623710.150 3369827.150 31.25000 2 8 2335 2339 2340 2336 4090 4094 4095 4091
+ 2002 623553.900 3369733.400 31.25000 2 8 2337 2361 2362 2338 4092 4116 4117 4093
+ 2003 623647.650 3369764.650 31.25000 2 8 2338 2343 2344 2339 4093 4098 4099 4094
+ 2004 623710.150 3369764.650 31.25000 2 8 2339 2344 2345 2340 4094 4099 4100 4095
+ 2005 623647.650 3369702.150 31.25000 2 8 2343 2362 2363 2344 4098 4117 4118 4099
+ 2006 623710.150 3369702.150 31.25000 2 8 2344 2363 2364 2345 4099 4118 4119 4100
+ 2007 623803.900 3369858.400 31.25000 2 8 2328 2340 2341 2329 4083 4095 4096 4084
+ 2008 623928.900 3369858.400 31.25000 2 8 2329 2341 2342 2330 4084 4096 4097 4085
+ 2009 623803.900 3369733.400 31.25000 2 8 2340 2364 2365 2341 4095 4119 4120 4096
+ 2010 623928.900 3369733.400 31.25000 2 8 2341 2365 2366 2342 4096 4120 4121 4097
+ 2011 624116.400 3369795.900 31.25000 2 8 2330 2366 2367 2331 4085 4121 4122 4086
+ 2012 624366.400 3369795.900 31.25000 2 8 2331 2367 2368 2332 4086 4122 4123 4087
+ 2013 624616.400 3369795.900 31.25000 2 8 2332 2368 2369 2333 4087 4123 4124 4088
+ 2014 619866.400 3369545.900 31.25000 2 8 2346 2382 2383 2347 4101 4137 4138 4102
+ 2015 620116.400 3369545.900 31.25000 2 8 2347 2383 2384 2348 4102 4138 4139 4103
+ 2016 620366.400 3369545.900 31.25000 2 8 2348 2384 2385 2349 4103 4139 4140 4104
+ 2017 620616.400 3369545.900 31.25000 2 8 2349 2385 2386 2350 4104 4140 4141 4105
+ 2018 620866.400 3369545.900 31.25000 2 8 2350 2386 2387 2351 4105 4141 4142 4106
+ 2019 621116.400 3369545.900 31.25000 2 8 2351 2387 2388 2352 4106 4142 4143 4107
+ 2020 621366.400 3369545.900 31.25000 2 8 2352 2388 2389 2353 4107 4143 4144 4108
+ 2021 621616.400 3369545.900 31.25000 2 8 2353 2389 2390 2354 4108 4144 4145 4109
+ 2022 621866.400 3369545.900 31.25000 2 8 2354 2390 2391 2355 4109 4145 4146 4110
+ 2023 622116.400 3369545.900 31.25000 2 8 2355 2391 2392 2356 4110 4146 4147 4111
+ 2024 622366.400 3369545.900 31.25000 2 8 2356 2392 2393 2357 4111 4147 4148 4112
+ 2025 622616.400 3369545.900 31.25000 2 8 2357 2393 2394 2358 4112 4148 4149 4113
+ 2026 622866.400 3369545.900 31.25000 2 8 2358 2394 2395 2359 4113 4149 4150 4114
+ 2027 623116.400 3369545.900 31.25000 2 8 2359 2395 2396 2360 4114 4150 4151 4115
+ 2028 623366.400 3369545.900 31.25000 2 8 2360 2396 2397 2361 4115 4151 4152 4116
+ 2029 623553.900 3369608.400 31.25000 2 8 2361 2373 2374 2362 4116 4128 4129 4117
+ 2030 623647.650 3369639.650 31.25000 2 8 2362 2370 2371 2363 4117 4125 4126 4118
+ 2031 623710.150 3369639.650 31.25000 2 8 2363 2371 2372 2364 4118 4126 4127 4119
+ 2032 623647.650 3369577.150 31.25000 2 8 2370 2374 2375 2371 4125 4129 4130 4126
+ 2033 623710.150 3369577.150 31.25000 2 8 2371 2375 2376 2372 4126 4130 4131 4127
+ 2034 623553.900 3369483.400 31.25000 2 8 2373 2397 2398 2374 4128 4152 4153 4129
+ 2035 623647.650 3369514.650 31.25000 2 8 2374 2379 2380 2375 4129 4134 4135 4130
+ 2036 623710.150 3369514.650 31.25000 2 8 2375 2380 2381 2376 4130 4135 4136 4131
+ 2037 623647.650 3369452.150 31.25000 2 8 2379 2398 2399 2380 4134 4153 4154 4135
+ 2038 623710.150 3369452.150 31.25000 2 8 2380 2399 2400 2381 4135 4154 4155 4136
+ 2039 623803.900 3369608.400 31.25000 2 8 2364 2376 2377 2365 4119 4131 4132 4120
+ 2040 623928.900 3369608.400 31.25000 2 8 2365 2377 2378 2366 4120 4132 4133 4121
+ 2041 623803.900 3369483.400 31.25000 2 8 2376 2400 2401 2377 4131 4155 4156 4132
+ 2042 623928.900 3369483.400 31.25000 2 8 2377 2401 2402 2378 4132 4156 4157 4133
+ 2043 624116.400 3369545.900 31.25000 2 8 2366 2402 2403 2367 4121 4157 4158 4122
+ 2044 624366.400 3369545.900 31.25000 2 8 2367 2403 2404 2368 4122 4158 4159 4123
+ 2045 624616.400 3369545.900 31.25000 2 8 2368 2404 2405 2369 4123 4159 4160 4124
+ 2046 619866.400 3369295.900 31.25000 2 8 2382 2418 2419 2383 4137 4173 4174 4138
+ 2047 620116.400 3369295.900 31.25000 2 8 2383 2419 2420 2384 4138 4174 4175 4139
+ 2048 620366.400 3369295.900 31.25000 2 8 2384 2420 2421 2385 4139 4175 4176 4140
+ 2049 620616.400 3369295.900 31.25000 2 8 2385 2421 2422 2386 4140 4176 4177 4141
+ 2050 620866.400 3369295.900 31.25000 2 8 2386 2422 2423 2387 4141 4177 4178 4142
+ 2051 621116.400 3369295.900 31.25000 2 8 2387 2423 2424 2388 4142 4178 4179 4143
+ 2052 621366.400 3369295.900 31.25000 2 8 2388 2424 2425 2389 4143 4179 4180 4144
+ 2053 621616.400 3369295.900 31.25000 2 8 2389 2425 2426 2390 4144 4180 4181 4145
+ 2054 621866.400 3369295.900 31.25000 2 8 2390 2426 2427 2391 4145 4181 4182 4146
+ 2055 622116.400 3369295.900 31.25000 2 8 2391 2427 2428 2392 4146 4182 4183 4147
+ 2056 622366.400 3369295.900 31.25000 2 8 2392 2428 2429 2393 4147 4183 4184 4148
+ 2057 622616.400 3369295.900 31.25000 2 8 2393 2429 2430 2394 4148 4184 4185 4149
+ 2058 622866.400 3369295.900 31.25000 2 8 2394 2430 2431 2395 4149 4185 4186 4150
+ 2059 623116.400 3369295.900 31.25000 2 8 2395 2431 2432 2396 4150 4186 4187 4151
+ 2060 623366.400 3369295.900 31.25000 2 8 2396 2432 2433 2397 4151 4187 4188 4152
+ 2061 623553.900 3369358.400 31.25000 2 8 2397 2409 2410 2398 4152 4164 4165 4153
+ 2062 623647.650 3369389.650 31.25000 2 8 2398 2406 2407 2399 4153 4161 4162 4154
+ 2063 623710.150 3369389.650 31.25000 2 8 2399 2407 2408 2400 4154 4162 4163 4155
+ 2064 623647.650 3369327.150 31.25000 2 8 2406 2410 2411 2407 4161 4165 4166 4162
+ 2065 623710.150 3369327.150 31.25000 2 8 2407 2411 2412 2408 4162 4166 4167 4163
+ 2066 623553.900 3369233.400 31.25000 2 8 2409 2433 2434 2410 4164 4188 4189 4165
+ 2067 623647.650 3369264.650 31.25000 2 8 2410 2415 2416 2411 4165 4170 4171 4166
+ 2068 623710.150 3369264.650 31.25000 2 8 2411 2416 2417 2412 4166 4171 4172 4167
+ 2069 623647.650 3369202.150 31.25000 2 8 2415 2434 2435 2416 4170 4189 4190 4171
+ 2070 623710.150 3369202.150 31.25000 2 8 2416 2435 2436 2417 4171 4190 4191 4172
+ 2071 623803.900 3369358.400 31.25000 2 8 2400 2412 2413 2401 4155 4167 4168 4156
+ 2072 623928.900 3369358.400 31.25000 2 8 2401 2413 2414 2402 4156 4168 4169 4157
+ 2073 623803.900 3369233.400 31.25000 2 8 2412 2436 2437 2413 4167 4191 4192 4168
+ 2074 623928.900 3369233.400 31.25000 2 8 2413 2437 2438 2414 4168 4192 4193 4169
+ 2075 624116.400 3369295.900 31.25000 2 8 2402 2438 2439 2403 4157 4193 4194 4158
+ 2076 624366.400 3369295.900 31.25000 2 8 2403 2439 2440 2404 4158 4194 4195 4159
+ 2077 624616.400 3369295.900 31.25000 2 8 2404 2440 2441 2405 4159 4195 4196 4160
+ 2078 619866.400 3369045.900 31.25000 2 8 2418 2454 2455 2419 4173 4209 4210 4174
+ 2079 620116.400 3369045.900 31.25000 2 8 2419 2455 2456 2420 4174 4210 4211 4175
+ 2080 620366.400 3369045.900 31.25000 2 8 2420 2456 2457 2421 4175 4211 4212 4176
+ 2081 620616.400 3369045.900 31.25000 2 8 2421 2457 2458 2422 4176 4212 4213 4177
+ 2082 620866.400 3369045.900 31.25000 2 8 2422 2458 2459 2423 4177 4213 4214 4178
+ 2083 621116.400 3369045.900 31.25000 2 8 2423 2459 2460 2424 4178 4214 4215 4179
+ 2084 621366.400 3369045.900 31.25000 2 8 2424 2460 2461 2425 4179 4215 4216 4180
+ 2085 621616.400 3369045.900 31.25000 2 8 2425 2461 2462 2426 4180 4216 4217 4181
+ 2086 621866.400 3369045.900 31.25000 2 8 2426 2462 2463 2427 4181 4217 4218 4182
+ 2087 622116.400 3369045.900 31.25000 2 8 2427 2463 2464 2428 4182 4218 4219 4183
+ 2088 622366.400 3369045.900 31.25000 2 8 2428 2464 2465 2429 4183 4219 4220 4184
+ 2089 622616.400 3369045.900 31.25000 2 8 2429 2465 2466 2430 4184 4220 4221 4185
+ 2090 622866.400 3369045.900 31.25000 2 8 2430 2466 2467 2431 4185 4221 4222 4186
+ 2091 623116.400 3369045.900 31.25000 2 8 2431 2467 2468 2432 4186 4222 4223 4187
+ 2092 623366.400 3369045.900 31.25000 2 8 2432 2468 2469 2433 4187 4223 4224 4188
+ 2093 623553.900 3369108.400 31.25000 2 8 2433 2445 2446 2434 4188 4200 4201 4189
+ 2094 623647.650 3369139.650 31.25000 2 8 2434 2442 2443 2435 4189 4197 4198 4190
+ 2095 623710.150 3369139.650 31.25000 2 8 2435 2443 2444 2436 4190 4198 4199 4191
+ 2096 623647.650 3369077.150 31.25000 2 8 2442 2446 2447 2443 4197 4201 4202 4198
+ 2097 623710.150 3369077.150 31.25000 2 8 2443 2447 2448 2444 4198 4202 4203 4199
+ 2098 623553.900 3368983.400 31.25000 2 8 2445 2469 2470 2446 4200 4224 4225 4201
+ 2099 623647.650 3369014.650 31.25000 2 8 2446 2451 2452 2447 4201 4206 4207 4202
+ 2100 623710.150 3369014.650 31.25000 2 8 2447 2452 2453 2448 4202 4207 4208 4203
+ 2101 623647.650 3368952.150 31.25000 2 8 2451 2470 2471 2452 4206 4225 4226 4207
+ 2102 623710.150 3368952.150 31.25000 2 8 2452 2471 2472 2453 4207 4226 4227 4208
+ 2103 623803.900 3369108.400 31.25000 2 8 2436 2448 2449 2437 4191 4203 4204 4192
+ 2104 623928.900 3369108.400 31.25000 2 8 2437 2449 2450 2438 4192 4204 4205 4193
+ 2105 623803.900 3368983.400 31.25000 2 8 2448 2472 2473 2449 4203 4227 4228 4204
+ 2106 623928.900 3368983.400 31.25000 2 8 2449 2473 2474 2450 4204 4228 4229 4205
+ 2107 624116.400 3369045.900 31.25000 2 8 2438 2474 2475 2439 4193 4229 4230 4194
+ 2108 624366.400 3369045.900 31.25000 2 8 2439 2475 2476 2440 4194 4230 4231 4195
+ 2109 624616.400 3369045.900 31.25000 2 8 2440 2476 2477 2441 4195 4231 4232 4196
+ 2110 619866.400 3368795.900 31.25000 2 8 2454 2490 2491 2455 4209 4245 4246 4210
+ 2111 620116.400 3368795.900 31.25000 2 8 2455 2491 2492 2456 4210 4246 4247 4211
+ 2112 620366.400 3368795.900 31.25000 2 8 2456 2492 2493 2457 4211 4247 4248 4212
+ 2113 620616.400 3368795.900 31.25000 2 8 2457 2493 2494 2458 4212 4248 4249 4213
+ 2114 620866.400 3368795.900 31.25000 2 8 2458 2494 2495 2459 4213 4249 4250 4214
+ 2115 621116.400 3368795.900 31.25000 2 8 2459 2495 2496 2460 4214 4250 4251 4215
+ 2116 621366.400 3368795.900 31.25000 2 8 2460 2496 2497 2461 4215 4251 4252 4216
+ 2117 621616.400 3368795.900 31.25000 2 8 2461 2497 2498 2462 4216 4252 4253 4217
+ 2118 621866.400 3368795.900 31.25000 2 8 2462 2498 2499 2463 4217 4253 4254 4218
+ 2119 622116.400 3368795.900 31.25000 2 8 2463 2499 2500 2464 4218 4254 4255 4219
+ 2120 622366.400 3368795.900 31.25000 2 8 2464 2500 2501 2465 4219 4255 4256 4220
+ 2121 622616.400 3368795.900 31.25000 2 8 2465 2501 2502 2466 4220 4256 4257 4221
+ 2122 622866.400 3368795.900 31.25000 2 8 2466 2502 2503 2467 4221 4257 4258 4222
+ 2123 623116.400 3368795.900 31.25000 2 8 2467 2503 2504 2468 4222 4258 4259 4223
+ 2124 623366.400 3368795.900 31.25000 2 8 2468 2504 2505 2469 4223 4259 4260 4224
+ 2125 623553.900 3368858.400 31.25000 2 8 2469 2481 2482 2470 4224 4236 4237 4225
+ 2126 623647.650 3368889.650 31.25000 2 8 2470 2478 2479 2471 4225 4233 4234 4226
+ 2127 623710.150 3368889.650 31.25000 2 8 2471 2479 2480 2472 4226 4234 4235 4227
+ 2128 623647.650 3368827.150 31.25000 2 8 2478 2482 2483 2479 4233 4237 4238 4234
+ 2129 623710.150 3368827.150 31.25000 2 8 2479 2483 2484 2480 4234 4238 4239 4235
+ 2130 623553.900 3368733.400 31.25000 2 8 2481 2505 2506 2482 4236 4260 4261 4237
+ 2131 623647.650 3368764.650 31.25000 2 8 2482 2487 2488 2483 4237 4242 4243 4238
+ 2132 623710.150 3368764.650 31.25000 2 8 2483 2488 2489 2484 4238 4243 4244 4239
+ 2133 623647.650 3368702.150 31.25000 2 8 2487 2506 2507 2488 4242 4261 4262 4243
+ 2134 623710.150 3368702.150 31.25000 2 8 2488 2507 2508 2489 4243 4262 4263 4244
+ 2135 623803.900 3368858.400 31.25000 2 8 2472 2484 2485 2473 4227 4239 4240 4228
+ 2136 623928.900 3368858.400 31.25000 2 8 2473 2485 2486 2474 4228 4240 4241 4229
+ 2137 623803.900 3368733.400 31.25000 2 8 2484 2508 2509 2485 4239 4263 4264 4240
+ 2138 623928.900 3368733.400 31.25000 2 8 2485 2509 2510 2486 4240 4264 4265 4241
+ 2139 624116.400 3368795.900 31.25000 2 8 2474 2510 2511 2475 4229 4265 4266 4230
+ 2140 624366.400 3368795.900 31.25000 2 8 2475 2511 2512 2476 4230 4266 4267 4231
+ 2141 624616.400 3368795.900 31.25000 2 8 2476 2512 2513 2477 4231 4267 4268 4232
+ 2142 619866.400 3368545.900 31.25000 2 8 2490 2526 2527 2491 4245 4281 4282 4246
+ 2143 620116.400 3368545.900 31.25000 2 8 2491 2527 2528 2492 4246 4282 4283 4247
+ 2144 620366.400 3368545.900 31.25000 2 8 2492 2528 2529 2493 4247 4283 4284 4248
+ 2145 620616.400 3368545.900 31.25000 2 8 2493 2529 2530 2494 4248 4284 4285 4249
+ 2146 620866.400 3368545.900 31.25000 2 8 2494 2530 2531 2495 4249 4285 4286 4250
+ 2147 621116.400 3368545.900 31.25000 2 8 2495 2531 2532 2496 4250 4286 4287 4251
+ 2148 621366.400 3368545.900 31.25000 2 8 2496 2532 2533 2497 4251 4287 4288 4252
+ 2149 621616.400 3368545.900 31.25000 2 8 2497 2533 2534 2498 4252 4288 4289 4253
+ 2150 621866.400 3368545.900 31.25000 2 8 2498 2534 2535 2499 4253 4289 4290 4254
+ 2151 622116.400 3368545.900 31.25000 2 8 2499 2535 2536 2500 4254 4290 4291 4255
+ 2152 622366.400 3368545.900 31.25000 2 8 2500 2536 2537 2501 4255 4291 4292 4256
+ 2153 622616.400 3368545.900 31.25000 2 8 2501 2537 2538 2502 4256 4292 4293 4257
+ 2154 622866.400 3368545.900 31.25000 2 8 2502 2538 2539 2503 4257 4293 4294 4258
+ 2155 623116.400 3368545.900 31.25000 2 8 2503 2539 2540 2504 4258 4294 4295 4259
+ 2156 623366.400 3368545.900 31.25000 2 8 2504 2540 2542 2505 4259 4295 4297 4260
+ 2157 623553.900 3368608.400 31.25000 2 8 2505 2517 2518 2506 4260 4272 4273 4261
+ 2158 623647.650 3368639.650 31.25000 2 8 2506 2514 2515 2507 4261 4269 4270 4262
+ 2159 623710.150 3368639.650 31.25000 2 8 2507 2515 2516 2508 4262 4270 4271 4263
+ 2160 623647.650 3368577.150 31.25000 2 8 2514 2518 2519 2515 4269 4273 4274 4270
+ 2161 623710.150 3368577.150 31.25000 2 8 2515 2519 2520 2516 4270 4274 4275 4271
+ 2162 623553.900 3368483.400 31.25000 2 8 2517 2542 2543 2518 4272 4297 4298 4273
+ 2163 623647.650 3368514.650 31.25000 2 8 2518 2523 2524 2519 4273 4278 4279 4274
+ 2164 623710.150 3368514.650 31.25000 2 8 2519 2524 2525 2520 4274 4279 4280 4275
+ 2165 623647.650 3368452.150 31.25000 2 8 2523 2543 2544 2524 4278 4298 4299 4279
+ 2166 623710.150 3368452.150 31.25000 2 8 2524 2544 2545 2525 4279 4299 4300 4280
+ 2167 623803.900 3368608.400 31.25000 2 8 2508 2520 2521 2509 4263 4275 4276 4264
+ 2168 623928.900 3368608.400 31.25000 2 8 2509 2521 2522 2510 4264 4276 4277 4265
+ 2169 623803.900 3368483.400 31.25000 2 8 2520 2545 2546 2521 4275 4300 4301 4276
+ 2170 623928.900 3368483.400 31.25000 2 8 2521 2546 2547 2522 4276 4301 4302 4277
+ 2171 624116.400 3368545.900 31.25000 2 8 2510 2547 2548 2511 4265 4302 4303 4266
+ 2172 624366.400 3368545.900 31.25000 2 8 2511 2548 2549 2512 4266 4303 4304 4267
+ 2173 624616.400 3368545.900 31.25000 2 8 2512 2549 2550 2513 4267 4304 4305 4268
+ 2174 619866.400 3368295.900 31.25000 2 8 2526 2565 2566 2527 4281 4320 4321 4282
+ 2175 620116.400 3368295.900 31.25000 2 8 2527 2566 2567 2528 4282 4321 4322 4283
+ 2176 620366.400 3368295.900 31.25000 2 8 2528 2567 2568 2529 4283 4322 4323 4284
+ 2177 620616.400 3368295.900 31.25000 2 8 2529 2568 2569 2530 4284 4323 4324 4285
+ 2178 620866.400 3368295.900 31.25000 2 8 2530 2569 2570 2531 4285 4324 4325 4286
+ 2179 621116.400 3368295.900 31.25000 2 8 2531 2570 2571 2532 4286 4325 4326 4287
+ 2180 621366.400 3368295.900 31.25000 2 8 2532 2571 2572 2533 4287 4326 4327 4288
+ 2181 621616.400 3368295.900 31.25000 2 8 2533 2572 2573 2534 4288 4327 4328 4289
+ 2182 621866.400 3368295.900 31.25000 2 8 2534 2573 2574 2535 4289 4328 4329 4290
+ 2183 622116.400 3368295.900 31.25000 2 8 2535 2574 2575 2536 4290 4329 4330 4291
+ 2184 622366.400 3368295.900 31.25000 2 8 2536 2575 2576 2537 4291 4330 4331 4292
+ 2185 622616.400 3368295.900 31.25000 2 8 2537 2576 2577 2538 4292 4331 4332 4293
+ 2186 622866.400 3368295.900 31.25000 2 8 2538 2577 2578 2539 4293 4332 4333 4294
+ 2187 623116.400 3368295.900 31.25000 2 8 2539 2578 2580 2540 4294 4333 4335 4295
+ 2188 623303.900 3368358.400 31.25000 2 8 2540 2554 2555 2541 4295 4309 4310 4296
+ 2189 623428.900 3368358.400 31.25000 2 8 2541 2555 2556 2542 4296 4310 4311 4297
+ 2190 623303.900 3368233.400 31.25000 2 8 2554 2580 2582 2555 4309 4335 4337 4310
+ 2191 623428.900 3368233.400 31.25000 2 8 2555 2582 2584 2556 4310 4337 4339 4311
+ 2192 623553.900 3368358.400 31.25000 2 8 2542 2556 2557 2543 4297 4311 4312 4298
+ 2193 623647.650 3368389.650 31.25000 2 8 2543 2551 2552 2544 4298 4306 4307 4299
+ 2194 623710.150 3368389.650 31.25000 2 8 2544 2552 2553 2545 4299 4307 4308 4300
+ 2195 623647.650 3368327.150 31.25000 2 8 2551 2557 2558 2552 4306 4312 4313 4307
+ 2196 623710.150 3368327.150 31.25000 2 8 2552 2558 2559 2553 4307 4313 4314 4308
+ 2197 623553.900 3368233.400 31.25000 2 8 2556 2584 2585 2557 4311 4339 4340 4312
+ 2198 623647.650 3368264.650 31.25000 2 8 2557 2562 2563 2558 4312 4317 4318 4313
+ 2199 623710.150 3368264.650 31.25000 2 8 2558 2563 2564 2559 4313 4318 4319 4314
+ 2200 623647.650 3368202.150 31.25000 2 8 2562 2585 2586 2563 4317 4340 4341 4318
+ 2201 623710.150 3368202.150 31.25000 2 8 2563 2586 2587 2564 4318 4341 4342 4319
+ 2202 623803.900 3368358.400 31.25000 2 8 2545 2559 2560 2546 4300 4314 4315 4301
+ 2203 623928.900 3368358.400 31.25000 2 8 2546 2560 2561 2547 4301 4315 4316 4302
+ 2204 623803.900 3368233.400 31.25000 2 8 2559 2587 2588 2560 4314 4342 4343 4315
+ 2205 623928.900 3368233.400 31.25000 2 8 2560 2588 2589 2561 4315 4343 4344 4316
+ 2206 624116.400 3368295.900 31.25000 2 8 2547 2589 2590 2548 4302 4344 4345 4303
+ 2207 624366.400 3368295.900 31.25000 2 8 2548 2590 2591 2549 4303 4345 4346 4304
+ 2208 624616.400 3368295.900 31.25000 2 8 2549 2591 2592 2550 4304 4346 4347 4305
+ 2209 619866.400 3368045.900 31.25000 2 8 2565 2637 2638 2566 4320 4392 4393 4321
+ 2210 620116.400 3368045.900 31.25000 2 8 2566 2638 2639 2567 4321 4393 4394 4322
+ 2211 620366.400 3368045.900 31.25000 2 8 2567 2639 2640 2568 4322 4394 4395 4323
+ 2212 620616.400 3368045.900 31.25000 2 8 2568 2640 2641 2569 4323 4395 4396 4324
+ 2213 620866.400 3368045.900 31.25000 2 8 2569 2641 2642 2570 4324 4396 4397 4325
+ 2214 621116.400 3368045.900 31.25000 2 8 2570 2642 2643 2571 4325 4397 4398 4326
+ 2215 621366.400 3368045.900 31.25000 2 8 2571 2643 2644 2572 4326 4398 4399 4327
+ 2216 621616.400 3368045.900 31.25000 2 8 2572 2644 2645 2573 4327 4399 4400 4328
+ 2217 621866.400 3368045.900 31.25000 2 8 2573 2645 2646 2574 4328 4400 4401 4329
+ 2218 622116.400 3368045.900 31.25000 2 8 2574 2646 2647 2575 4329 4401 4402 4330
+ 2219 622366.400 3368045.900 31.25000 2 8 2575 2647 2648 2576 4330 4402 4403 4331
+ 2220 622616.400 3368045.900 31.25000 2 8 2576 2648 2649 2577 4331 4403 4404 4332
+ 2221 622866.400 3368045.900 31.25000 2 8 2577 2649 2650 2578 4332 4404 4405 4333
+ 2222 623053.900 3368108.400 31.25000 2 8 2578 2608 2609 2579 4333 4363 4364 4334
+ 2223 623178.900 3368108.400 31.25000 2 8 2579 2609 2610 2580 4334 4364 4365 4335
+ 2224 623053.900 3367983.400 31.25000 2 8 2608 2650 2651 2609 4363 4405 4406 4364
+ 2225 623178.900 3367983.400 31.25000 2 8 2609 2651 2652 2610 4364 4406 4407 4365
+ 2226 623272.650 3368139.650 31.25000 2 8 2580 2593 2594 2581 4335 4348 4349 4336
+ 2227 623335.150 3368139.650 31.25000 2 8 2581 2594 2596 2582 4336 4349 4351 4337
+ 2228 623272.650 3368077.150 31.25000 2 8 2593 2610 2611 2594 4348 4365 4366 4349
+ 2229 623319.525 3368092.775 31.25000 2 8 2594 2603 2604 2595 4349 4358 4359 4350
+ 2230 623350.775 3368092.775 31.25000 2 8 2595 2604 2605 2596 4350 4359 4360 4351
+ 2231 623319.525 3368061.525 31.25000 2 8 2603 2611 2612 2604 4358 4366 4367 4359
+ 2232 623350.775 3368061.525 31.25000 2 8 2604 2612 2613 2605 4359 4367 4368 4360
+ 2233 623397.650 3368139.650 31.25000 2 8 2582 2596 2598 2583 4337 4351 4353 4338
+ 2234 623460.150 3368139.650 31.25000 2 8 2583 2598 2599 2584 4338 4353 4354 4339
+ 2235 623382.025 3368092.775 31.25000 2 8 2596 2605 2606 2597 4351 4360 4361 4352
+ 2236 623413.275 3368092.775 31.25000 2 8 2597 2606 2607 2598 4352 4361 4362 4353
+ 2237 623382.025 3368061.525 31.25000 2 8 2605 2613 2614 2606 4360 4368 4369 4361
+ 2238 623413.275 3368061.525 31.25000 2 8 2606 2614 2615 2607 4361 4369 4370 4362
+ 2239 623460.150 3368077.150 31.25000 2 8 2598 2615 2616 2599 4353 4370 4371 4354
+ 2240 623272.650 3368014.650 31.25000 2 8 2610 2627 2628 2611 4365 4382 4383 4366
+ 2241 623319.525 3368030.275 31.25000 2 8 2611 2622 2623 2612 4366 4377 4378 4367
+ 2242 623350.775 3368030.275 31.25000 2 8 2612 2623 2624 2613 4367 4378 4379 4368
+ 2243 623319.525 3367999.025 31.25000 2 8 2622 2628 2629 2623 4377 4383 4384 4378
+ 2244 623350.775 3367999.025 31.25000 2 8 2623 2629 2630 2624 4378 4384 4385 4379
+ 2245 623272.650 3367952.150 31.25000 2 8 2627 2652 2653 2628 4382 4407 4408 4383
+ 2246 623335.150 3367952.150 31.25000 2 8 2628 2653 2654 2630 4383 4408 4409 4385
+ 2247 623382.025 3368030.275 31.25000 2 8 2613 2624 2625 2614 4368 4379 4380 4369
+ 2248 623413.275 3368030.275 31.25000 2 8 2614 2625 2626 2615 4369 4380 4381 4370
+ 2249 623382.025 3367999.025 31.25000 2 8 2624 2630 2631 2625 4379 4385 4386 4380
+ 2250 623413.275 3367999.025 31.25000 2 8 2625 2631 2632 2626 4380 4386 4387 4381
+ 2251 623460.150 3368014.650 31.25000 2 8 2615 2632 2633 2616 4370 4387 4388 4371
+ 2252 623397.650 3367952.150 31.25000 2 8 2630 2654 2655 2632 4385 4409 4410 4387
+ 2253 623460.150 3367952.150 31.25000 2 8 2632 2655 2656 2633 4387 4410 4411 4388
+ 2254 623553.900 3368108.400 31.25000 2 8 2584 2616 2617 2585 4339 4371 4372 4340
+ 2255 623647.650 3368139.650 31.25000 2 8 2585 2600 2601 2586 4340 4355 4356 4341
+ 2256 623710.150 3368139.650 31.25000 2 8 2586 2601 2602 2587 4341 4356 4357 4342
+ 2257 623647.650 3368077.150 31.25000 2 8 2600 2617 2618 2601 4355 4372 4373 4356
+ 2258 623710.150 3368077.150 31.25000 2 8 2601 2618 2619 2602 4356 4373 4374 4357
+ 2259 623553.900 3367983.400 31.25000 2 8 2616 2656 2657 2617 4371 4411 4412 4372
+ 2260 623647.650 3368014.650 31.25000 2 8 2617 2634 2635 2618 4372 4389 4390 4373
+ 2261 623710.150 3368014.650 31.25000 2 8 2618 2635 2636 2619 4373 4390 4391 4374
+ 2262 623647.650 3367952.150 31.25000 2 8 2634 2657 2658 2635 4389 4412 4413 4390
+ 2263 623710.150 3367952.150 31.25000 2 8 2635 2658 2659 2636 4390 4413 4414 4391
+ 2264 623803.900 3368108.400 31.25000 2 8 2587 2619 2620 2588 4342 4374 4375 4343
+ 2265 623928.900 3368108.400 31.25000 2 8 2588 2620 2621 2589 4343 4375 4376 4344
+ 2266 623803.900 3367983.400 31.25000 2 8 2619 2659 2660 2620 4374 4414 4415 4375
+ 2267 623928.900 3367983.400 31.25000 2 8 2620 2660 2661 2621 4375 4415 4416 4376
+ 2268 624116.400 3368045.900 31.25000 2 8 2589 2661 2662 2590 4344 4416 4417 4345
+ 2269 624366.400 3368045.900 31.25000 2 8 2590 2662 2663 2591 4345 4417 4418 4346
+ 2270 624616.400 3368045.900 31.25000 2 8 2591 2663 2664 2592 4346 4418 4419 4347
+ 2271 619866.400 3367795.900 31.25000 2 8 2637 2679 2680 2638 4392 4434 4435 4393
+ 2272 620116.400 3367795.900 31.25000 2 8 2638 2680 2681 2639 4393 4435 4436 4394
+ 2273 620366.400 3367795.900 31.25000 2 8 2639 2681 2682 2640 4394 4436 4437 4395
+ 2274 620616.400 3367795.900 31.25000 2 8 2640 2682 2683 2641 4395 4437 4438 4396
+ 2275 620866.400 3367795.900 31.25000 2 8 2641 2683 2684 2642 4396 4438 4439 4397
+ 2276 621116.400 3367795.900 31.25000 2 8 2642 2684 2685 2643 4397 4439 4440 4398
+ 2277 621366.400 3367795.900 31.25000 2 8 2643 2685 2686 2644 4398 4440 4441 4399
+ 2278 621616.400 3367795.900 31.25000 2 8 2644 2686 2687 2645 4399 4441 4442 4400
+ 2279 621866.400 3367795.900 31.25000 2 8 2645 2687 2688 2646 4400 4442 4443 4401
+ 2280 622116.400 3367795.900 31.25000 2 8 2646 2688 2689 2647 4401 4443 4444 4402
+ 2281 622366.400 3367795.900 31.25000 2 8 2647 2689 2690 2648 4402 4444 4445 4403
+ 2282 622616.400 3367795.900 31.25000 2 8 2648 2690 2691 2649 4403 4445 4446 4404
+ 2283 622866.400 3367795.900 31.25000 2 8 2649 2691 2692 2650 4404 4446 4447 4405
+ 2284 623116.400 3367795.900 31.25000 2 8 2650 2692 2693 2652 4405 4447 4448 4407
+ 2285 623303.900 3367858.400 31.25000 2 8 2652 2668 2669 2654 4407 4423 4424 4409
+ 2286 623428.900 3367858.400 31.25000 2 8 2654 2669 2670 2656 4409 4424 4425 4411
+ 2287 623303.900 3367733.400 31.25000 2 8 2668 2693 2694 2669 4423 4448 4449 4424
+ 2288 623428.900 3367733.400 31.25000 2 8 2669 2694 2695 2670 4424 4449 4450 4425
+ 2289 623553.900 3367858.400 31.25000 2 8 2656 2670 2671 2657 4411 4425 4426 4412
+ 2290 623647.650 3367889.650 31.25000 2 8 2657 2665 2666 2658 4412 4420 4421 4413
+ 2291 623710.150 3367889.650 31.25000 2 8 2658 2666 2667 2659 4413 4421 4422 4414
+ 2292 623647.650 3367827.150 31.25000 2 8 2665 2671 2672 2666 4420 4426 4427 4421
+ 2293 623710.150 3367827.150 31.25000 2 8 2666 2672 2673 2667 4421 4427 4428 4422
+ 2294 623553.900 3367733.400 31.25000 2 8 2670 2695 2696 2671 4425 4450 4451 4426
+ 2295 623647.650 3367764.650 31.25000 2 8 2671 2676 2677 2672 4426 4431 4432 4427
+ 2296 623710.150 3367764.650 31.25000 2 8 2672 2677 2678 2673 4427 4432 4433 4428
+ 2297 623647.650 3367702.150 31.25000 2 8 2676 2696 2697 2677 4431 4451 4452 4432
+ 2298 623710.150 3367702.150 31.25000 2 8 2677 2697 2698 2678 4432 4452 4453 4433
+ 2299 623803.900 3367858.400 31.25000 2 8 2659 2673 2674 2660 4414 4428 4429 4415
+ 2300 623928.900 3367858.400 31.25000 2 8 2660 2674 2675 2661 4415 4429 4430 4416
+ 2301 623803.900 3367733.400 31.25000 2 8 2673 2698 2699 2674 4428 4453 4454 4429
+ 2302 623928.900 3367733.400 31.25000 2 8 2674 2699 2700 2675 4429 4454 4455 4430
+ 2303 624116.400 3367795.900 31.25000 2 8 2661 2700 2701 2662 4416 4455 4456 4417
+ 2304 624366.400 3367795.900 31.25000 2 8 2662 2701 2702 2663 4417 4456 4457 4418
+ 2305 624616.400 3367795.900 31.25000 2 8 2663 2702 2703 2664 4418 4457 4458 4419
+ 2306 619866.400 3367545.900 31.25000 2 8 2679 2716 2717 2680 4434 4471 4472 4435
+ 2307 620116.400 3367545.900 31.25000 2 8 2680 2717 2718 2681 4435 4472 4473 4436
+ 2308 620366.400 3367545.900 31.25000 2 8 2681 2718 2719 2682 4436 4473 4474 4437
+ 2309 620616.400 3367545.900 31.25000 2 8 2682 2719 2720 2683 4437 4474 4475 4438
+ 2310 620866.400 3367545.900 31.25000 2 8 2683 2720 2721 2684 4438 4475 4476 4439
+ 2311 621116.400 3367545.900 31.25000 2 8 2684 2721 2722 2685 4439 4476 4477 4440
+ 2312 621366.400 3367545.900 31.25000 2 8 2685 2722 2723 2686 4440 4477 4478 4441
+ 2313 621616.400 3367545.900 31.25000 2 8 2686 2723 2724 2687 4441 4478 4479 4442
+ 2314 621866.400 3367545.900 31.25000 2 8 2687 2724 2725 2688 4442 4479 4480 4443
+ 2315 622116.400 3367545.900 31.25000 2 8 2688 2725 2726 2689 4443 4480 4481 4444
+ 2316 622366.400 3367545.900 31.25000 2 8 2689 2726 2727 2690 4444 4481 4482 4445
+ 2317 622616.400 3367545.900 31.25000 2 8 2690 2727 2728 2691 4445 4482 4483 4446
+ 2318 622866.400 3367545.900 31.25000 2 8 2691 2728 2729 2692 4446 4483 4484 4447
+ 2319 623116.400 3367545.900 31.25000 2 8 2692 2729 2730 2693 4447 4484 4485 4448
+ 2320 623366.400 3367545.900 31.25000 2 8 2693 2730 2731 2695 4448 4485 4486 4450
+ 2321 623553.900 3367608.400 31.25000 2 8 2695 2707 2708 2696 4450 4462 4463 4451
+ 2322 623647.650 3367639.650 31.25000 2 8 2696 2704 2705 2697 4451 4459 4460 4452
+ 2323 623710.150 3367639.650 31.25000 2 8 2697 2705 2706 2698 4452 4460 4461 4453
+ 2324 623647.650 3367577.150 31.25000 2 8 2704 2708 2709 2705 4459 4463 4464 4460
+ 2325 623710.150 3367577.150 31.25000 2 8 2705 2709 2710 2706 4460 4464 4465 4461
+ 2326 623553.900 3367483.400 31.25000 2 8 2707 2731 2732 2708 4462 4486 4487 4463
+ 2327 623647.650 3367514.650 31.25000 2 8 2708 2713 2714 2709 4463 4468 4469 4464
+ 2328 623710.150 3367514.650 31.25000 2 8 2709 2714 2715 2710 4464 4469 4470 4465
+ 2329 623647.650 3367452.150 31.25000 2 8 2713 2732 2733 2714 4468 4487 4488 4469
+ 2330 623710.150 3367452.150 31.25000 2 8 2714 2733 2734 2715 4469 4488 4489 4470
+ 2331 623803.900 3367608.400 31.25000 2 8 2698 2710 2711 2699 4453 4465 4466 4454
+ 2332 623928.900 3367608.400 31.25000 2 8 2699 2711 2712 2700 4454 4466 4467 4455
+ 2333 623803.900 3367483.400 31.25000 2 8 2710 2734 2735 2711 4465 4489 4490 4466
+ 2334 623928.900 3367483.400 31.25000 2 8 2711 2735 2736 2712 4466 4490 4491 4467
+ 2335 624116.400 3367545.900 31.25000 2 8 2700 2736 2737 2701 4455 4491 4492 4456
+ 2336 624366.400 3367545.900 31.25000 2 8 2701 2737 2738 2702 4456 4492 4493 4457
+ 2337 624616.400 3367545.900 31.25000 2 8 2702 2738 2739 2703 4457 4493 4494 4458
+ 2338 619866.400 3367295.900 31.25000 2 8 2716 2752 2753 2717 4471 4507 4508 4472
+ 2339 620116.400 3367295.900 31.25000 2 8 2717 2753 2754 2718 4472 4508 4509 4473
+ 2340 620366.400 3367295.900 31.25000 2 8 2718 2754 2755 2719 4473 4509 4510 4474
+ 2341 620616.400 3367295.900 31.25000 2 8 2719 2755 2756 2720 4474 4510 4511 4475
+ 2342 620866.400 3367295.900 31.25000 2 8 2720 2756 2757 2721 4475 4511 4512 4476
+ 2343 621116.400 3367295.900 31.25000 2 8 2721 2757 2758 2722 4476 4512 4513 4477
+ 2344 621366.400 3367295.900 31.25000 2 8 2722 2758 2759 2723 4477 4513 4514 4478
+ 2345 621616.400 3367295.900 31.25000 2 8 2723 2759 2760 2724 4478 4514 4515 4479
+ 2346 621866.400 3367295.900 31.25000 2 8 2724 2760 2761 2725 4479 4515 4516 4480
+ 2347 622116.400 3367295.900 31.25000 2 8 2725 2761 2762 2726 4480 4516 4517 4481
+ 2348 622366.400 3367295.900 31.25000 2 8 2726 2762 2763 2727 4481 4517 4518 4482
+ 2349 622616.400 3367295.900 31.25000 2 8 2727 2763 2764 2728 4482 4518 4519 4483
+ 2350 622866.400 3367295.900 31.25000 2 8 2728 2764 2765 2729 4483 4519 4520 4484
+ 2351 623116.400 3367295.900 31.25000 2 8 2729 2765 2766 2730 4484 4520 4521 4485
+ 2352 623366.400 3367295.900 31.25000 2 8 2730 2766 2767 2731 4485 4521 4522 4486
+ 2353 623553.900 3367358.400 31.25000 2 8 2731 2743 2744 2732 4486 4498 4499 4487
+ 2354 623647.650 3367389.650 31.25000 2 8 2732 2740 2741 2733 4487 4495 4496 4488
+ 2355 623710.150 3367389.650 31.25000 2 8 2733 2741 2742 2734 4488 4496 4497 4489
+ 2356 623647.650 3367327.150 31.25000 2 8 2740 2744 2745 2741 4495 4499 4500 4496
+ 2357 623710.150 3367327.150 31.25000 2 8 2741 2745 2746 2742 4496 4500 4501 4497
+ 2358 623553.900 3367233.400 31.25000 2 8 2743 2767 2768 2744 4498 4522 4523 4499
+ 2359 623647.650 3367264.650 31.25000 2 8 2744 2749 2750 2745 4499 4504 4505 4500
+ 2360 623710.150 3367264.650 31.25000 2 8 2745 2750 2751 2746 4500 4505 4506 4501
+ 2361 623647.650 3367202.150 31.25000 2 8 2749 2768 2769 2750 4504 4523 4524 4505
+ 2362 623710.150 3367202.150 31.25000 2 8 2750 2769 2770 2751 4505 4524 4525 4506
+ 2363 623803.900 3367358.400 31.25000 2 8 2734 2746 2747 2735 4489 4501 4502 4490
+ 2364 623928.900 3367358.400 31.25000 2 8 2735 2747 2748 2736 4490 4502 4503 4491
+ 2365 623803.900 3367233.400 31.25000 2 8 2746 2770 2771 2747 4501 4525 4526 4502
+ 2366 623928.900 3367233.400 31.25000 2 8 2747 2771 2772 2748 4502 4526 4527 4503
+ 2367 624116.400 3367295.900 31.25000 2 8 2736 2772 2773 2737 4491 4527 4528 4492
+ 2368 624366.400 3367295.900 31.25000 2 8 2737 2773 2774 2738 4492 4528 4529 4493
+ 2369 624616.400 3367295.900 31.25000 2 8 2738 2774 2775 2739 4493 4529 4530 4494
+ 2370 619866.400 3367045.900 31.25000 2 8 2752 2788 2789 2753 4507 4543 4544 4508
+ 2371 620116.400 3367045.900 31.25000 2 8 2753 2789 2790 2754 4508 4544 4545 4509
+ 2372 620366.400 3367045.900 31.25000 2 8 2754 2790 2791 2755 4509 4545 4546 4510
+ 2373 620616.400 3367045.900 31.25000 2 8 2755 2791 2792 2756 4510 4546 4547 4511
+ 2374 620866.400 3367045.900 31.25000 2 8 2756 2792 2793 2757 4511 4547 4548 4512
+ 2375 621116.400 3367045.900 31.25000 2 8 2757 2793 2794 2758 4512 4548 4549 4513
+ 2376 621366.400 3367045.900 31.25000 2 8 2758 2794 2795 2759 4513 4549 4550 4514
+ 2377 621616.400 3367045.900 31.25000 2 8 2759 2795 2796 2760 4514 4550 4551 4515
+ 2378 621866.400 3367045.900 31.25000 2 8 2760 2796 2797 2761 4515 4551 4552 4516
+ 2379 622116.400 3367045.900 31.25000 2 8 2761 2797 2798 2762 4516 4552 4553 4517
+ 2380 622366.400 3367045.900 31.25000 2 8 2762 2798 2800 2763 4517 4553 4555 4518
+ 2381 622616.400 3367045.900 31.25000 2 8 2763 2800 2801 2764 4518 4555 4556 4519
+ 2382 622866.400 3367045.900 31.25000 2 8 2764 2801 2802 2765 4519 4556 4557 4520
+ 2383 623116.400 3367045.900 31.25000 2 8 2765 2802 2803 2766 4520 4557 4558 4521
+ 2384 623366.400 3367045.900 31.25000 2 8 2766 2803 2804 2767 4521 4558 4559 4522
+ 2385 623553.900 3367108.400 31.25000 2 8 2767 2779 2780 2768 4522 4534 4535 4523
+ 2386 623647.650 3367139.650 31.25000 2 8 2768 2776 2777 2769 4523 4531 4532 4524
+ 2387 623710.150 3367139.650 31.25000 2 8 2769 2777 2778 2770 4524 4532 4533 4525
+ 2388 623647.650 3367077.150 31.25000 2 8 2776 2780 2781 2777 4531 4535 4536 4532
+ 2389 623710.150 3367077.150 31.25000 2 8 2777 2781 2782 2778 4532 4536 4537 4533
+ 2390 623553.900 3366983.400 31.25000 2 8 2779 2804 2805 2780 4534 4559 4560 4535
+ 2391 623647.650 3367014.650 31.25000 2 8 2780 2785 2786 2781 4535 4540 4541 4536
+ 2392 623710.150 3367014.650 31.25000 2 8 2781 2786 2787 2782 4536 4541 4542 4537
+ 2393 623647.650 3366952.150 31.25000 2 8 2785 2805 2806 2786 4540 4560 4561 4541
+ 2394 623710.150 3366952.150 31.25000 2 8 2786 2806 2807 2787 4541 4561 4562 4542
+ 2395 623803.900 3367108.400 31.25000 2 8 2770 2782 2783 2771 4525 4537 4538 4526
+ 2396 623928.900 3367108.400 31.25000 2 8 2771 2783 2784 2772 4526 4538 4539 4527
+ 2397 623803.900 3366983.400 31.25000 2 8 2782 2807 2808 2783 4537 4562 4563 4538
+ 2398 623928.900 3366983.400 31.25000 2 8 2783 2808 2809 2784 4538 4563 4564 4539
+ 2399 624116.400 3367045.900 31.25000 2 8 2772 2809 2810 2773 4527 4564 4565 4528
+ 2400 624366.400 3367045.900 31.25000 2 8 2773 2810 2811 2774 4528 4565 4566 4529
+ 2401 624616.400 3367045.900 31.25000 2 8 2774 2811 2812 2775 4529 4566 4567 4530
+ 2402 619866.400 3366795.900 31.25000 2 8 2788 2828 2829 2789 4543 4583 4584 4544
+ 2403 620116.400 3366795.900 31.25000 2 8 2789 2829 2830 2790 4544 4584 4585 4545
+ 2404 620366.400 3366795.900 31.25000 2 8 2790 2830 2831 2791 4545 4585 4586 4546
+ 2405 620616.400 3366795.900 31.25000 2 8 2791 2831 2832 2792 4546 4586 4587 4547
+ 2406 620866.400 3366795.900 31.25000 2 8 2792 2832 2833 2793 4547 4587 4588 4548
+ 2407 621116.400 3366795.900 31.25000 2 8 2793 2833 2834 2794 4548 4588 4589 4549
+ 2408 621366.400 3366795.900 31.25000 2 8 2794 2834 2835 2795 4549 4589 4590 4550
+ 2409 621616.400 3366795.900 31.25000 2 8 2795 2835 2836 2796 4550 4590 4591 4551
+ 2410 621866.400 3366795.900 31.25000 2 8 2796 2836 2837 2797 4551 4591 4592 4552
+ 2411 622116.400 3366795.900 31.25000 2 8 2797 2837 2839 2798 4552 4592 4594 4553
+ 2412 622303.900 3366858.400 31.25000 2 8 2798 2816 2817 2799 4553 4571 4572 4554
+ 2413 622428.900 3366858.400 31.25000 2 8 2799 2817 2818 2800 4554 4572 4573 4555
+ 2414 622303.900 3366733.400 31.25000 2 8 2816 2839 2841 2817 4571 4594 4596 4572
+ 2415 622428.900 3366733.400 31.25000 2 8 2817 2841 2843 2818 4572 4596 4598 4573
+ 2416 622616.400 3366795.900 31.25000 2 8 2800 2843 2845 2801 4555 4598 4600 4556
+ 2417 622866.400 3366795.900 31.25000 2 8 2801 2845 2846 2802 4556 4600 4601 4557
+ 2418 623116.400 3366795.900 31.25000 2 8 2802 2846 2847 2803 4557 4601 4602 4558
+ 2419 623366.400 3366795.900 31.25000 2 8 2803 2847 2848 2804 4558 4602 4603 4559
+ 2420 623553.900 3366858.400 31.25000 2 8 2804 2819 2820 2805 4559 4574 4575 4560
+ 2421 623647.650 3366889.650 31.25000 2 8 2805 2813 2814 2806 4560 4568 4569 4561
+ 2422 623710.150 3366889.650 31.25000 2 8 2806 2814 2815 2807 4561 4569 4570 4562
+ 2423 623647.650 3366827.150 31.25000 2 8 2813 2820 2821 2814 4568 4575 4576 4569
+ 2424 623710.150 3366827.150 31.25000 2 8 2814 2821 2822 2815 4569 4576 4577 4570
+ 2425 623553.900 3366733.400 31.25000 2 8 2819 2848 2849 2820 4574 4603 4604 4575
+ 2426 623647.650 3366764.650 31.25000 2 8 2820 2825 2826 2821 4575 4580 4581 4576
+ 2427 623710.150 3366764.650 31.25000 2 8 2821 2826 2827 2822 4576 4581 4582 4577
+ 2428 623647.650 3366702.150 31.25000 2 8 2825 2849 2850 2826 4580 4604 4605 4581
+ 2429 623710.150 3366702.150 31.25000 2 8 2826 2850 2851 2827 4581 4605 4606 4582
+ 2430 623803.900 3366858.400 31.25000 2 8 2807 2822 2823 2808 4562 4577 4578 4563
+ 2431 623928.900 3366858.400 31.25000 2 8 2808 2823 2824 2809 4563 4578 4579 4564
+ 2432 623803.900 3366733.400 31.25000 2 8 2822 2851 2852 2823 4577 4606 4607 4578
+ 2433 623928.900 3366733.400 31.25000 2 8 2823 2852 2853 2824 4578 4607 4608 4579
+ 2434 624116.400 3366795.900 31.25000 2 8 2809 2853 2854 2810 4564 4608 4609 4565
+ 2435 624366.400 3366795.900 31.25000 2 8 2810 2854 2855 2811 4565 4609 4610 4566
+ 2436 624616.400 3366795.900 31.25000 2 8 2811 2855 2856 2812 4566 4610 4611 4567
+ 2437 619866.400 3366545.900 31.25000 2 8 2828 2904 2905 2829 4583 4659 4660 4584
+ 2438 620116.400 3366545.900 31.25000 2 8 2829 2905 2906 2830 4584 4660 4661 4585
+ 2439 620366.400 3366545.900 31.25000 2 8 2830 2906 2907 2831 4585 4661 4662 4586
+ 2440 620616.400 3366545.900 31.25000 2 8 2831 2907 2908 2832 4586 4662 4663 4587
+ 2441 620866.400 3366545.900 31.25000 2 8 2832 2908 2909 2833 4587 4663 4664 4588
+ 2442 621116.400 3366545.900 31.25000 2 8 2833 2909 2910 2834 4588 4664 4665 4589
+ 2443 621366.400 3366545.900 31.25000 2 8 2834 2910 2911 2835 4589 4665 4666 4590
+ 2444 621616.400 3366545.900 31.25000 2 8 2835 2911 2912 2836 4590 4666 4667 4591
+ 2445 621866.400 3366545.900 31.25000 2 8 2836 2912 2913 2837 4591 4667 4668 4592
+ 2446 622053.900 3366608.400 31.25000 2 8 2837 2872 2873 2838 4592 4627 4628 4593
+ 2447 622178.900 3366608.400 31.25000 2 8 2838 2873 2874 2839 4593 4628 4629 4594
+ 2448 622053.900 3366483.400 31.25000 2 8 2872 2913 2914 2873 4627 4668 4669 4628
+ 2449 622178.900 3366483.400 31.25000 2 8 2873 2914 2915 2874 4628 4669 4670 4629
+ 2450 622272.650 3366639.650 31.25000 2 8 2839 2857 2858 2840 4594 4612 4613 4595
+ 2451 622335.150 3366639.650 31.25000 2 8 2840 2858 2860 2841 4595 4613 4615 4596
+ 2452 622272.650 3366577.150 31.25000 2 8 2857 2874 2875 2858 4612 4629 4630 4613
+ 2453 622319.525 3366592.775 31.25000 2 8 2858 2867 2868 2859 4613 4622 4623 4614
+ 2454 622350.775 3366592.775 31.25000 2 8 2859 2868 2869 2860 4614 4623 4624 4615
+ 2455 622319.525 3366561.525 31.25000 2 8 2867 2875 2876 2868 4622 4630 4631 4623
+ 2456 622350.775 3366561.525 31.25000 2 8 2868 2876 2877 2869 4623 4631 4632 4624
+ 2457 622397.650 3366639.650 31.25000 2 8 2841 2860 2862 2842 4596 4615 4617 4597
+ 2458 622460.150 3366639.650 31.25000 2 8 2842 2862 2863 2843 4597 4617 4618 4598
+ 2459 622382.025 3366592.775 31.25000 2 8 2860 2869 2870 2861 4615 4624 4625 4616
+ 2460 622413.275 3366592.775 31.25000 2 8 2861 2870 2871 2862 4616 4625 4626 4617
+ 2461 622382.025 3366561.525 31.25000 2 8 2869 2877 2878 2870 4624 4632 4633 4625
+ 2462 622413.275 3366561.525 31.25000 2 8 2870 2878 2879 2871 4625 4633 4634 4626
+ 2463 622460.150 3366577.150 31.25000 2 8 2862 2879 2880 2863 4617 4634 4635 4618
+ 2464 622272.650 3366514.650 31.25000 2 8 2874 2894 2895 2875 4629 4649 4650 4630
+ 2465 622319.525 3366530.275 31.25000 2 8 2875 2889 2890 2876 4630 4644 4645 4631
+ 2466 622350.775 3366530.275 31.25000 2 8 2876 2890 2891 2877 4631 4645 4646 4632
+ 2467 622319.525 3366499.025 31.25000 2 8 2889 2895 2896 2890 4644 4650 4651 4645
+ 2468 622350.775 3366499.025 31.25000 2 8 2890 2896 2897 2891 4645 4651 4652 4646
+ 2469 622272.650 3366452.150 31.25000 2 8 2894 2915 2916 2895 4649 4670 4671 4650
+ 2470 622335.150 3366452.150 31.25000 2 8 2895 2916 2917 2897 4650 4671 4672 4652
+ 2471 622382.025 3366530.275 31.25000 2 8 2877 2891 2892 2878 4632 4646 4647 4633
+ 2472 622413.275 3366530.275 31.25000 2 8 2878 2892 2893 2879 4633 4647 4648 4634
+ 2473 622382.025 3366499.025 31.25000 2 8 2891 2897 2898 2892 4646 4652 4653 4647
+ 2474 622413.275 3366499.025 31.25000 2 8 2892 2898 2899 2893 4647 4653 4654 4648
+ 2475 622460.150 3366514.650 31.25000 2 8 2879 2899 2900 2880 4634 4654 4655 4635
+ 2476 622397.650 3366452.150 31.25000 2 8 2897 2917 2918 2899 4652 4672 4673 4654
+ 2477 622460.150 3366452.150 31.25000 2 8 2899 2918 2919 2900 4654 4673 4674 4655
+ 2478 622553.900 3366608.400 31.25000 2 8 2843 2880 2881 2844 4598 4635 4636 4599
+ 2479 622678.900 3366608.400 31.25000 2 8 2844 2881 2882 2845 4599 4636 4637 4600
+ 2480 622553.900 3366483.400 31.25000 2 8 2880 2919 2920 2881 4635 4674 4675 4636
+ 2481 622678.900 3366483.400 31.25000 2 8 2881 2920 2921 2882 4636 4675 4676 4637
+ 2482 622866.400 3366545.900 31.25000 2 8 2845 2921 2922 2846 4600 4676 4677 4601
+ 2483 623116.400 3366545.900 31.25000 2 8 2846 2922 2923 2847 4601 4677 4678 4602
+ 2484 623366.400 3366545.900 31.25000 2 8 2847 2923 2924 2848 4602 4678 4679 4603
+ 2485 623553.900 3366608.400 31.25000 2 8 2848 2883 2884 2849 4603 4638 4639 4604
+ 2486 623647.650 3366639.650 31.25000 2 8 2849 2864 2865 2850 4604 4619 4620 4605
+ 2487 623710.150 3366639.650 31.25000 2 8 2850 2865 2866 2851 4605 4620 4621 4606
+ 2488 623647.650 3366577.150 31.25000 2 8 2864 2884 2885 2865 4619 4639 4640 4620
+ 2489 623710.150 3366577.150 31.25000 2 8 2865 2885 2886 2866 4620 4640 4641 4621
+ 2490 623553.900 3366483.400 31.25000 2 8 2883 2924 2925 2884 4638 4679 4680 4639
+ 2491 623647.650 3366514.650 31.25000 2 8 2884 2901 2902 2885 4639 4656 4657 4640
+ 2492 623710.150 3366514.650 31.25000 2 8 2885 2902 2903 2886 4640 4657 4658 4641
+ 2493 623647.650 3366452.150 31.25000 2 8 2901 2925 2926 2902 4656 4680 4681 4657
+ 2494 623710.150 3366452.150 31.25000 2 8 2902 2926 2927 2903 4657 4681 4682 4658
+ 2495 623803.900 3366608.400 31.25000 2 8 2851 2886 2887 2852 4606 4641 4642 4607
+ 2496 623928.900 3366608.400 31.25000 2 8 2852 2887 2888 2853 4607 4642 4643 4608
+ 2497 623803.900 3366483.400 31.25000 2 8 2886 2927 2928 2887 4641 4682 4683 4642
+ 2498 623928.900 3366483.400 31.25000 2 8 2887 2928 2929 2888 4642 4683 4684 4643
+ 2499 624116.400 3366545.900 31.25000 2 8 2853 2929 2930 2854 4608 4684 4685 4609
+ 2500 624366.400 3366545.900 31.25000 2 8 2854 2930 2931 2855 4609 4685 4686 4610
+ 2501 624616.400 3366545.900 31.25000 2 8 2855 2931 2932 2856 4610 4686 4687 4611
+ 2502 619866.400 3366295.900 31.25000 2 8 2904 2948 2949 2905 4659 4703 4704 4660
+ 2503 620116.400 3366295.900 31.25000 2 8 2905 2949 2950 2906 4660 4704 4705 4661
+ 2504 620366.400 3366295.900 31.25000 2 8 2906 2950 2951 2907 4661 4705 4706 4662
+ 2505 620616.400 3366295.900 31.25000 2 8 2907 2951 2952 2908 4662 4706 4707 4663
+ 2506 620866.400 3366295.900 31.25000 2 8 2908 2952 2953 2909 4663 4707 4708 4664
+ 2507 621116.400 3366295.900 31.25000 2 8 2909 2953 2954 2910 4664 4708 4709 4665
+ 2508 621366.400 3366295.900 31.25000 2 8 2910 2954 2956 2911 4665 4709 4711 4666
+ 2509 621616.400 3366295.900 31.25000 2 8 2911 2956 2957 2912 4666 4711 4712 4667
+ 2510 621866.400 3366295.900 31.25000 2 8 2912 2957 2958 2913 4667 4712 4713 4668
+ 2511 622116.400 3366295.900 31.25000 2 8 2913 2958 2959 2915 4668 4713 4714 4670
+ 2512 622303.900 3366358.400 31.25000 2 8 2915 2936 2937 2917 4670 4691 4692 4672
+ 2513 622428.900 3366358.400 31.25000 2 8 2917 2937 2938 2919 4672 4692 4693 4674
+ 2514 622303.900 3366233.400 31.25000 2 8 2936 2959 2960 2937 4691 4714 4715 4692
+ 2515 622428.900 3366233.400 31.25000 2 8 2937 2960 2961 2938 4692 4715 4716 4693
+ 2516 622616.400 3366295.900 31.25000 2 8 2919 2961 2962 2921 4674 4716 4717 4676
+ 2517 622866.400 3366295.900 31.25000 2 8 2921 2962 2963 2922 4676 4717 4718 4677
+ 2518 623116.400 3366295.900 31.25000 2 8 2922 2963 2964 2923 4677 4718 4719 4678
+ 2519 623366.400 3366295.900 31.25000 2 8 2923 2964 2965 2924 4678 4719 4720 4679
+ 2520 623553.900 3366358.400 31.25000 2 8 2924 2939 2940 2925 4679 4694 4695 4680
+ 2521 623647.650 3366389.650 31.25000 2 8 2925 2933 2934 2926 4680 4688 4689 4681
+ 2522 623710.150 3366389.650 31.25000 2 8 2926 2934 2935 2927 4681 4689 4690 4682
+ 2523 623647.650 3366327.150 31.25000 2 8 2933 2940 2941 2934 4688 4695 4696 4689
+ 2524 623710.150 3366327.150 31.25000 2 8 2934 2941 2942 2935 4689 4696 4697 4690
+ 2525 623553.900 3366233.400 31.25000 2 8 2939 2965 2966 2940 4694 4720 4721 4695
+ 2526 623647.650 3366264.650 31.25000 2 8 2940 2945 2946 2941 4695 4700 4701 4696
+ 2527 623710.150 3366264.650 31.25000 2 8 2941 2946 2947 2942 4696 4701 4702 4697
+ 2528 623647.650 3366202.150 31.25000 2 8 2945 2966 2967 2946 4700 4721 4722 4701
+ 2529 623710.150 3366202.150 31.25000 2 8 2946 2967 2968 2947 4701 4722 4723 4702
+ 2530 623803.900 3366358.400 31.25000 2 8 2927 2942 2943 2928 4682 4697 4698 4683
+ 2531 623928.900 3366358.400 31.25000 2 8 2928 2943 2944 2929 4683 4698 4699 4684
+ 2532 623803.900 3366233.400 31.25000 2 8 2942 2968 2969 2943 4697 4723 4724 4698
+ 2533 623928.900 3366233.400 31.25000 2 8 2943 2969 2970 2944 4698 4724 4725 4699
+ 2534 624116.400 3366295.900 31.25000 2 8 2929 2970 2971 2930 4684 4725 4726 4685
+ 2535 624366.400 3366295.900 31.25000 2 8 2930 2971 2972 2931 4685 4726 4727 4686
+ 2536 624616.400 3366295.900 31.25000 2 8 2931 2972 2973 2932 4686 4727 4728 4687
+ 2537 619866.400 3366045.900 31.25000 2 8 2948 2989 2990 2949 4703 4744 4745 4704
+ 2538 620116.400 3366045.900 31.25000 2 8 2949 2990 2991 2950 4704 4745 4746 4705
+ 2539 620366.400 3366045.900 31.25000 2 8 2950 2991 2992 2951 4705 4746 4747 4706
+ 2540 620616.400 3366045.900 31.25000 2 8 2951 2992 2993 2952 4706 4747 4748 4707
+ 2541 620866.400 3366045.900 31.25000 2 8 2952 2993 2994 2953 4707 4748 4749 4708
+ 2542 621116.400 3366045.900 31.25000 2 8 2953 2994 2996 2954 4708 4749 4751 4709
+ 2543 621303.900 3366108.400 31.25000 2 8 2954 2977 2978 2955 4709 4732 4733 4710
+ 2544 621428.900 3366108.400 31.25000 2 8 2955 2978 2979 2956 4710 4733 4734 4711
+ 2545 621303.900 3365983.400 31.25000 2 8 2977 2996 2998 2978 4732 4751 4753 4733
+ 2546 621428.900 3365983.400 31.25000 2 8 2978 2998 3000 2979 4733 4753 4755 4734
+ 2547 621616.400 3366045.900 31.25000 2 8 2956 3000 3002 2957 4711 4755 4757 4712
+ 2548 621866.400 3366045.900 31.25000 2 8 2957 3002 3003 2958 4712 4757 4758 4713
+ 2549 622116.400 3366045.900 31.25000 2 8 2958 3003 3004 2959 4713 4758 4759 4714
+ 2550 622366.400 3366045.900 31.25000 2 8 2959 3004 3005 2961 4714 4759 4760 4716
+ 2551 622616.400 3366045.900 31.25000 2 8 2961 3005 3006 2962 4716 4760 4761 4717
+ 2552 622866.400 3366045.900 31.25000 2 8 2962 3006 3007 2963 4717 4761 4762 4718
+ 2553 623116.400 3366045.900 31.25000 2 8 2963 3007 3008 2964 4718 4762 4763 4719
+ 2554 623366.400 3366045.900 31.25000 2 8 2964 3008 3009 2965 4719 4763 4764 4720
+ 2555 623553.900 3366108.400 31.25000 2 8 2965 2980 2981 2966 4720 4735 4736 4721
+ 2556 623647.650 3366139.650 31.25000 2 8 2966 2974 2975 2967 4721 4729 4730 4722
+ 2557 623710.150 3366139.650 31.25000 2 8 2967 2975 2976 2968 4722 4730 4731 4723
+ 2558 623647.650 3366077.150 31.25000 2 8 2974 2981 2982 2975 4729 4736 4737 4730
+ 2559 623710.150 3366077.150 31.25000 2 8 2975 2982 2983 2976 4730 4737 4738 4731
+ 2560 623553.900 3365983.400 31.25000 2 8 2980 3009 3010 2981 4735 4764 4765 4736
+ 2561 623647.650 3366014.650 31.25000 2 8 2981 2986 2987 2982 4736 4741 4742 4737
+ 2562 623710.150 3366014.650 31.25000 2 8 2982 2987 2988 2983 4737 4742 4743 4738
+ 2563 623647.650 3365952.150 31.25000 2 8 2986 3010 3011 2987 4741 4765 4766 4742
+ 2564 623710.150 3365952.150 31.25000 2 8 2987 3011 3012 2988 4742 4766 4767 4743
+ 2565 623803.900 3366108.400 31.25000 2 8 2968 2983 2984 2969 4723 4738 4739 4724
+ 2566 623928.900 3366108.400 31.25000 2 8 2969 2984 2985 2970 4724 4739 4740 4725
+ 2567 623803.900 3365983.400 31.25000 2 8 2983 3012 3013 2984 4738 4767 4768 4739
+ 2568 623928.900 3365983.400 31.25000 2 8 2984 3013 3014 2985 4739 4768 4769 4740
+ 2569 624116.400 3366045.900 31.25000 2 8 2970 3014 3015 2971 4725 4769 4770 4726
+ 2570 624366.400 3366045.900 31.25000 2 8 2971 3015 3016 2972 4726 4770 4771 4727
+ 2571 624616.400 3366045.900 31.25000 2 8 2972 3016 3017 2973 4727 4771 4772 4728
+ 2572 619866.400 3365795.900 31.25000 2 8 2989 3065 3066 2990 4744 4820 4821 4745
+ 2573 620116.400 3365795.900 31.25000 2 8 2990 3066 3067 2991 4745 4821 4822 4746
+ 2574 620366.400 3365795.900 31.25000 2 8 2991 3067 3068 2992 4746 4822 4823 4747
+ 2575 620616.400 3365795.900 31.25000 2 8 2992 3068 3069 2993 4747 4823 4824 4748
+ 2576 620866.400 3365795.900 31.25000 2 8 2993 3069 3070 2994 4748 4824 4825 4749
+ 2577 621053.900 3365858.400 31.25000 2 8 2994 3033 3034 2995 4749 4788 4789 4750
+ 2578 621178.900 3365858.400 31.25000 2 8 2995 3034 3035 2996 4750 4789 4790 4751
+ 2579 621053.900 3365733.400 31.25000 2 8 3033 3070 3071 3034 4788 4825 4826 4789
+ 2580 621178.900 3365733.400 31.25000 2 8 3034 3071 3072 3035 4789 4826 4827 4790
+ 2581 621272.650 3365889.650 31.25000 2 8 2996 3018 3019 2997 4751 4773 4774 4752
+ 2582 621335.150 3365889.650 31.25000 2 8 2997 3019 3021 2998 4752 4774 4776 4753
+ 2583 621272.650 3365827.150 31.25000 2 8 3018 3035 3036 3019 4773 4790 4791 4774
+ 2584 621319.525 3365842.775 31.25000 2 8 3019 3028 3029 3020 4774 4783 4784 4775
+ 2585 621350.775 3365842.775 31.25000 2 8 3020 3029 3030 3021 4775 4784 4785 4776
+ 2586 621319.525 3365811.525 31.25000 2 8 3028 3036 3037 3029 4783 4791 4792 4784
+ 2587 621350.775 3365811.525 31.25000 2 8 3029 3037 3038 3030 4784 4792 4793 4785
+ 2588 621397.650 3365889.650 31.25000 2 8 2998 3021 3023 2999 4753 4776 4778 4754
+ 2589 621460.150 3365889.650 31.25000 2 8 2999 3023 3024 3000 4754 4778 4779 4755
+ 2590 621382.025 3365842.775 31.25000 2 8 3021 3030 3031 3022 4776 4785 4786 4777
+ 2591 621413.275 3365842.775 31.25000 2 8 3022 3031 3032 3023 4777 4786 4787 4778
+ 2592 621382.025 3365811.525 31.25000 2 8 3030 3038 3039 3031 4785 4793 4794 4786
+ 2593 621413.275 3365811.525 31.25000 2 8 3031 3039 3040 3032 4786 4794 4795 4787
+ 2594 621460.150 3365827.150 31.25000 2 8 3023 3040 3041 3024 4778 4795 4796 4779
+ 2595 621272.650 3365764.650 31.25000 2 8 3035 3055 3056 3036 4790 4810 4811 4791
+ 2596 621319.525 3365780.275 31.25000 2 8 3036 3050 3051 3037 4791 4805 4806 4792
+ 2597 621350.775 3365780.275 31.25000 2 8 3037 3051 3052 3038 4792 4806 4807 4793
+ 2598 621319.525 3365749.025 31.25000 2 8 3050 3056 3057 3051 4805 4811 4812 4806
+ 2599 621350.775 3365749.025 31.25000 2 8 3051 3057 3058 3052 4806 4812 4813 4807
+ 2600 621272.650 3365702.150 31.25000 2 8 3055 3072 3073 3056 4810 4827 4828 4811
+ 2601 621335.150 3365702.150 31.25000 2 8 3056 3073 3074 3058 4811 4828 4829 4813
+ 2602 621382.025 3365780.275 31.25000 2 8 3038 3052 3053 3039 4793 4807 4808 4794
+ 2603 621413.275 3365780.275 31.25000 2 8 3039 3053 3054 3040 4794 4808 4809 4795
+ 2604 621382.025 3365749.025 31.25000 2 8 3052 3058 3059 3053 4807 4813 4814 4808
+ 2605 621413.275 3365749.025 31.25000 2 8 3053 3059 3060 3054 4808 4814 4815 4809
+ 2606 621460.150 3365764.650 31.25000 2 8 3040 3060 3061 3041 4795 4815 4816 4796
+ 2607 621397.650 3365702.150 31.25000 2 8 3058 3074 3075 3060 4813 4829 4830 4815
+ 2608 621460.150 3365702.150 31.25000 2 8 3060 3075 3076 3061 4815 4830 4831 4816
+ 2609 621553.900 3365858.400 31.25000 2 8 3000 3041 3042 3001 4755 4796 4797 4756
+ 2610 621678.900 3365858.400 31.25000 2 8 3001 3042 3043 3002 4756 4797 4798 4757
+ 2611 621553.900 3365733.400 31.25000 2 8 3041 3076 3077 3042 4796 4831 4832 4797
+ 2612 621678.900 3365733.400 31.25000 2 8 3042 3077 3078 3043 4797 4832 4833 4798
+ 2613 621866.400 3365795.900 31.25000 2 8 3002 3078 3079 3003 4757 4833 4834 4758
+ 2614 622116.400 3365795.900 31.25000 2 8 3003 3079 3080 3004 4758 4834 4835 4759
+ 2615 622366.400 3365795.900 31.25000 2 8 3004 3080 3081 3005 4759 4835 4836 4760
+ 2616 622616.400 3365795.900 31.25000 2 8 3005 3081 3082 3006 4760 4836 4837 4761
+ 2617 622866.400 3365795.900 31.25000 2 8 3006 3082 3083 3007 4761 4837 4838 4762
+ 2618 623116.400 3365795.900 31.25000 2 8 3007 3083 3084 3008 4762 4838 4839 4763
+ 2619 623366.400 3365795.900 31.25000 2 8 3008 3084 3085 3009 4763 4839 4840 4764
+ 2620 623553.900 3365858.400 31.25000 2 8 3009 3044 3045 3010 4764 4799 4800 4765
+ 2621 623647.650 3365889.650 31.25000 2 8 3010 3025 3026 3011 4765 4780 4781 4766
+ 2622 623710.150 3365889.650 31.25000 2 8 3011 3026 3027 3012 4766 4781 4782 4767
+ 2623 623647.650 3365827.150 31.25000 2 8 3025 3045 3046 3026 4780 4800 4801 4781
+ 2624 623710.150 3365827.150 31.25000 2 8 3026 3046 3047 3027 4781 4801 4802 4782
+ 2625 623553.900 3365733.400 31.25000 2 8 3044 3085 3086 3045 4799 4840 4841 4800
+ 2626 623647.650 3365764.650 31.25000 2 8 3045 3062 3063 3046 4800 4817 4818 4801
+ 2627 623710.150 3365764.650 31.25000 2 8 3046 3063 3064 3047 4801 4818 4819 4802
+ 2628 623647.650 3365702.150 31.25000 2 8 3062 3086 3087 3063 4817 4841 4842 4818
+ 2629 623710.150 3365702.150 31.25000 2 8 3063 3087 3088 3064 4818 4842 4843 4819
+ 2630 623803.900 3365858.400 31.25000 2 8 3012 3047 3048 3013 4767 4802 4803 4768
+ 2631 623928.900 3365858.400 31.25000 2 8 3013 3048 3049 3014 4768 4803 4804 4769
+ 2632 623803.900 3365733.400 31.25000 2 8 3047 3088 3089 3048 4802 4843 4844 4803
+ 2633 623928.900 3365733.400 31.25000 2 8 3048 3089 3090 3049 4803 4844 4845 4804
+ 2634 624116.400 3365795.900 31.25000 2 8 3014 3090 3091 3015 4769 4845 4846 4770
+ 2635 624366.400 3365795.900 31.25000 2 8 3015 3091 3092 3016 4770 4846 4847 4771
+ 2636 624616.400 3365795.900 31.25000 2 8 3016 3092 3093 3017 4771 4847 4848 4772
+ 2637 619866.400 3365545.900 31.25000 2 8 3065 3109 3110 3066 4820 4864 4865 4821
+ 2638 620116.400 3365545.900 31.25000 2 8 3066 3110 3111 3067 4821 4865 4866 4822
+ 2639 620366.400 3365545.900 31.25000 2 8 3067 3111 3112 3068 4822 4866 4867 4823
+ 2640 620616.400 3365545.900 31.25000 2 8 3068 3112 3113 3069 4823 4867 4868 4824
+ 2641 620866.400 3365545.900 31.25000 2 8 3069 3113 3114 3070 4824 4868 4869 4825
+ 2642 621116.400 3365545.900 31.25000 2 8 3070 3114 3115 3072 4825 4869 4870 4827
+ 2643 621303.900 3365608.400 31.25000 2 8 3072 3097 3098 3074 4827 4852 4853 4829
+ 2644 621428.900 3365608.400 31.25000 2 8 3074 3098 3099 3076 4829 4853 4854 4831
+ 2645 621303.900 3365483.400 31.25000 2 8 3097 3115 3116 3098 4852 4870 4871 4853
+ 2646 621428.900 3365483.400 31.25000 2 8 3098 3116 3117 3099 4853 4871 4872 4854
+ 2647 621616.400 3365545.900 31.25000 2 8 3076 3117 3118 3078 4831 4872 4873 4833
+ 2648 621866.400 3365545.900 31.25000 2 8 3078 3118 3119 3079 4833 4873 4874 4834
+ 2649 622116.400 3365545.900 31.25000 2 8 3079 3119 3120 3080 4834 4874 4875 4835
+ 2650 622366.400 3365545.900 31.25000 2 8 3080 3120 3121 3081 4835 4875 4876 4836
+ 2651 622616.400 3365545.900 31.25000 2 8 3081 3121 3122 3082 4836 4876 4877 4837
+ 2652 622866.400 3365545.900 31.25000 2 8 3082 3122 3123 3083 4837 4877 4878 4838
+ 2653 623116.400 3365545.900 31.25000 2 8 3083 3123 3124 3084 4838 4878 4879 4839
+ 2654 623366.400 3365545.900 31.25000 2 8 3084 3124 3125 3085 4839 4879 4880 4840
+ 2655 623553.900 3365608.400 31.25000 2 8 3085 3100 3101 3086 4840 4855 4856 4841
+ 2656 623647.650 3365639.650 31.25000 2 8 3086 3094 3095 3087 4841 4849 4850 4842
+ 2657 623710.150 3365639.650 31.25000 2 8 3087 3095 3096 3088 4842 4850 4851 4843
+ 2658 623647.650 3365577.150 31.25000 2 8 3094 3101 3102 3095 4849 4856 4857 4850
+ 2659 623710.150 3365577.150 31.25000 2 8 3095 3102 3103 3096 4850 4857 4858 4851
+ 2660 623553.900 3365483.400 31.25000 2 8 3100 3125 3126 3101 4855 4880 4881 4856
+ 2661 623647.650 3365514.650 31.25000 2 8 3101 3106 3107 3102 4856 4861 4862 4857
+ 2662 623710.150 3365514.650 31.25000 2 8 3102 3107 3108 3103 4857 4862 4863 4858
+ 2663 623647.650 3365452.150 31.25000 2 8 3106 3126 3127 3107 4861 4881 4882 4862
+ 2664 623710.150 3365452.150 31.25000 2 8 3107 3127 3128 3108 4862 4882 4883 4863
+ 2665 623803.900 3365608.400 31.25000 2 8 3088 3103 3104 3089 4843 4858 4859 4844
+ 2666 623928.900 3365608.400 31.25000 2 8 3089 3104 3105 3090 4844 4859 4860 4845
+ 2667 623803.900 3365483.400 31.25000 2 8 3103 3128 3129 3104 4858 4883 4884 4859
+ 2668 623928.900 3365483.400 31.25000 2 8 3104 3129 3130 3105 4859 4884 4885 4860
+ 2669 624116.400 3365545.900 31.25000 2 8 3090 3130 3131 3091 4845 4885 4886 4846
+ 2670 624366.400 3365545.900 31.25000 2 8 3091 3131 3132 3092 4846 4886 4887 4847
+ 2671 624616.400 3365545.900 31.25000 2 8 3092 3132 3133 3093 4847 4887 4888 4848
+ 2672 619866.400 3365295.900 31.25000 2 8 3109 3146 3147 3110 4864 4901 4902 4865
+ 2673 620116.400 3365295.900 31.25000 2 8 3110 3147 3148 3111 4865 4902 4903 4866
+ 2674 620366.400 3365295.900 31.25000 2 8 3111 3148 3149 3112 4866 4903 4904 4867
+ 2675 620616.400 3365295.900 31.25000 2 8 3112 3149 3150 3113 4867 4904 4905 4868
+ 2676 620866.400 3365295.900 31.25000 2 8 3113 3150 3151 3114 4868 4905 4906 4869
+ 2677 621116.400 3365295.900 31.25000 2 8 3114 3151 3152 3115 4869 4906 4907 4870
+ 2678 621366.400 3365295.900 31.25000 2 8 3115 3152 3153 3117 4870 4907 4908 4872
+ 2679 621616.400 3365295.900 31.25000 2 8 3117 3153 3154 3118 4872 4908 4909 4873
+ 2680 621866.400 3365295.900 31.25000 2 8 3118 3154 3155 3119 4873 4909 4910 4874
+ 2681 622116.400 3365295.900 31.25000 2 8 3119 3155 3156 3120 4874 4910 4911 4875
+ 2682 622366.400 3365295.900 31.25000 2 8 3120 3156 3157 3121 4875 4911 4912 4876
+ 2683 622616.400 3365295.900 31.25000 2 8 3121 3157 3158 3122 4876 4912 4913 4877
+ 2684 622866.400 3365295.900 31.25000 2 8 3122 3158 3159 3123 4877 4913 4914 4878
+ 2685 623116.400 3365295.900 31.25000 2 8 3123 3159 3160 3124 4878 4914 4915 4879
+ 2686 623366.400 3365295.900 31.25000 2 8 3124 3160 3161 3125 4879 4915 4916 4880
+ 2687 623553.900 3365358.400 31.25000 2 8 3125 3137 3138 3126 4880 4892 4893 4881
+ 2688 623647.650 3365389.650 31.25000 2 8 3126 3134 3135 3127 4881 4889 4890 4882
+ 2689 623710.150 3365389.650 31.25000 2 8 3127 3135 3136 3128 4882 4890 4891 4883
+ 2690 623647.650 3365327.150 31.25000 2 8 3134 3138 3139 3135 4889 4893 4894 4890
+ 2691 623710.150 3365327.150 31.25000 2 8 3135 3139 3140 3136 4890 4894 4895 4891
+ 2692 623553.900 3365233.400 31.25000 2 8 3137 3161 3162 3138 4892 4916 4917 4893
+ 2693 623647.650 3365264.650 31.25000 2 8 3138 3143 3144 3139 4893 4898 4899 4894
+ 2694 623710.150 3365264.650 31.25000 2 8 3139 3144 3145 3140 4894 4899 4900 4895
+ 2695 623647.650 3365202.150 31.25000 2 8 3143 3162 3163 3144 4898 4917 4918 4899
+ 2696 623710.150 3365202.150 31.25000 2 8 3144 3163 3164 3145 4899 4918 4919 4900
+ 2697 623803.900 3365358.400 31.25000 2 8 3128 3140 3141 3129 4883 4895 4896 4884
+ 2698 623928.900 3365358.400 31.25000 2 8 3129 3141 3142 3130 4884 4896 4897 4885
+ 2699 623803.900 3365233.400 31.25000 2 8 3140 3164 3165 3141 4895 4919 4920 4896
+ 2700 623928.900 3365233.400 31.25000 2 8 3141 3165 3166 3142 4896 4920 4921 4897
+ 2701 624116.400 3365295.900 31.25000 2 8 3130 3166 3167 3131 4885 4921 4922 4886
+ 2702 624366.400 3365295.900 31.25000 2 8 3131 3167 3168 3132 4886 4922 4923 4887
+ 2703 624616.400 3365295.900 31.25000 2 8 3132 3168 3169 3133 4887 4923 4924 4888
+ 2704 619866.400 3365045.900 31.25000 2 8 3146 3182 3183 3147 4901 4937 4938 4902
+ 2705 620116.400 3365045.900 31.25000 2 8 3147 3183 3184 3148 4902 4938 4939 4903
+ 2706 620366.400 3365045.900 31.25000 2 8 3148 3184 3185 3149 4903 4939 4940 4904
+ 2707 620616.400 3365045.900 31.25000 2 8 3149 3185 3186 3150 4904 4940 4941 4905
+ 2708 620866.400 3365045.900 31.25000 2 8 3150 3186 3187 3151 4905 4941 4942 4906
+ 2709 621116.400 3365045.900 31.25000 2 8 3151 3187 3188 3152 4906 4942 4943 4907
+ 2710 621366.400 3365045.900 31.25000 2 8 3152 3188 3189 3153 4907 4943 4944 4908
+ 2711 621616.400 3365045.900 31.25000 2 8 3153 3189 3190 3154 4908 4944 4945 4909
+ 2712 621866.400 3365045.900 31.25000 2 8 3154 3190 3191 3155 4909 4945 4946 4910
+ 2713 622116.400 3365045.900 31.25000 2 8 3155 3191 3192 3156 4910 4946 4947 4911
+ 2714 622366.400 3365045.900 31.25000 2 8 3156 3192 3193 3157 4911 4947 4948 4912
+ 2715 622616.400 3365045.900 31.25000 2 8 3157 3193 3194 3158 4912 4948 4949 4913
+ 2716 622866.400 3365045.900 31.25000 2 8 3158 3194 3196 3159 4913 4949 4951 4914
+ 2717 623116.400 3365045.900 31.25000 2 8 3159 3196 3197 3160 4914 4951 4952 4915
+ 2718 623366.400 3365045.900 31.25000 2 8 3160 3197 3198 3161 4915 4952 4953 4916
+ 2719 623553.900 3365108.400 31.25000 2 8 3161 3173 3174 3162 4916 4928 4929 4917
+ 2720 623647.650 3365139.650 31.25000 2 8 3162 3170 3171 3163 4917 4925 4926 4918
+ 2721 623710.150 3365139.650 31.25000 2 8 3163 3171 3172 3164 4918 4926 4927 4919
+ 2722 623647.650 3365077.150 31.25000 2 8 3170 3174 3175 3171 4925 4929 4930 4926
+ 2723 623710.150 3365077.150 31.25000 2 8 3171 3175 3176 3172 4926 4930 4931 4927
+ 2724 623553.900 3364983.400 31.25000 2 8 3173 3198 3199 3174 4928 4953 4954 4929
+ 2725 623647.650 3365014.650 31.25000 2 8 3174 3179 3180 3175 4929 4934 4935 4930
+ 2726 623710.150 3365014.650 31.25000 2 8 3175 3180 3181 3176 4930 4935 4936 4931
+ 2727 623647.650 3364952.150 31.25000 2 8 3179 3199 3200 3180 4934 4954 4955 4935
+ 2728 623710.150 3364952.150 31.25000 2 8 3180 3200 3201 3181 4935 4955 4956 4936
+ 2729 623803.900 3365108.400 31.25000 2 8 3164 3176 3177 3165 4919 4931 4932 4920
+ 2730 623928.900 3365108.400 31.25000 2 8 3165 3177 3178 3166 4920 4932 4933 4921
+ 2731 623803.900 3364983.400 31.25000 2 8 3176 3201 3202 3177 4931 4956 4957 4932
+ 2732 623928.900 3364983.400 31.25000 2 8 3177 3202 3203 3178 4932 4957 4958 4933
+ 2733 624116.400 3365045.900 31.25000 2 8 3166 3203 3204 3167 4921 4958 4959 4922
+ 2734 624366.400 3365045.900 31.25000 2 8 3167 3204 3205 3168 4922 4959 4960 4923
+ 2735 624616.400 3365045.900 31.25000 2 8 3168 3205 3206 3169 4923 4960 4961 4924
+ 2736 619866.400 3364795.900 31.25000 2 8 3182 3222 3223 3183 4937 4977 4978 4938
+ 2737 620116.400 3364795.900 31.25000 2 8 3183 3223 3224 3184 4938 4978 4979 4939
+ 2738 620366.400 3364795.900 31.25000 2 8 3184 3224 3225 3185 4939 4979 4980 4940
+ 2739 620616.400 3364795.900 31.25000 2 8 3185 3225 3226 3186 4940 4980 4981 4941
+ 2740 620866.400 3364795.900 31.25000 2 8 3186 3226 3227 3187 4941 4981 4982 4942
+ 2741 621116.400 3364795.900 31.25000 2 8 3187 3227 3228 3188 4942 4982 4983 4943
+ 2742 621366.400 3364795.900 31.25000 2 8 3188 3228 3229 3189 4943 4983 4984 4944
+ 2743 621616.400 3364795.900 31.25000 2 8 3189 3229 3230 3190 4944 4984 4985 4945
+ 2744 621866.400 3364795.900 31.25000 2 8 3190 3230 3231 3191 4945 4985 4986 4946
+ 2745 622116.400 3364795.900 31.25000 2 8 3191 3231 3232 3192 4946 4986 4987 4947
+ 2746 622366.400 3364795.900 31.25000 2 8 3192 3232 3233 3193 4947 4987 4988 4948
+ 2747 622616.400 3364795.900 31.25000 2 8 3193 3233 3235 3194 4948 4988 4990 4949
+ 2748 622803.900 3364858.400 31.25000 2 8 3194 3210 3211 3195 4949 4965 4966 4950
+ 2749 622928.900 3364858.400 31.25000 2 8 3195 3211 3212 3196 4950 4966 4967 4951
+ 2750 622803.900 3364733.400 31.25000 2 8 3210 3235 3237 3211 4965 4990 4992 4966
+ 2751 622928.900 3364733.400 31.25000 2 8 3211 3237 3239 3212 4966 4992 4994 4967
+ 2752 623116.400 3364795.900 31.25000 2 8 3196 3239 3241 3197 4951 4994 4996 4952
+ 2753 623366.400 3364795.900 31.25000 2 8 3197 3241 3242 3198 4952 4996 4997 4953
+ 2754 623553.900 3364858.400 31.25000 2 8 3198 3213 3214 3199 4953 4968 4969 4954
+ 2755 623647.650 3364889.650 31.25000 2 8 3199 3207 3208 3200 4954 4962 4963 4955
+ 2756 623710.150 3364889.650 31.25000 2 8 3200 3208 3209 3201 4955 4963 4964 4956
+ 2757 623647.650 3364827.150 31.25000 2 8 3207 3214 3215 3208 4962 4969 4970 4963
+ 2758 623710.150 3364827.150 31.25000 2 8 3208 3215 3216 3209 4963 4970 4971 4964
+ 2759 623553.900 3364733.400 31.25000 2 8 3213 3242 3243 3214 4968 4997 4998 4969
+ 2760 623647.650 3364764.650 31.25000 2 8 3214 3219 3220 3215 4969 4974 4975 4970
+ 2761 623710.150 3364764.650 31.25000 2 8 3215 3220 3221 3216 4970 4975 4976 4971
+ 2762 623647.650 3364702.150 31.25000 2 8 3219 3243 3244 3220 4974 4998 4999 4975
+ 2763 623710.150 3364702.150 31.25000 2 8 3220 3244 3245 3221 4975 4999 5000 4976
+ 2764 623803.900 3364858.400 31.25000 2 8 3201 3216 3217 3202 4956 4971 4972 4957
+ 2765 623928.900 3364858.400 31.25000 2 8 3202 3217 3218 3203 4957 4972 4973 4958
+ 2766 623803.900 3364733.400 31.25000 2 8 3216 3245 3246 3217 4971 5000 5001 4972
+ 2767 623928.900 3364733.400 31.25000 2 8 3217 3246 3247 3218 4972 5001 5002 4973
+ 2768 624116.400 3364795.900 31.25000 2 8 3203 3247 3248 3204 4958 5002 5003 4959
+ 2769 624366.400 3364795.900 31.25000 2 8 3204 3248 3249 3205 4959 5003 5004 4960
+ 2770 624616.400 3364795.900 31.25000 2 8 3205 3249 3250 3206 4960 5004 5005 4961
+ 2771 619866.400 3364545.900 31.25000 2 8 3222 3298 3299 3223 4977 5053 5054 4978
+ 2772 620116.400 3364545.900 31.25000 2 8 3223 3299 3300 3224 4978 5054 5055 4979
+ 2773 620366.400 3364545.900 31.25000 2 8 3224 3300 3301 3225 4979 5055 5056 4980
+ 2774 620616.400 3364545.900 31.25000 2 8 3225 3301 3302 3226 4980 5056 5057 4981
+ 2775 620866.400 3364545.900 31.25000 2 8 3226 3302 3303 3227 4981 5057 5058 4982
+ 2776 621116.400 3364545.900 31.25000 2 8 3227 3303 3304 3228 4982 5058 5059 4983
+ 2777 621366.400 3364545.900 31.25000 2 8 3228 3304 3305 3229 4983 5059 5060 4984
+ 2778 621616.400 3364545.900 31.25000 2 8 3229 3305 3306 3230 4984 5060 5061 4985
+ 2779 621866.400 3364545.900 31.25000 2 8 3230 3306 3307 3231 4985 5061 5062 4986
+ 2780 622116.400 3364545.900 31.25000 2 8 3231 3307 3308 3232 4986 5062 5063 4987
+ 2781 622366.400 3364545.900 31.25000 2 8 3232 3308 3309 3233 4987 5063 5064 4988
+ 2782 622553.900 3364608.400 31.25000 2 8 3233 3266 3267 3234 4988 5021 5022 4989
+ 2783 622678.900 3364608.400 31.25000 2 8 3234 3267 3268 3235 4989 5022 5023 4990
+ 2784 622553.900 3364483.400 31.25000 2 8 3266 3309 3310 3267 5021 5064 5065 5022
+ 2785 622678.900 3364483.400 31.25000 2 8 3267 3310 3311 3268 5022 5065 5066 5023
+ 2786 622772.650 3364639.650 31.25000 2 8 3235 3251 3252 3236 4990 5006 5007 4991
+ 2787 622835.150 3364639.650 31.25000 2 8 3236 3252 3254 3237 4991 5007 5009 4992
+ 2788 622772.650 3364577.150 31.25000 2 8 3251 3268 3269 3252 5006 5023 5024 5007
+ 2789 622819.525 3364592.775 31.25000 2 8 3252 3261 3262 3253 5007 5016 5017 5008
+ 2790 622850.775 3364592.775 31.25000 2 8 3253 3262 3263 3254 5008 5017 5018 5009
+ 2791 622819.525 3364561.525 31.25000 2 8 3261 3269 3270 3262 5016 5024 5025 5017
+ 2792 622850.775 3364561.525 31.25000 2 8 3262 3270 3271 3263 5017 5025 5026 5018
+ 2793 622897.650 3364639.650 31.25000 2 8 3237 3254 3256 3238 4992 5009 5011 4993
+ 2794 622960.150 3364639.650 31.25000 2 8 3238 3256 3257 3239 4993 5011 5012 4994
+ 2795 622882.025 3364592.775 31.25000 2 8 3254 3263 3264 3255 5009 5018 5019 5010
+ 2796 622913.275 3364592.775 31.25000 2 8 3255 3264 3265 3256 5010 5019 5020 5011
+ 2797 622882.025 3364561.525 31.25000 2 8 3263 3271 3272 3264 5018 5026 5027 5019
+ 2798 622913.275 3364561.525 31.25000 2 8 3264 3272 3273 3265 5019 5027 5028 5020
+ 2799 622960.150 3364577.150 31.25000 2 8 3256 3273 3274 3257 5011 5028 5029 5012
+ 2800 622772.650 3364514.650 31.25000 2 8 3268 3288 3289 3269 5023 5043 5044 5024
+ 2801 622819.525 3364530.275 31.25000 2 8 3269 3283 3284 3270 5024 5038 5039 5025
+ 2802 622850.775 3364530.275 31.25000 2 8 3270 3284 3285 3271 5025 5039 5040 5026
+ 2803 622819.525 3364499.025 31.25000 2 8 3283 3289 3290 3284 5038 5044 5045 5039
+ 2804 622850.775 3364499.025 31.25000 2 8 3284 3290 3291 3285 5039 5045 5046 5040
+ 2805 622772.650 3364452.150 31.25000 2 8 3288 3311 3312 3289 5043 5066 5067 5044
+ 2806 622835.150 3364452.150 31.25000 2 8 3289 3312 3313 3291 5044 5067 5068 5046
+ 2807 622882.025 3364530.275 31.25000 2 8 3271 3285 3286 3272 5026 5040 5041 5027
+ 2808 622913.275 3364530.275 31.25000 2 8 3272 3286 3287 3273 5027 5041 5042 5028
+ 2809 622882.025 3364499.025 31.25000 2 8 3285 3291 3292 3286 5040 5046 5047 5041
+ 2810 622913.275 3364499.025 31.25000 2 8 3286 3292 3293 3287 5041 5047 5048 5042
+ 2811 622960.150 3364514.650 31.25000 2 8 3273 3293 3294 3274 5028 5048 5049 5029
+ 2812 622897.650 3364452.150 31.25000 2 8 3291 3313 3314 3293 5046 5068 5069 5048
+ 2813 622960.150 3364452.150 31.25000 2 8 3293 3314 3315 3294 5048 5069 5070 5049
+ 2814 623053.900 3364608.400 31.25000 2 8 3239 3274 3275 3240 4994 5029 5030 4995
+ 2815 623178.900 3364608.400 31.25000 2 8 3240 3275 3276 3241 4995 5030 5031 4996
+ 2816 623053.900 3364483.400 31.25000 2 8 3274 3315 3316 3275 5029 5070 5071 5030
+ 2817 623178.900 3364483.400 31.25000 2 8 3275 3316 3317 3276 5030 5071 5072 5031
+ 2818 623366.400 3364545.900 31.25000 2 8 3241 3317 3318 3242 4996 5072 5073 4997
+ 2819 623553.900 3364608.400 31.25000 2 8 3242 3277 3278 3243 4997 5032 5033 4998
+ 2820 623647.650 3364639.650 31.25000 2 8 3243 3258 3259 3244 4998 5013 5014 4999
+ 2821 623710.150 3364639.650 31.25000 2 8 3244 3259 3260 3245 4999 5014 5015 5000
+ 2822 623647.650 3364577.150 31.25000 2 8 3258 3278 3279 3259 5013 5033 5034 5014
+ 2823 623710.150 3364577.150 31.25000 2 8 3259 3279 3280 3260 5014 5034 5035 5015
+ 2824 623553.900 3364483.400 31.25000 2 8 3277 3318 3319 3278 5032 5073 5074 5033
+ 2825 623647.650 3364514.650 31.25000 2 8 3278 3295 3296 3279 5033 5050 5051 5034
+ 2826 623710.150 3364514.650 31.25000 2 8 3279 3296 3297 3280 5034 5051 5052 5035
+ 2827 623647.650 3364452.150 31.25000 2 8 3295 3319 3320 3296 5050 5074 5075 5051
+ 2828 623710.150 3364452.150 31.25000 2 8 3296 3320 3321 3297 5051 5075 5076 5052
+ 2829 623803.900 3364608.400 31.25000 2 8 3245 3280 3281 3246 5000 5035 5036 5001
+ 2830 623928.900 3364608.400 31.25000 2 8 3246 3281 3282 3247 5001 5036 5037 5002
+ 2831 623803.900 3364483.400 31.25000 2 8 3280 3321 3322 3281 5035 5076 5077 5036
+ 2832 623928.900 3364483.400 31.25000 2 8 3281 3322 3323 3282 5036 5077 5078 5037
+ 2833 624116.400 3364545.900 31.25000 2 8 3247 3323 3324 3248 5002 5078 5079 5003
+ 2834 624366.400 3364545.900 31.25000 2 8 3248 3324 3325 3249 5003 5079 5080 5004
+ 2835 624616.400 3364545.900 31.25000 2 8 3249 3325 3326 3250 5004 5080 5081 5005
+ 2836 619866.400 3364295.900 31.25000 2 8 3298 3342 3343 3299 5053 5097 5098 5054
+ 2837 620116.400 3364295.900 31.25000 2 8 3299 3343 3344 3300 5054 5098 5099 5055
+ 2838 620366.400 3364295.900 31.25000 2 8 3300 3344 3345 3301 5055 5099 5100 5056
+ 2839 620616.400 3364295.900 31.25000 2 8 3301 3345 3346 3302 5056 5100 5101 5057
+ 2840 620866.400 3364295.900 31.25000 2 8 3302 3346 3347 3303 5057 5101 5102 5058
+ 2841 621116.400 3364295.900 31.25000 2 8 3303 3347 3348 3304 5058 5102 5103 5059
+ 2842 621366.400 3364295.900 31.25000 2 8 3304 3348 3349 3305 5059 5103 5104 5060
+ 2843 621616.400 3364295.900 31.25000 2 8 3305 3349 3350 3306 5060 5104 5105 5061
+ 2844 621866.400 3364295.900 31.25000 2 8 3306 3350 3351 3307 5061 5105 5106 5062
+ 2845 622116.400 3364295.900 31.25000 2 8 3307 3351 3352 3308 5062 5106 5107 5063
+ 2846 622366.400 3364295.900 31.25000 2 8 3308 3352 3353 3309 5063 5107 5108 5064
+ 2847 622616.400 3364295.900 31.25000 2 8 3309 3353 3354 3311 5064 5108 5109 5066
+ 2848 622803.900 3364358.400 31.25000 2 8 3311 3330 3331 3313 5066 5085 5086 5068
+ 2849 622928.900 3364358.400 31.25000 2 8 3313 3331 3332 3315 5068 5086 5087 5070
+ 2850 622803.900 3364233.400 31.25000 2 8 3330 3354 3355 3331 5085 5109 5110 5086
+ 2851 622928.900 3364233.400 31.25000 2 8 3331 3355 3356 3332 5086 5110 5111 5087
+ 2852 623116.400 3364295.900 31.25000 2 8 3315 3356 3357 3317 5070 5111 5112 5072
+ 2853 623366.400 3364295.900 31.25000 2 8 3317 3357 3358 3318 5072 5112 5113 5073
+ 2854 623553.900 3364358.400 31.25000 2 8 3318 3333 3334 3319 5073 5088 5089 5074
+ 2855 623647.650 3364389.650 31.25000 2 8 3319 3327 3328 3320 5074 5082 5083 5075
+ 2856 623710.150 3364389.650 31.25000 2 8 3320 3328 3329 3321 5075 5083 5084 5076
+ 2857 623647.650 3364327.150 31.25000 2 8 3327 3334 3335 3328 5082 5089 5090 5083
+ 2858 623710.150 3364327.150 31.25000 2 8 3328 3335 3336 3329 5083 5090 5091 5084
+ 2859 623553.900 3364233.400 31.25000 2 8 3333 3358 3359 3334 5088 5113 5114 5089
+ 2860 623647.650 3364264.650 31.25000 2 8 3334 3339 3340 3335 5089 5094 5095 5090
+ 2861 623710.150 3364264.650 31.25000 2 8 3335 3340 3341 3336 5090 5095 5096 5091
+ 2862 623647.650 3364202.150 31.25000 2 8 3339 3359 3360 3340 5094 5114 5115 5095
+ 2863 623710.150 3364202.150 31.25000 2 8 3340 3360 3361 3341 5095 5115 5116 5096
+ 2864 623803.900 3364358.400 31.25000 2 8 3321 3336 3337 3322 5076 5091 5092 5077
+ 2865 623928.900 3364358.400 31.25000 2 8 3322 3337 3338 3323 5077 5092 5093 5078
+ 2866 623803.900 3364233.400 31.25000 2 8 3336 3361 3362 3337 5091 5116 5117 5092
+ 2867 623928.900 3364233.400 31.25000 2 8 3337 3362 3363 3338 5092 5117 5118 5093
+ 2868 624116.400 3364295.900 31.25000 2 8 3323 3363 3364 3324 5078 5118 5119 5079
+ 2869 624366.400 3364295.900 31.25000 2 8 3324 3364 3365 3325 5079 5119 5120 5080
+ 2870 624616.400 3364295.900 31.25000 2 8 3325 3365 3366 3326 5080 5120 5121 5081
+ 2871 619866.400 3364045.900 31.25000 2 8 3342 3379 3380 3343 5097 5134 5135 5098
+ 2872 620116.400 3364045.900 31.25000 2 8 3343 3380 3381 3344 5098 5135 5136 5099
+ 2873 620366.400 3364045.900 31.25000 2 8 3344 3381 3382 3345 5099 5136 5137 5100
+ 2874 620616.400 3364045.900 31.25000 2 8 3345 3382 3383 3346 5100 5137 5138 5101
+ 2875 620866.400 3364045.900 31.25000 2 8 3346 3383 3384 3347 5101 5138 5139 5102
+ 2876 621116.400 3364045.900 31.25000 2 8 3347 3384 3385 3348 5102 5139 5140 5103
+ 2877 621366.400 3364045.900 31.25000 2 8 3348 3385 3386 3349 5103 5140 5141 5104
+ 2878 621616.400 3364045.900 31.25000 2 8 3349 3386 3387 3350 5104 5141 5142 5105
+ 2879 621866.400 3364045.900 31.25000 2 8 3350 3387 3388 3351 5105 5142 5143 5106
+ 2880 622116.400 3364045.900 31.25000 2 8 3351 3388 3389 3352 5106 5143 5144 5107
+ 2881 622366.400 3364045.900 31.25000 2 8 3352 3389 3390 3353 5107 5144 5145 5108
+ 2882 622616.400 3364045.900 31.25000 2 8 3353 3390 3391 3354 5108 5145 5146 5109
+ 2883 622866.400 3364045.900 31.25000 2 8 3354 3391 3392 3356 5109 5146 5147 5111
+ 2884 623116.400 3364045.900 31.25000 2 8 3356 3392 3393 3357 5111 5147 5148 5112
+ 2885 623366.400 3364045.900 31.25000 2 8 3357 3393 3394 3358 5112 5148 5149 5113
+ 2886 623553.900 3364108.400 31.25000 2 8 3358 3370 3371 3359 5113 5125 5126 5114
+ 2887 623647.650 3364139.650 31.25000 2 8 3359 3367 3368 3360 5114 5122 5123 5115
+ 2888 623710.150 3364139.650 31.25000 2 8 3360 3368 3369 3361 5115 5123 5124 5116
+ 2889 623647.650 3364077.150 31.25000 2 8 3367 3371 3372 3368 5122 5126 5127 5123
+ 2890 623710.150 3364077.150 31.25000 2 8 3368 3372 3373 3369 5123 5127 5128 5124
+ 2891 623553.900 3363983.400 31.25000 2 8 3370 3394 3395 3371 5125 5149 5150 5126
+ 2892 623647.650 3364014.650 31.25000 2 8 3371 3376 3377 3372 5126 5131 5132 5127
+ 2893 623710.150 3364014.650 31.25000 2 8 3372 3377 3378 3373 5127 5132 5133 5128
+ 2894 623647.650 3363952.150 31.25000 2 8 3376 3395 3396 3377 5131 5150 5151 5132
+ 2895 623710.150 3363952.150 31.25000 2 8 3377 3396 3397 3378 5132 5151 5152 5133
+ 2896 623803.900 3364108.400 31.25000 2 8 3361 3373 3374 3362 5116 5128 5129 5117
+ 2897 623928.900 3364108.400 31.25000 2 8 3362 3374 3375 3363 5117 5129 5130 5118
+ 2898 623803.900 3363983.400 31.25000 2 8 3373 3397 3398 3374 5128 5152 5153 5129
+ 2899 623928.900 3363983.400 31.25000 2 8 3374 3398 3399 3375 5129 5153 5154 5130
+ 2900 624116.400 3364045.900 31.25000 2 8 3363 3399 3400 3364 5118 5154 5155 5119
+ 2901 624366.400 3364045.900 31.25000 2 8 3364 3400 3401 3365 5119 5155 5156 5120
+ 2902 624616.400 3364045.900 31.25000 2 8 3365 3401 3402 3366 5120 5156 5157 5121
+ 2903 619866.400 3363795.900 31.25000 2 8 3379 3415 3416 3380 5134 5170 5171 5135
+ 2904 620116.400 3363795.900 31.25000 2 8 3380 3416 3417 3381 5135 5171 5172 5136
+ 2905 620366.400 3363795.900 31.25000 2 8 3381 3417 3418 3382 5136 5172 5173 5137
+ 2906 620616.400 3363795.900 31.25000 2 8 3382 3418 3419 3383 5137 5173 5174 5138
+ 2907 620866.400 3363795.900 31.25000 2 8 3383 3419 3420 3384 5138 5174 5175 5139
+ 2908 621116.400 3363795.900 31.25000 2 8 3384 3420 3421 3385 5139 5175 5176 5140
+ 2909 621366.400 3363795.900 31.25000 2 8 3385 3421 3422 3386 5140 5176 5177 5141
+ 2910 621616.400 3363795.900 31.25000 2 8 3386 3422 3423 3387 5141 5177 5178 5142
+ 2911 621866.400 3363795.900 31.25000 2 8 3387 3423 3424 3388 5142 5178 5179 5143
+ 2912 622116.400 3363795.900 31.25000 2 8 3388 3424 3425 3389 5143 5179 5180 5144
+ 2913 622366.400 3363795.900 31.25000 2 8 3389 3425 3426 3390 5144 5180 5181 5145
+ 2914 622616.400 3363795.900 31.25000 2 8 3390 3426 3427 3391 5145 5181 5182 5146
+ 2915 622866.400 3363795.900 31.25000 2 8 3391 3427 3428 3392 5146 5182 5183 5147
+ 2916 623116.400 3363795.900 31.25000 2 8 3392 3428 3429 3393 5147 5183 5184 5148
+ 2917 623366.400 3363795.900 31.25000 2 8 3393 3429 3430 3394 5148 5184 5185 5149
+ 2918 623553.900 3363858.400 31.25000 2 8 3394 3406 3407 3395 5149 5161 5162 5150
+ 2919 623647.650 3363889.650 31.25000 2 8 3395 3403 3404 3396 5150 5158 5159 5151
+ 2920 623710.150 3363889.650 31.25000 2 8 3396 3404 3405 3397 5151 5159 5160 5152
+ 2921 623647.650 3363827.150 31.25000 2 8 3403 3407 3408 3404 5158 5162 5163 5159
+ 2922 623710.150 3363827.150 31.25000 2 8 3404 3408 3409 3405 5159 5163 5164 5160
+ 2923 623553.900 3363733.400 31.25000 2 8 3406 3430 3431 3407 5161 5185 5186 5162
+ 2924 623647.650 3363764.650 31.25000 2 8 3407 3412 3413 3408 5162 5167 5168 5163
+ 2925 623710.150 3363764.650 31.25000 2 8 3408 3413 3414 3409 5163 5168 5169 5164
+ 2926 623647.650 3363702.150 31.25000 2 8 3412 3431 3432 3413 5167 5186 5187 5168
+ 2927 623710.150 3363702.150 31.25000 2 8 3413 3432 3433 3414 5168 5187 5188 5169
+ 2928 623803.900 3363858.400 31.25000 2 8 3397 3409 3410 3398 5152 5164 5165 5153
+ 2929 623928.900 3363858.400 31.25000 2 8 3398 3410 3411 3399 5153 5165 5166 5154
+ 2930 623803.900 3363733.400 31.25000 2 8 3409 3433 3434 3410 5164 5188 5189 5165
+ 2931 623928.900 3363733.400 31.25000 2 8 3410 3434 3435 3411 5165 5189 5190 5166
+ 2932 624116.400 3363795.900 31.25000 2 8 3399 3435 3436 3400 5154 5190 5191 5155
+ 2933 624366.400 3363795.900 31.25000 2 8 3400 3436 3437 3401 5155 5191 5192 5156
+ 2934 624616.400 3363795.900 31.25000 2 8 3401 3437 3438 3402 5156 5192 5193 5157
+ 2935 619866.400 3363545.900 31.25000 2 8 3415 3451 3452 3416 5170 5206 5207 5171
+ 2936 620116.400 3363545.900 31.25000 2 8 3416 3452 3453 3417 5171 5207 5208 5172
+ 2937 620366.400 3363545.900 31.25000 2 8 3417 3453 3454 3418 5172 5208 5209 5173
+ 2938 620616.400 3363545.900 31.25000 2 8 3418 3454 3455 3419 5173 5209 5210 5174
+ 2939 620866.400 3363545.900 31.25000 2 8 3419 3455 3456 3420 5174 5210 5211 5175
+ 2940 621116.400 3363545.900 31.25000 2 8 3420 3456 3457 3421 5175 5211 5212 5176
+ 2941 621366.400 3363545.900 31.25000 2 8 3421 3457 3458 3422 5176 5212 5213 5177
+ 2942 621616.400 3363545.900 31.25000 2 8 3422 3458 3459 3423 5177 5213 5214 5178
+ 2943 621866.400 3363545.900 31.25000 2 8 3423 3459 3460 3424 5178 5214 5215 5179
+ 2944 622116.400 3363545.900 31.25000 2 8 3424 3460 3461 3425 5179 5215 5216 5180
+ 2945 622366.400 3363545.900 31.25000 2 8 3425 3461 3462 3426 5180 5216 5217 5181
+ 2946 622616.400 3363545.900 31.25000 2 8 3426 3462 3463 3427 5181 5217 5218 5182
+ 2947 622866.400 3363545.900 31.25000 2 8 3427 3463 3464 3428 5182 5218 5219 5183
+ 2948 623116.400 3363545.900 31.25000 2 8 3428 3464 3465 3429 5183 5219 5220 5184
+ 2949 623366.400 3363545.900 31.25000 2 8 3429 3465 3466 3430 5184 5220 5221 5185
+ 2950 623553.900 3363608.400 31.25000 2 8 3430 3442 3443 3431 5185 5197 5198 5186
+ 2951 623647.650 3363639.650 31.25000 2 8 3431 3439 3440 3432 5186 5194 5195 5187
+ 2952 623710.150 3363639.650 31.25000 2 8 3432 3440 3441 3433 5187 5195 5196 5188
+ 2953 623647.650 3363577.150 31.25000 2 8 3439 3443 3444 3440 5194 5198 5199 5195
+ 2954 623710.150 3363577.150 31.25000 2 8 3440 3444 3445 3441 5195 5199 5200 5196
+ 2955 623553.900 3363483.400 31.25000 2 8 3442 3466 3467 3443 5197 5221 5222 5198
+ 2956 623647.650 3363514.650 31.25000 2 8 3443 3448 3449 3444 5198 5203 5204 5199
+ 2957 623710.150 3363514.650 31.25000 2 8 3444 3449 3450 3445 5199 5204 5205 5200
+ 2958 623647.650 3363452.150 31.25000 2 8 3448 3467 3468 3449 5203 5222 5223 5204
+ 2959 623710.150 3363452.150 31.25000 2 8 3449 3468 3469 3450 5204 5223 5224 5205
+ 2960 623803.900 3363608.400 31.25000 2 8 3433 3445 3446 3434 5188 5200 5201 5189
+ 2961 623928.900 3363608.400 31.25000 2 8 3434 3446 3447 3435 5189 5201 5202 5190
+ 2962 623803.900 3363483.400 31.25000 2 8 3445 3469 3470 3446 5200 5224 5225 5201
+ 2963 623928.900 3363483.400 31.25000 2 8 3446 3470 3471 3447 5201 5225 5226 5202
+ 2964 624116.400 3363545.900 31.25000 2 8 3435 3471 3472 3436 5190 5226 5227 5191
+ 2965 624366.400 3363545.900 31.25000 2 8 3436 3472 3473 3437 5191 5227 5228 5192
+ 2966 624616.400 3363545.900 31.25000 2 8 3437 3473 3474 3438 5192 5228 5229 5193
+ 2967 619866.400 3363295.900 31.25000 2 8 3451 3487 3488 3452 5206 5242 5243 5207
+ 2968 620116.400 3363295.900 31.25000 2 8 3452 3488 3489 3453 5207 5243 5244 5208
+ 2969 620366.400 3363295.900 31.25000 2 8 3453 3489 3490 3454 5208 5244 5245 5209
+ 2970 620616.400 3363295.900 31.25000 2 8 3454 3490 3491 3455 5209 5245 5246 5210
+ 2971 620866.400 3363295.900 31.25000 2 8 3455 3491 3492 3456 5210 5246 5247 5211
+ 2972 621116.400 3363295.900 31.25000 2 8 3456 3492 3493 3457 5211 5247 5248 5212
+ 2973 621366.400 3363295.900 31.25000 2 8 3457 3493 3494 3458 5212 5248 5249 5213
+ 2974 621616.400 3363295.900 31.25000 2 8 3458 3494 3495 3459 5213 5249 5250 5214
+ 2975 621866.400 3363295.900 31.25000 2 8 3459 3495 3496 3460 5214 5250 5251 5215
+ 2976 622116.400 3363295.900 31.25000 2 8 3460 3496 3497 3461 5215 5251 5252 5216
+ 2977 622366.400 3363295.900 31.25000 2 8 3461 3497 3498 3462 5216 5252 5253 5217
+ 2978 622616.400 3363295.900 31.25000 2 8 3462 3498 3499 3463 5217 5253 5254 5218
+ 2979 622866.400 3363295.900 31.25000 2 8 3463 3499 3500 3464 5218 5254 5255 5219
+ 2980 623116.400 3363295.900 31.25000 2 8 3464 3500 3501 3465 5219 5255 5256 5220
+ 2981 623366.400 3363295.900 31.25000 2 8 3465 3501 3502 3466 5220 5256 5257 5221
+ 2982 623553.900 3363358.400 31.25000 2 8 3466 3478 3479 3467 5221 5233 5234 5222
+ 2983 623647.650 3363389.650 31.25000 2 8 3467 3475 3476 3468 5222 5230 5231 5223
+ 2984 623710.150 3363389.650 31.25000 2 8 3468 3476 3477 3469 5223 5231 5232 5224
+ 2985 623647.650 3363327.150 31.25000 2 8 3475 3479 3480 3476 5230 5234 5235 5231
+ 2986 623710.150 3363327.150 31.25000 2 8 3476 3480 3481 3477 5231 5235 5236 5232
+ 2987 623553.900 3363233.400 31.25000 2 8 3478 3502 3503 3479 5233 5257 5258 5234
+ 2988 623647.650 3363264.650 31.25000 2 8 3479 3484 3485 3480 5234 5239 5240 5235
+ 2989 623710.150 3363264.650 31.25000 2 8 3480 3485 3486 3481 5235 5240 5241 5236
+ 2990 623647.650 3363202.150 31.25000 2 8 3484 3503 3504 3485 5239 5258 5259 5240
+ 2991 623710.150 3363202.150 31.25000 2 8 3485 3504 3505 3486 5240 5259 5260 5241
+ 2992 623803.900 3363358.400 31.25000 2 8 3469 3481 3482 3470 5224 5236 5237 5225
+ 2993 623928.900 3363358.400 31.25000 2 8 3470 3482 3483 3471 5225 5237 5238 5226
+ 2994 623803.900 3363233.400 31.25000 2 8 3481 3505 3506 3482 5236 5260 5261 5237
+ 2995 623928.900 3363233.400 31.25000 2 8 3482 3506 3507 3483 5237 5261 5262 5238
+ 2996 624116.400 3363295.900 31.25000 2 8 3471 3507 3508 3472 5226 5262 5263 5227
+ 2997 624366.400 3363295.900 31.25000 2 8 3472 3508 3509 3473 5227 5263 5264 5228
+ 2998 624616.400 3363295.900 31.25000 2 8 3473 3509 3510 3474 5228 5264 5265 5229
+ 2999 619866.400 3373045.900 19.44033 3 8 3511 3547 3548 3512 5266 5302 5303 5267
+ 3000 620116.400 3373045.900 19.32793 3 8 3512 3548 3549 3513 5267 5303 5304 5268
+ 3001 620366.400 3373045.900 19.18542 3 8 3513 3549 3550 3514 5268 5304 5305 5269
+ 3002 620616.400 3373045.900 19.01229 3 8 3514 3550 3551 3515 5269 5305 5306 5270
+ 3003 620866.400 3373045.900 18.80908 3 8 3515 3551 3552 3516 5270 5306 5307 5271
+ 3004 621116.400 3373045.900 18.57730 3 8 3516 3552 3553 3517 5271 5307 5308 5272
+ 3005 621366.400 3373045.900 18.31965 3 8 3517 3553 3554 3518 5272 5308 5309 5273
+ 3006 621616.400 3373045.900 18.04167 3 8 3518 3554 3555 3519 5273 5309 5310 5274
+ 3007 621866.400 3373045.900 17.75713 3 8 3519 3555 3556 3520 5274 5310 5311 5275
+ 3008 622116.400 3373045.900 17.49769 3 8 3520 3556 3557 3521 5275 5311 5312 5276
+ 3009 622366.400 3373045.900 17.29588 3 8 3521 3557 3558 3522 5276 5312 5313 5277
+ 3010 622616.400 3373045.900 17.22761 3 8 3522 3558 3559 3523 5277 5313 5314 5278
+ 3011 622866.400 3373045.900 17.26496 3 8 3523 3559 3560 3524 5278 5314 5315 5279
+ 3012 623116.400 3373045.900 17.37351 3 8 3524 3560 3561 3525 5279 5315 5316 5280
+ 3013 623366.400 3373045.900 17.50772 3 8 3525 3561 3562 3526 5280 5316 5317 5281
+ 3014 623553.900 3373108.400 17.60473 3 8 3526 3538 3539 3527 5281 5293 5294 5282
+ 3015 623647.650 3373139.650 17.64890 3 8 3527 3535 3536 3528 5282 5290 5291 5283
+ 3016 623710.150 3373139.650 17.67257 3 8 3528 3536 3537 3529 5283 5291 5292 5284
+ 3017 623647.650 3373077.150 17.64890 3 8 3535 3539 3540 3536 5290 5294 5295 5291
+ 3018 623710.150 3373077.150 17.67257 3 8 3536 3540 3541 3537 5291 5295 5296 5292
+ 3019 623553.900 3372983.400 17.60810 3 8 3538 3562 3563 3539 5293 5317 5318 5294
+ 3020 623647.650 3373014.650 17.65270 3 8 3539 3544 3545 3540 5294 5299 5300 5295
+ 3021 623710.150 3373014.650 17.67733 3 8 3540 3545 3546 3541 5295 5300 5301 5296
+ 3022 623647.650 3372952.150 17.66030 3 8 3544 3563 3564 3545 5299 5318 5319 5300
+ 3023 623710.150 3372952.150 17.68685 3 8 3545 3564 3565 3546 5300 5319 5320 5301
+ 3024 623803.900 3373108.400 17.70807 3 8 3529 3541 3542 3530 5284 5296 5297 5285
+ 3025 623928.900 3373108.400 17.74281 3 8 3530 3542 3543 3531 5285 5297 5298 5286
+ 3026 623803.900 3372983.400 17.72047 3 8 3541 3565 3566 3542 5296 5320 5321 5297
+ 3027 623928.900 3372983.400 17.75674 3 8 3542 3566 3567 3543 5297 5321 5322 5298
+ 3028 624116.400 3373045.900 17.77600 3 8 3531 3567 3568 3532 5286 5322 5323 5287
+ 3029 624366.400 3373045.900 17.77643 3 8 3532 3568 3569 3533 5287 5323 5324 5288
+ 3030 624616.400 3373045.900 17.75065 3 8 3533 3569 3570 3534 5288 5324 5325 5289
+ 3031 619866.400 3372795.900 19.61461 3 8 3547 3583 3584 3548 5302 5338 5339 5303
+ 3032 620116.400 3372795.900 19.50126 3 8 3548 3584 3585 3549 5303 5339 5340 5304
+ 3033 620366.400 3372795.900 19.35294 3 8 3549 3585 3586 3550 5304 5340 5341 5305
+ 3034 620616.400 3372795.900 19.16876 3 8 3550 3586 3587 3551 5305 5341 5342 5306
+ 3035 620866.400 3372795.900 18.94909 3 8 3551 3587 3588 3552 5306 5342 5343 5307
+ 3036 621116.400 3372795.900 18.69487 3 8 3552 3588 3589 3553 5307 5343 5344 5308
+ 3037 621366.400 3372795.900 18.40660 3 8 3553 3589 3590 3554 5308 5344 5345 5309
+ 3038 621616.400 3372795.900 18.08380 3 8 3554 3590 3591 3555 5309 5345 5346 5310
+ 3039 621866.400 3372795.900 17.72961 3 8 3555 3591 3592 3556 5310 5346 5347 5311
+ 3040 622116.400 3372795.900 17.37456 3 8 3556 3592 3593 3557 5311 5347 5348 5312
+ 3041 622366.400 3372795.900 17.10326 3 8 3557 3593 3594 3558 5312 5348 5349 5313
+ 3042 622616.400 3372795.900 17.03639 3 8 3558 3594 3595 3559 5313 5349 5350 5314
+ 3043 622866.400 3372795.900 17.12468 3 8 3559 3595 3596 3560 5314 5350 5351 5315
+ 3044 623116.400 3372795.900 17.29077 3 8 3560 3596 3597 3561 5315 5351 5352 5316
+ 3045 623366.400 3372795.900 17.48200 3 8 3561 3597 3598 3562 5316 5352 5353 5317
+ 3046 623553.900 3372858.400 17.61485 3 8 3562 3574 3575 3563 5317 5329 5330 5318
+ 3047 623647.650 3372889.650 17.66791 3 8 3563 3571 3572 3564 5318 5326 5327 5319
+ 3048 623710.150 3372889.650 17.69637 3 8 3564 3572 3573 3565 5319 5327 5328 5320
+ 3049 623647.650 3372827.150 17.67551 3 8 3571 3575 3576 3572 5326 5330 5331 5327
+ 3050 623710.150 3372827.150 17.70590 3 8 3572 3576 3577 3573 5327 5331 5332 5328
+ 3051 623553.900 3372733.400 17.62389 3 8 3574 3598 3599 3575 5329 5353 5354 5330
+ 3052 623647.650 3372764.650 17.68490 3 8 3575 3580 3581 3576 5330 5335 5336 5331
+ 3053 623710.150 3372764.650 17.71780 3 8 3576 3581 3582 3577 5331 5336 5337 5332
+ 3054 623647.650 3372702.150 17.69607 3 8 3580 3599 3600 3581 5335 5354 5355 5336
+ 3055 623710.150 3372702.150 17.73207 3 8 3581 3600 3601 3582 5336 5355 5356 5337
+ 3056 623803.900 3372858.400 17.74528 3 8 3565 3577 3578 3566 5320 5332 5333 5321
+ 3057 623928.900 3372858.400 17.78462 3 8 3566 3578 3579 3567 5321 5333 5334 5322
+ 3058 623803.900 3372733.400 17.77662 3 8 3577 3601 3602 3578 5332 5356 5357 5333
+ 3059 623928.900 3372733.400 17.81839 3 8 3578 3602 3603 3579 5333 5357 5358 5334
+ 3060 624116.400 3372795.900 17.82713 3 8 3567 3603 3604 3568 5322 5358 5359 5323
+ 3061 624366.400 3372795.900 17.80279 3 8 3568 3604 3605 3569 5323 5359 5360 5324
+ 3062 624616.400 3372795.900 17.75410 3 8 3569 3605 3606 3570 5324 5360 5361 5325
+ 3063 619866.400 3372545.900 19.80868 3 8 3583 3619 3620 3584 5338 5374 5375 5339
+ 3064 620116.400 3372545.900 19.69723 3 8 3584 3620 3621 3585 5339 5375 5376 5340
+ 3065 620366.400 3372545.900 19.54537 3 8 3585 3621 3622 3586 5340 5376 5377 5341
+ 3066 620616.400 3372545.900 19.35215 3 8 3586 3622 3623 3587 5341 5377 5378 5342
+ 3067 620866.400 3372545.900 19.11865 3 8 3587 3623 3624 3588 5342 5378 5379 5343
+ 3068 621116.400 3372545.900 18.84700 3 8 3588 3624 3625 3589 5343 5379 5380 5344
+ 3069 621366.400 3372545.900 18.53796 3 8 3589 3625 3626 3590 5344 5380 5381 5345
+ 3070 621616.400 3372545.900 18.18621 3 8 3590 3626 3627 3591 5345 5381 5382 5346
+ 3071 621866.400 3372545.900 17.77272 3 8 3591 3627 3628 3592 5346 5382 5383 5347
+ 3072 622116.400 3372545.900 17.27842 3 8 3592 3628 3629 3593 5347 5383 5384 5348
+ 3073 622366.400 3372545.900 16.84989 3 8 3593 3629 3630 3594 5348 5384 5385 5349
+ 3074 622616.400 3372545.900 16.82185 3 8 3594 3630 3631 3595 5349 5385 5386 5350
+ 3075 622866.400 3372545.900 16.99351 3 8 3595 3631 3632 3596 5350 5386 5387 5351
+ 3076 623116.400 3372545.900 17.21512 3 8 3596 3632 3633 3597 5351 5387 5388 5352
+ 3077 623366.400 3372545.900 17.45715 3 8 3597 3633 3634 3598 5352 5388 5389 5353
+ 3078 623553.900 3372608.400 17.63521 3 8 3598 3610 3611 3599 5353 5365 5366 5354
+ 3079 623647.650 3372639.650 17.70724 3 8 3599 3607 3608 3600 5354 5362 5363 5355
+ 3080 623710.150 3372639.650 17.74635 3 8 3600 3608 3609 3601 5355 5363 5364 5356
+ 3081 623647.650 3372577.150 17.71840 3 8 3607 3611 3612 3608 5362 5366 5367 5363
+ 3082 623710.150 3372577.150 17.76062 3 8 3608 3612 3613 3609 5363 5367 5368 5364
+ 3083 623553.900 3372483.400 17.63471 3 8 3610 3634 3635 3611 5365 5389 5390 5366
+ 3084 623647.650 3372514.650 17.72417 3 8 3611 3616 3617 3612 5366 5371 5372 5367
+ 3085 623710.150 3372514.650 17.77228 3 8 3612 3617 3618 3613 5367 5372 5373 5368
+ 3086 623647.650 3372452.150 17.72454 3 8 3616 3635 3636 3617 5371 5390 5391 5372
+ 3087 623710.150 3372452.150 17.78131 3 8 3617 3636 3637 3618 5372 5391 5392 5373
+ 3088 623803.900 3372608.400 17.81449 3 8 3601 3613 3614 3602 5356 5368 5369 5357
+ 3089 623928.900 3372608.400 17.85807 3 8 3602 3614 3615 3603 5357 5369 5370 5358
+ 3090 623803.900 3372483.400 17.85546 3 8 3613 3637 3638 3614 5368 5392 5393 5369
+ 3091 623928.900 3372483.400 17.89995 3 8 3614 3638 3639 3615 5369 5393 5394 5370
+ 3092 624116.400 3372545.900 17.88003 3 8 3603 3639 3640 3604 5358 5394 5395 5359
+ 3093 624366.400 3372545.900 17.80909 3 8 3604 3640 3641 3605 5359 5395 5396 5360
+ 3094 624616.400 3372545.900 17.73369 3 8 3605 3641 3642 3606 5360 5396 5397 5361
+ 3095 619866.400 3372295.900 20.02247 3 8 3619 3655 3656 3620 5374 5410 5411 5375
+ 3096 620116.400 3372295.900 19.91621 3 8 3620 3656 3657 3621 5375 5411 5412 5376
+ 3097 620366.400 3372295.900 19.76292 3 8 3621 3657 3658 3622 5376 5412 5413 5377
+ 3098 620616.400 3372295.900 19.56175 3 8 3622 3658 3659 3623 5377 5413 5414 5378
+ 3099 620866.400 3372295.900 19.31557 3 8 3623 3659 3660 3624 5378 5414 5415 5379
+ 3100 621116.400 3372295.900 19.03014 3 8 3624 3660 3661 3625 5379 5415 5416 5380
+ 3101 621366.400 3372295.900 18.71177 3 8 3625 3661 3662 3626 5380 5416 5417 5381
+ 3102 621616.400 3372295.900 18.36254 3 8 3626 3662 3663 3627 5381 5417 5418 5382
+ 3103 621866.400 3372295.900 17.96353 3 8 3627 3663 3664 3628 5382 5418 5419 5383
+ 3104 622116.400 3372295.900 17.39823 3 8 3628 3664 3665 3629 5383 5419 5420 5384
+ 3105 622366.400 3372295.900 16.50000 3 8 3629 3665 3666 3630 5384 5420 5421 5385
+ 3106 622616.400 3372295.900 16.72883 3 8 3630 3666 3667 3631 5385 5421 5422 5386
+ 3107 622866.400 3372295.900 16.93666 3 8 3631 3667 3668 3632 5386 5422 5423 5387
+ 3108 623116.400 3372295.900 17.15840 3 8 3632 3668 3669 3633 5387 5423 5424 5388
+ 3109 623366.400 3372295.900 17.40628 3 8 3633 3669 3670 3634 5388 5424 5425 5389
+ 3110 623553.900 3372358.400 17.62240 3 8 3634 3646 3647 3635 5389 5401 5402 5390
+ 3111 623647.650 3372389.650 17.72491 3 8 3635 3643 3644 3636 5390 5398 5399 5391
+ 3112 623710.150 3372389.650 17.79035 3 8 3636 3644 3645 3637 5391 5399 5400 5392
+ 3113 623647.650 3372327.150 17.72528 3 8 3643 3647 3648 3644 5398 5402 5403 5399
+ 3114 623710.150 3372327.150 17.79938 3 8 3644 3648 3649 3645 5399 5403 5404 5400
+ 3115 623553.900 3372233.400 17.57725 3 8 3646 3670 3671 3647 5401 5425 5426 5402
+ 3116 623647.650 3372264.650 17.70147 3 8 3647 3652 3653 3648 5402 5407 5408 5403
+ 3117 623710.150 3372264.650 17.77516 3 8 3648 3653 3654 3649 5403 5408 5409 5404
+ 3118 623647.650 3372202.150 17.65347 3 8 3652 3671 3672 3653 5407 5426 5427 5408
+ 3119 623710.150 3372202.150 17.71768 3 8 3653 3672 3673 3654 5408 5427 5428 5409
+ 3120 623803.900 3372358.400 17.89952 3 8 3637 3649 3650 3638 5392 5404 5405 5393
+ 3121 623928.900 3372358.400 17.94405 3 8 3638 3650 3651 3639 5393 5405 5406 5394
+ 3122 623803.900 3372233.400 17.84984 3 8 3649 3673 3674 3650 5404 5428 5429 5405
+ 3123 623928.900 3372233.400 17.89362 3 8 3650 3674 3675 3651 5405 5429 5430 5406
+ 3124 624116.400 3372295.900 17.86441 3 8 3639 3675 3676 3640 5394 5430 5431 5395
+ 3125 624366.400 3372295.900 17.75639 3 8 3640 3676 3677 3641 5395 5431 5432 5396
+ 3126 624616.400 3372295.900 17.67066 3 8 3641 3677 3678 3642 5396 5432 5433 5397
+ 3127 619866.400 3372045.900 20.25513 3 8 3655 3691 3692 3656 5410 5446 5447 5411
+ 3128 620116.400 3372045.900 20.15796 3 8 3656 3692 3693 3657 5411 5447 5448 5412
+ 3129 620366.400 3372045.900 20.00496 3 8 3657 3693 3694 3658 5412 5448 5449 5413
+ 3130 620616.400 3372045.900 19.79499 3 8 3658 3694 3695 3659 5413 5449 5450 5414
+ 3131 620866.400 3372045.900 19.53340 3 8 3659 3695 3696 3660 5414 5450 5451 5415
+ 3132 621116.400 3372045.900 19.23122 3 8 3660 3696 3697 3661 5415 5451 5452 5416
+ 3133 621366.400 3372045.900 18.90325 3 8 3661 3697 3698 3662 5416 5452 5453 5417
+ 3134 621616.400 3372045.900 18.56726 3 8 3662 3698 3699 3663 5417 5453 5454 5418
+ 3135 621866.400 3372045.900 18.24781 3 8 3663 3699 3700 3664 5418 5454 5455 5419
+ 3136 622116.400 3372045.900 18.00000 3 8 3664 3700 3701 3665 5419 5455 5456 5420
+ 3137 622366.400 3372045.900 17.20072 3 8 3665 3701 3702 3666 5420 5456 5457 5421
+ 3138 622616.400 3372045.900 16.95005 3 8 3666 3702 3703 3667 5421 5457 5458 5422
+ 3139 622866.400 3372045.900 16.98512 3 8 3667 3703 3704 3668 5422 5458 5459 5423
+ 3140 623116.400 3372045.900 17.11654 3 8 3668 3704 3705 3669 5423 5459 5460 5424
+ 3141 623366.400 3372045.900 17.30122 3 8 3669 3705 3706 3670 5424 5460 5461 5425
+ 3142 623553.900 3372108.400 17.49924 3 8 3670 3682 3683 3671 5425 5437 5438 5426
+ 3143 623647.650 3372139.650 17.60548 3 8 3671 3679 3680 3672 5426 5434 5435 5427
+ 3144 623710.150 3372139.650 17.66019 3 8 3672 3680 3681 3673 5427 5435 5436 5428
+ 3145 623647.650 3372077.150 17.55749 3 8 3679 3683 3684 3680 5434 5438 5439 5435
+ 3146 623710.150 3372077.150 17.60271 3 8 3680 3684 3685 3681 5435 5439 5440 5436
+ 3147 623553.900 3371983.400 17.40586 3 8 3682 3706 3707 3683 5437 5461 5462 5438
+ 3148 623647.650 3372014.650 17.50260 3 8 3683 3688 3689 3684 5438 5443 5444 5439
+ 3149 623710.150 3372014.650 17.54130 3 8 3684 3689 3690 3685 5439 5444 5445 5440
+ 3150 623647.650 3371952.150 17.44083 3 8 3688 3707 3708 3689 5443 5462 5463 5444
+ 3151 623710.150 3371952.150 17.47596 3 8 3689 3708 3709 3690 5444 5463 5464 5445
+ 3152 623803.900 3372108.400 17.70641 3 8 3673 3685 3686 3674 5428 5440 5441 5429
+ 3153 623928.900 3372108.400 17.74865 3 8 3674 3686 3687 3675 5429 5441 5442 5430
+ 3154 623803.900 3371983.400 17.56400 3 8 3685 3709 3710 3686 5440 5464 5465 5441
+ 3155 623928.900 3371983.400 17.60449 3 8 3686 3710 3711 3687 5441 5465 5466 5442
+ 3156 624116.400 3372045.900 17.67915 3 8 3675 3711 3712 3676 5430 5466 5467 5431
+ 3157 624366.400 3372045.900 17.61790 3 8 3676 3712 3713 3677 5431 5467 5468 5432
+ 3158 624616.400 3372045.900 17.55612 3 8 3677 3713 3714 3678 5432 5468 5469 5433
+ 3159 619866.400 3371795.900 20.50471 3 8 3691 3727 3728 3692 5446 5482 5483 5447
+ 3160 620116.400 3371795.900 20.42192 3 8 3692 3728 3729 3693 5447 5483 5484 5448
+ 3161 620366.400 3371795.900 20.27081 3 8 3693 3729 3730 3694 5448 5484 5485 5449
+ 3162 620616.400 3371795.900 20.04872 3 8 3694 3730 3731 3695 5449 5485 5486 5450
+ 3163 620866.400 3371795.900 19.76392 3 8 3695 3731 3732 3696 5450 5486 5487 5451
+ 3164 621116.400 3371795.900 19.43356 3 8 3696 3732 3733 3697 5451 5487 5488 5452
+ 3165 621366.400 3371795.900 19.07901 3 8 3697 3733 3734 3698 5452 5488 5489 5453
+ 3166 621616.400 3371795.900 18.72192 3 8 3698 3734 3735 3699 5453 5489 5490 5454
+ 3167 621866.400 3371795.900 18.37524 3 8 3699 3735 3736 3700 5454 5490 5491 5455
+ 3168 622116.400 3371795.900 17.98596 3 8 3700 3736 3737 3701 5455 5491 5492 5456
+ 3169 622366.400 3371795.900 17.50114 3 8 3701 3737 3738 3702 5456 5492 5493 5457
+ 3170 622616.400 3371795.900 17.17045 3 8 3702 3738 3739 3703 5457 5493 5494 5458
+ 3171 622866.400 3371795.900 17.05091 3 8 3703 3739 3740 3704 5458 5494 5495 5459
+ 3172 623116.400 3371795.900 17.06282 3 8 3704 3740 3741 3705 5459 5495 5496 5460
+ 3173 623366.400 3371795.900 17.15091 3 8 3705 3741 3742 3706 5460 5496 5497 5461
+ 3174 623553.900 3371858.400 17.29709 3 8 3706 3718 3719 3707 5461 5473 5474 5462
+ 3175 623647.650 3371889.650 17.37907 3 8 3707 3715 3716 3708 5462 5470 5471 5463
+ 3176 623710.150 3371889.650 17.41062 3 8 3708 3716 3717 3709 5463 5471 5472 5464
+ 3177 623647.650 3371827.150 17.31730 3 8 3715 3719 3720 3716 5470 5474 5475 5471
+ 3178 623710.150 3371827.150 17.34529 3 8 3716 3720 3721 3717 5471 5475 5476 5472
+ 3179 623553.900 3371733.400 17.18465 3 8 3718 3742 3743 3719 5473 5497 5498 5474
+ 3180 623647.650 3371764.650 17.25478 3 8 3719 3724 3725 3720 5474 5479 5480 5475
+ 3181 623710.150 3371764.650 17.28014 3 8 3720 3725 3726 3721 5475 5480 5481 5476
+ 3182 623647.650 3371702.150 17.19151 3 8 3724 3743 3744 3725 5479 5498 5499 5480
+ 3183 623710.150 3371702.150 17.21518 3 8 3725 3744 3745 3726 5480 5499 5500 5481
+ 3184 623803.900 3371858.400 17.42261 3 8 3709 3721 3722 3710 5464 5476 5477 5465
+ 3185 623928.900 3371858.400 17.46115 3 8 3710 3722 3723 3711 5465 5477 5478 5466
+ 3186 623803.900 3371733.400 17.28443 3 8 3721 3745 3746 3722 5476 5500 5501 5477
+ 3187 623928.900 3371733.400 17.32169 3 8 3722 3746 3747 3723 5477 5501 5502 5478
+ 3188 624116.400 3371795.900 17.42352 3 8 3711 3747 3748 3712 5466 5502 5503 5467
+ 3189 624366.400 3371795.900 17.42183 3 8 3712 3748 3749 3713 5467 5503 5504 5468
+ 3190 624616.400 3371795.900 17.40190 3 8 3713 3749 3750 3714 5468 5504 5505 5469
+ 3191 619866.400 3371545.900 20.76740 3 8 3727 3763 3764 3728 5482 5518 5519 5483
+ 3192 620116.400 3371545.900 20.70719 3 8 3728 3764 3765 3729 5483 5519 5520 5484
+ 3193 620366.400 3371545.900 20.56051 3 8 3729 3765 3766 3730 5484 5520 5521 5485
+ 3194 620616.400 3371545.900 20.32042 3 8 3730 3766 3767 3731 5485 5521 5522 5486
+ 3195 620866.400 3371545.900 19.99973 3 8 3731 3767 3768 3732 5486 5522 5523 5487
+ 3196 621116.400 3371545.900 19.62457 3 8 3732 3768 3769 3733 5487 5523 5524 5488
+ 3197 621366.400 3371545.900 19.22261 3 8 3733 3769 3770 3734 5488 5524 5525 5489
+ 3198 621616.400 3371545.900 18.81481 3 8 3734 3770 3771 3735 5489 5525 5526 5490
+ 3199 621866.400 3371545.900 18.40759 3 8 3735 3771 3772 3736 5490 5526 5527 5491
+ 3200 622116.400 3371545.900 17.98883 3 8 3736 3772 3773 3737 5491 5527 5528 5492
+ 3201 622366.400 3371545.900 17.57788 3 8 3737 3773 3774 3738 5492 5528 5529 5493
+ 3202 622616.400 3371545.900 17.25059 3 8 3738 3774 3775 3739 5493 5529 5530 5494
+ 3203 622866.400 3371545.900 17.05473 3 8 3739 3775 3776 3740 5494 5530 5531 5495
+ 3204 623116.400 3371545.900 16.97227 3 8 3740 3776 3777 3741 5495 5531 5532 5496
+ 3205 623366.400 3371545.900 16.97113 3 8 3741 3777 3778 3742 5496 5532 5533 5497
+ 3206 623553.900 3371608.400 17.06854 3 8 3742 3754 3755 3743 5497 5509 5510 5498
+ 3207 623647.650 3371639.650 17.12823 3 8 3743 3751 3752 3744 5498 5506 5507 5499
+ 3208 623710.150 3371639.650 17.15022 3 8 3744 3752 3753 3745 5499 5507 5508 5500
+ 3209 623647.650 3371577.150 17.06496 3 8 3751 3755 3756 3752 5506 5510 5511 5507
+ 3210 623710.150 3371577.150 17.08526 3 8 3752 3756 3757 3753 5507 5511 5512 5508
+ 3211 623553.900 3371483.400 16.94982 3 8 3754 3778 3779 3755 5509 5533 5534 5510
+ 3212 623647.650 3371514.650 17.00123 3 8 3755 3760 3761 3756 5510 5515 5516 5511
+ 3213 623710.150 3371514.650 17.02063 3 8 3756 3761 3762 3757 5511 5516 5517 5512
+ 3214 623647.650 3371452.150 16.93702 3 8 3760 3779 3780 3761 5515 5534 5535 5516
+ 3215 623710.150 3371452.150 16.95633 3 8 3761 3780 3781 3762 5516 5535 5536 5517
+ 3216 623803.900 3371608.400 17.14944 3 8 3745 3757 3758 3746 5500 5512 5513 5501
+ 3217 623928.900 3371608.400 17.18611 3 8 3746 3758 3759 3747 5501 5513 5514 5502
+ 3218 623803.900 3371483.400 17.01751 3 8 3757 3781 3782 3758 5512 5536 5537 5513
+ 3219 623928.900 3371483.400 17.05540 3 8 3758 3782 3783 3759 5513 5537 5538 5514
+ 3220 624116.400 3371545.900 17.16911 3 8 3747 3783 3784 3748 5502 5538 5539 5503
+ 3221 624366.400 3371545.900 17.21062 3 8 3748 3784 3785 3749 5503 5539 5540 5504
+ 3222 624616.400 3371545.900 17.23078 3 8 3749 3785 3786 3750 5504 5540 5541 5505
+ 3223 619866.400 3371295.900 21.03508 3 8 3763 3799 3800 3764 5518 5554 5555 5519
+ 3224 620116.400 3371295.900 21.01173 3 8 3764 3800 3801 3765 5519 5555 5556 5520
+ 3225 620366.400 3371295.900 20.87537 3 8 3765 3801 3802 3766 5520 5556 5557 5521
+ 3226 620616.400 3371295.900 20.60789 3 8 3766 3802 3803 3767 5521 5557 5558 5522
+ 3227 620866.400 3371295.900 20.23279 3 8 3767 3803 3804 3768 5522 5558 5559 5523
+ 3228 621116.400 3371295.900 19.79445 3 8 3768 3804 3805 3769 5523 5559 5560 5524
+ 3229 621366.400 3371295.900 19.33046 3 8 3769 3805 3806 3770 5524 5560 5561 5525
+ 3230 621616.400 3371295.900 18.86403 3 8 3770 3806 3807 3771 5525 5561 5562 5526
+ 3231 621866.400 3371295.900 18.40616 3 8 3771 3807 3808 3772 5526 5562 5563 5527
+ 3232 622116.400 3371295.900 17.96374 3 8 3772 3808 3809 3773 5527 5563 5564 5528
+ 3233 622366.400 3371295.900 17.55981 3 8 3773 3809 3810 3774 5528 5564 5565 5529
+ 3234 622616.400 3371295.900 17.22499 3 8 3774 3810 3811 3775 5529 5565 5566 5530
+ 3235 622866.400 3371295.900 16.98700 3 8 3775 3811 3812 3776 5530 5566 5567 5531
+ 3236 623116.400 3371295.900 16.84192 3 8 3776 3812 3813 3777 5531 5567 5568 5532
+ 3237 623366.400 3371295.900 16.77030 3 8 3777 3813 3814 3778 5532 5568 5569 5533
+ 3238 623553.900 3371358.400 16.82848 3 8 3778 3790 3791 3779 5533 5545 5546 5534
+ 3239 623647.650 3371389.650 16.87282 3 8 3779 3787 3788 3780 5534 5542 5543 5535
+ 3240 623710.150 3371389.650 16.89203 3 8 3780 3788 3789 3781 5535 5543 5544 5536
+ 3241 623647.650 3371327.150 16.80861 3 8 3787 3791 3792 3788 5542 5546 5547 5543
+ 3242 623710.150 3371327.150 16.82773 3 8 3788 3792 3793 3789 5543 5547 5548 5544
+ 3243 623553.900 3371233.400 16.70577 3 8 3790 3814 3815 3791 5545 5569 5570 5546
+ 3244 623647.650 3371264.650 16.74396 3 8 3791 3796 3797 3792 5546 5551 5552 5547
+ 3245 623710.150 3371264.650 16.76467 3 8 3792 3797 3798 3793 5547 5552 5553 5548
+ 3246 623647.650 3371202.150 16.67886 3 8 3796 3815 3816 3797 5551 5570 5571 5552
+ 3247 623710.150 3371202.150 16.70284 3 8 3797 3816 3817 3798 5552 5571 5572 5553
+ 3248 623803.900 3371358.400 16.88862 3 8 3781 3793 3794 3782 5536 5548 5549 5537
+ 3249 623928.900 3371358.400 16.92956 3 8 3782 3794 3795 3783 5537 5549 5550 5538
+ 3250 623803.900 3371233.400 16.76728 3 8 3793 3817 3818 3794 5548 5572 5573 5549
+ 3251 623928.900 3371233.400 16.81443 3 8 3794 3818 3819 3795 5549 5573 5574 5550
+ 3252 624116.400 3371295.900 16.93679 3 8 3783 3819 3820 3784 5538 5574 5575 5539
+ 3253 624366.400 3371295.900 17.01117 3 8 3784 3820 3821 3785 5539 5575 5576 5540
+ 3254 624616.400 3371295.900 17.06323 3 8 3785 3821 3822 3786 5540 5576 5577 5541
+ 3255 619866.400 3371045.900 21.28926 3 8 3799 3835 3836 3800 5554 5590 5591 5555
+ 3256 620116.400 3371045.900 21.32842 3 8 3800 3836 3837 3801 5555 5591 5592 5556
+ 3257 620366.400 3371045.900 21.21790 3 8 3801 3837 3838 3802 5556 5592 5593 5557
+ 3258 620616.400 3371045.900 20.90492 3 8 3802 3838 3839 3803 5557 5593 5594 5558
+ 3259 620866.400 3371045.900 20.44691 3 8 3803 3839 3840 3804 5558 5594 5595 5559
+ 3260 621116.400 3371045.900 19.92774 3 8 3804 3840 3841 3805 5559 5595 5596 5560
+ 3261 621366.400 3371045.900 19.39500 3 8 3805 3841 3842 3806 5560 5596 5597 5561
+ 3262 621616.400 3371045.900 18.87127 3 8 3806 3842 3843 3807 5561 5597 5598 5562
+ 3263 621866.400 3371045.900 18.36875 3 8 3807 3843 3844 3808 5562 5598 5599 5563
+ 3264 622116.400 3371045.900 17.89842 3 8 3808 3844 3845 3809 5563 5599 5600 5564
+ 3265 622366.400 3371045.900 17.47953 3 8 3809 3845 3846 3810 5564 5600 5601 5565
+ 3266 622616.400 3371045.900 17.12813 3 8 3810 3846 3847 3811 5565 5601 5602 5566
+ 3267 622866.400 3371045.900 16.86477 3 8 3811 3847 3848 3812 5566 5602 5603 5567
+ 3268 623116.400 3371045.900 16.68933 3 8 3812 3848 3849 3813 5567 5603 5604 5568
+ 3269 623366.400 3371045.900 16.57866 3 8 3813 3849 3850 3814 5568 5604 5605 5569
+ 3270 623553.900 3371108.400 16.58170 3 8 3814 3826 3827 3815 5569 5581 5582 5570
+ 3271 623647.650 3371139.650 16.61375 3 8 3815 3823 3824 3816 5570 5578 5579 5571
+ 3272 623710.150 3371139.650 16.64102 3 8 3816 3824 3825 3817 5571 5579 5580 5572
+ 3273 623647.650 3371077.150 16.54865 3 8 3823 3827 3828 3824 5578 5582 5583 5579
+ 3274 623710.150 3371077.150 16.57920 3 8 3824 3828 3829 3825 5579 5583 5584 5580
+ 3275 623553.900 3370983.400 16.49724 3 8 3826 3850 3851 3827 5581 5605 5606 5582
+ 3276 623647.650 3371014.650 16.50593 3 8 3827 3832 3833 3828 5582 5587 5588 5583
+ 3277 623710.150 3371014.650 16.53640 3 8 3828 3833 3834 3829 5583 5588 5589 5584
+ 3278 623647.650 3370952.150 16.48559 3 8 3832 3851 3852 3833 5587 5606 5607 5588
+ 3279 623710.150 3370952.150 16.51261 3 8 3833 3852 3853 3834 5588 5607 5608 5589
+ 3280 623803.900 3371108.400 16.65348 3 8 3817 3829 3830 3818 5572 5584 5585 5573
+ 3281 623928.900 3371108.400 16.71001 3 8 3818 3830 3831 3819 5573 5585 5586 5574
+ 3282 623803.900 3370983.400 16.56762 3 8 3829 3853 3855 3830 5584 5608 5610 5585
+ 3283 623928.900 3370983.400 16.62480 3 8 3830 3855 3857 3831 5585 5610 5612 5586
+ 3284 624116.400 3371045.900 16.74489 3 8 3819 3857 3859 3820 5574 5612 5614 5575
+ 3285 624366.400 3371045.900 16.84012 3 8 3820 3859 3860 3821 5575 5614 5615 5576
+ 3286 624616.400 3371045.900 16.91348 3 8 3821 3860 3861 3822 5576 5615 5616 5577
+ 3287 619866.400 3370795.900 21.48688 3 8 3835 3902 3903 3836 5590 5657 5658 5591
+ 3288 620116.400 3370795.900 21.62687 3 8 3836 3903 3904 3837 5591 5658 5659 5592
+ 3289 620366.400 3370795.900 21.59147 3 8 3837 3904 3905 3838 5592 5659 5660 5593
+ 3290 620616.400 3370795.900 21.18253 3 8 3838 3905 3906 3839 5593 5660 5661 5594
+ 3291 620866.400 3370795.900 20.60212 3 8 3839 3906 3907 3840 5594 5661 5662 5595
+ 3292 621116.400 3370795.900 19.99641 3 8 3840 3907 3908 3841 5595 5662 5663 5596
+ 3293 621366.400 3370795.900 19.40096 3 8 3841 3908 3909 3842 5596 5663 5664 5597
+ 3294 621616.400 3370795.900 18.82845 3 8 3842 3909 3910 3843 5597 5664 5665 5598
+ 3295 621866.400 3370795.900 18.28781 3 8 3843 3910 3911 3844 5598 5665 5666 5599
+ 3296 622116.400 3370795.900 17.78955 3 8 3844 3911 3912 3845 5599 5666 5667 5600
+ 3297 622366.400 3370795.900 17.34983 3 8 3845 3912 3913 3846 5600 5667 5668 5601
+ 3298 622616.400 3370795.900 16.97942 3 8 3846 3913 3914 3847 5601 5668 5669 5602
+ 3299 622866.400 3370795.900 16.70176 3 8 3847 3914 3915 3848 5602 5669 5670 5603
+ 3300 623116.400 3370795.900 16.53330 3 8 3848 3915 3917 3849 5603 5670 5672 5604
+ 3301 623366.400 3370795.900 16.44329 3 8 3849 3917 3918 3850 5604 5672 5673 5605
+ 3302 623553.900 3370858.400 16.45240 3 8 3850 3876 3877 3851 5605 5631 5632 5606
+ 3303 623647.650 3370889.650 16.46525 3 8 3851 3862 3863 3852 5606 5617 5618 5607
+ 3304 623710.150 3370889.650 16.48883 3 8 3852 3863 3864 3853 5607 5618 5619 5608
+ 3305 623647.650 3370827.150 16.44491 3 8 3862 3877 3878 3863 5617 5632 5633 5618
+ 3306 623710.150 3370827.150 16.46504 3 8 3863 3878 3879 3864 5618 5633 5634 5619
+ 3307 623553.900 3370733.400 16.40829 3 8 3876 3918 3919 3877 5631 5673 5674 5632
+ 3308 623647.650 3370764.650 16.42479 3 8 3877 3893 3894 3878 5632 5648 5649 5633
+ 3309 623710.150 3370764.650 16.44301 3 8 3878 3894 3895 3879 5633 5649 5650 5634
+ 3310 623647.650 3370702.150 16.40487 3 8 3893 3919 3920 3894 5648 5674 5675 5649
+ 3311 623710.150 3370702.150 16.42273 3 8 3894 3920 3921 3895 5649 5675 5676 5650
+ 3312 623772.650 3370889.650 16.51240 3 8 3853 3864 3865 3854 5608 5619 5620 5609
+ 3313 623835.150 3370889.650 16.53598 3 8 3854 3865 3867 3855 5609 5620 5622 5610
+ 3314 623772.650 3370827.150 16.48517 3 8 3864 3879 3880 3865 5619 5634 5635 5620
+ 3315 623819.525 3370842.775 16.50772 3 8 3865 3871 3872 3866 5620 5626 5627 5621
+ 3316 623850.775 3370842.775 16.51822 3 8 3866 3872 3873 3867 5621 5627 5628 5622
+ 3317 623819.525 3370811.525 16.49281 3 8 3871 3880 3881 3872 5626 5635 5636 5627
+ 3318 623850.775 3370811.525 16.50245 3 8 3872 3881 3882 3873 5627 5636 5637 5628
+ 3319 623897.650 3370889.650 16.56153 3 8 3855 3867 3869 3856 5610 5622 5624 5611
+ 3320 623960.150 3370889.650 16.58908 3 8 3856 3869 3870 3857 5611 5624 5625 5612
+ 3321 623882.025 3370842.775 16.53024 3 8 3867 3873 3874 3868 5622 5628 5629 5623
+ 3322 623913.275 3370842.775 16.54378 3 8 3868 3874 3875 3869 5623 5629 5630 5624
+ 3323 623882.025 3370811.525 16.51396 3 8 3873 3882 3883 3874 5628 5637 5638 5629
+ 3324 623913.275 3370811.525 16.52736 3 8 3874 3883 3884 3875 5629 5638 5639 5630
+ 3325 623960.150 3370827.150 16.55578 3 8 3869 3884 3885 3870 5624 5639 5640 5625
+ 3326 623772.650 3370764.650 16.46123 3 8 3879 3895 3896 3880 5634 5650 5651 5635
+ 3327 623819.525 3370780.275 16.48013 3 8 3880 3888 3889 3881 5635 5643 5644 5636
+ 3328 623850.775 3370780.275 16.48928 3 8 3881 3889 3890 3882 5636 5644 5645 5637
+ 3329 623819.525 3370749.025 16.46967 3 8 3888 3896 3897 3889 5643 5651 5652 5644
+ 3330 623850.775 3370749.025 16.47873 3 8 3889 3897 3898 3890 5644 5652 5653 5645
+ 3331 623772.650 3370702.150 16.44058 3 8 3895 3921 3922 3896 5650 5676 5677 5651
+ 3332 623835.150 3370702.150 16.45844 3 8 3896 3922 3923 3898 5651 5677 5678 5653
+ 3333 623882.025 3370780.275 16.50048 3 8 3882 3890 3891 3883 5637 5645 5646 5638
+ 3334 623913.275 3370780.275 16.51372 3 8 3883 3891 3892 3884 5638 5646 5647 5639
+ 3335 623882.025 3370749.025 16.48980 3 8 3890 3898 3899 3891 5645 5653 5654 5646
+ 3336 623913.275 3370749.025 16.50286 3 8 3891 3899 3900 3892 5646 5654 5655 5647
+ 3337 623960.150 3370764.650 16.52801 3 8 3884 3900 3901 3885 5639 5655 5656 5640
+ 3338 623897.650 3370702.150 16.48017 3 8 3898 3923 3924 3900 5653 5678 5679 5655
+ 3339 623960.150 3370702.150 16.50577 3 8 3900 3924 3925 3901 5655 5679 5680 5656
+ 3340 624053.900 3370858.400 16.61329 3 8 3857 3885 3886 3858 5612 5640 5641 5613
+ 3341 624178.900 3370858.400 16.66525 3 8 3858 3886 3887 3859 5613 5641 5642 5614
+ 3342 624053.900 3370733.400 16.55582 3 8 3885 3925 3926 3886 5640 5680 5681 5641
+ 3343 624178.900 3370733.400 16.60660 3 8 3886 3926 3927 3887 5641 5681 5682 5642
+ 3344 624366.400 3370795.900 16.70579 3 8 3859 3927 3928 3860 5614 5682 5683 5615
+ 3345 624616.400 3370795.900 16.78931 3 8 3860 3928 3929 3861 5615 5683 5684 5616
+ 3346 619866.400 3370545.900 21.54870 3 8 3902 3945 3946 3903 5657 5700 5701 5658
+ 3347 620116.400 3370545.900 21.76575 3 8 3903 3946 3947 3904 5658 5701 5702 5659
+ 3348 620366.400 3370545.900 22.00000 3 8 3904 3947 3948 3905 5659 5702 5703 5660
+ 3349 620616.400 3370545.900 21.30092 3 8 3905 3948 3949 3906 5660 5703 5704 5661
+ 3350 620866.400 3370545.900 20.62226 3 8 3906 3949 3950 3907 5661 5704 5705 5662
+ 3351 621116.400 3370545.900 19.96538 3 8 3907 3950 3951 3908 5662 5705 5706 5663
+ 3352 621366.400 3370545.900 19.33273 3 8 3908 3951 3952 3909 5663 5706 5707 5664
+ 3353 621616.400 3370545.900 18.72851 3 8 3909 3952 3953 3910 5664 5707 5708 5665
+ 3354 621866.400 3370545.900 18.15989 3 8 3910 3953 3954 3911 5665 5708 5709 5666
+ 3355 622116.400 3370545.900 17.63830 3 8 3911 3954 3955 3912 5666 5709 5710 5667
+ 3356 622366.400 3370545.900 17.18098 3 8 3912 3955 3956 3913 5667 5710 5711 5668
+ 3357 622616.400 3370545.900 16.79850 3 8 3913 3956 3957 3914 5668 5711 5712 5669
+ 3358 622866.400 3370545.900 16.50000 3 8 3914 3957 3959 3915 5669 5712 5714 5670
+ 3359 623053.900 3370608.400 16.45269 3 8 3915 3933 3934 3916 5670 5688 5689 5671
+ 3360 623178.900 3370608.400 16.40525 3 8 3916 3934 3935 3917 5671 5689 5690 5672
+ 3361 623053.900 3370483.400 16.37757 3 8 3933 3959 3961 3934 5688 5714 5716 5689
+ 3362 623178.900 3370483.400 16.33829 3 8 3934 3961 3963 3935 5689 5716 5718 5690
+ 3363 623366.400 3370545.900 16.33312 3 8 3917 3963 3965 3918 5672 5718 5720 5673
+ 3364 623553.900 3370608.400 16.36492 3 8 3918 3936 3937 3919 5673 5691 5692 5674
+ 3365 623647.650 3370639.650 16.38495 3 8 3919 3930 3931 3920 5674 5685 5686 5675
+ 3366 623710.150 3370639.650 16.40244 3 8 3920 3931 3932 3921 5675 5686 5687 5676
+ 3367 623647.650 3370577.150 16.36504 3 8 3930 3937 3938 3931 5685 5692 5693 5686
+ 3368 623710.150 3370577.150 16.38216 3 8 3931 3938 3939 3932 5686 5693 5694 5687
+ 3369 623553.900 3370483.400 16.32253 3 8 3936 3965 3966 3937 5691 5720 5721 5692
+ 3370 623647.650 3370514.650 16.34574 3 8 3937 3942 3943 3938 5692 5697 5698 5693
+ 3371 623710.150 3370514.650 16.36300 3 8 3938 3943 3944 3939 5693 5698 5699 5694
+ 3372 623647.650 3370452.150 16.32705 3 8 3942 3966 3967 3943 5697 5721 5722 5698
+ 3373 623710.150 3370452.150 16.34494 3 8 3943 3967 3968 3944 5698 5722 5723 5699
+ 3374 623803.900 3370608.400 16.41826 3 8 3921 3939 3940 3923 5676 5694 5695 5678
+ 3375 623928.900 3370608.400 16.46013 3 8 3923 3940 3941 3925 5678 5695 5696 5680
+ 3376 623803.900 3370483.400 16.38034 3 8 3939 3968 3969 3940 5694 5723 5724 5695
+ 3377 623928.900 3370483.400 16.42176 3 8 3940 3969 3970 3941 5695 5724 5725 5696
+ 3378 624116.400 3370545.900 16.50985 3 8 3925 3970 3971 3927 5680 5725 5726 5682
+ 3379 624366.400 3370545.900 16.60691 3 8 3927 3971 3972 3928 5682 5726 5727 5683
+ 3380 624616.400 3370545.900 16.69255 3 8 3928 3972 3973 3929 5683 5727 5728 5684
+ 3381 619866.400 3370295.900 21.42163 3 8 3945 4020 4021 3946 5700 5775 5776 5701
+ 3382 620116.400 3370295.900 21.54741 3 8 3946 4021 4022 3947 5701 5776 5777 5702
+ 3383 620366.400 3370295.900 21.49448 3 8 3947 4022 4023 3948 5702 5777 5778 5703
+ 3384 620616.400 3370295.900 21.06397 3 8 3948 4023 4024 3949 5703 5778 5779 5704
+ 3385 620866.400 3370295.900 20.45723 3 8 3949 4024 4025 3950 5704 5779 5780 5705
+ 3386 621116.400 3370295.900 19.81985 3 8 3950 4025 4026 3951 5705 5780 5781 5706
+ 3387 621366.400 3370295.900 19.18725 3 8 3951 4026 4027 3952 5706 5781 5782 5707
+ 3388 621616.400 3370295.900 18.57297 3 8 3952 4027 4028 3953 5707 5782 5783 5708
+ 3389 621866.400 3370295.900 17.98832 3 8 3953 4028 4029 3954 5708 5783 5784 5709
+ 3390 622116.400 3370295.900 17.44882 3 8 3954 4029 4030 3955 5709 5784 5785 5710
+ 3391 622366.400 3370295.900 16.97927 3 8 3955 4030 4031 3956 5710 5785 5786 5711
+ 3392 622616.400 3370295.900 16.60530 3 8 3956 4031 4032 3957 5711 5786 5787 5712
+ 3393 622803.900 3370358.400 16.45840 3 8 3957 3989 3990 3958 5712 5744 5745 5713
+ 3394 622928.900 3370358.400 16.36528 3 8 3958 3990 3991 3959 5713 5745 5746 5714
+ 3395 622803.900 3370233.400 16.37058 3 8 3989 4032 4033 3990 5744 5787 5788 5745
+ 3396 622928.900 3370233.400 16.28681 3 8 3990 4033 4034 3991 5745 5788 5789 5746
+ 3397 623022.650 3370389.650 16.34040 3 8 3959 3974 3975 3960 5714 5729 5730 5715
+ 3398 623085.150 3370389.650 16.31212 3 8 3960 3975 3977 3961 5715 5730 5732 5716
+ 3399 623022.650 3370327.150 16.30597 3 8 3974 3991 3992 3975 5729 5746 5747 5730
+ 3400 623069.525 3370342.775 16.29362 3 8 3975 3984 3985 3976 5730 5739 5740 5731
+ 3401 623100.775 3370342.775 16.27965 3 8 3976 3985 3986 3977 5731 5740 5741 5732
+ 3402 623069.525 3370311.525 16.27657 3 8 3984 3992 3993 3985 5739 5747 5748 5740
+ 3403 623100.775 3370311.525 16.26271 3 8 3985 3993 3994 3986 5740 5748 5749 5741
+ 3404 623147.650 3370389.650 16.29431 3 8 3961 3977 3979 3962 5716 5732 5734 5717
+ 3405 623210.150 3370389.650 16.28697 3 8 3962 3979 3980 3963 5717 5734 5735 5718
+ 3406 623132.025 3370342.775 16.27120 3 8 3977 3986 3987 3978 5732 5741 5742 5733
+ 3407 623163.275 3370342.775 16.26827 3 8 3978 3987 3988 3979 5733 5742 5743 5734
+ 3408 623132.025 3370311.525 16.25457 3 8 3986 3994 3995 3987 5741 5749 5750 5742
+ 3409 623163.275 3370311.525 16.25214 3 8 3987 3995 3996 3988 5742 5750 5751 5743
+ 3410 623210.150 3370327.150 16.25620 3 8 3979 3996 3997 3980 5734 5751 5752 5735
+ 3411 623022.650 3370264.650 16.26928 3 8 3991 4010 4011 3992 5746 5765 5766 5747
+ 3412 623069.525 3370280.275 16.25886 3 8 3992 4005 4006 3993 5747 5760 5761 5748
+ 3413 623100.775 3370280.275 16.24543 3 8 3993 4006 4007 3994 5748 5761 5762 5749
+ 3414 623069.525 3370249.025 16.24050 3 8 4005 4011 4012 4006 5760 5766 5767 5761
+ 3415 623100.775 3370249.025 16.22779 3 8 4006 4012 4013 4007 5761 5767 5768 5762
+ 3416 623022.650 3370202.150 16.23034 3 8 4010 4034 4035 4011 5765 5789 5790 5766
+ 3417 623085.150 3370202.150 16.20715 3 8 4011 4035 4036 4013 5766 5790 5791 5768
+ 3418 623132.025 3370280.275 16.23778 3 8 3994 4007 4008 3995 5749 5762 5763 5750
+ 3419 623163.275 3370280.275 16.23592 3 8 3995 4008 4009 3996 5750 5763 5764 5751
+ 3420 623132.025 3370249.025 16.22083 3 8 4007 4013 4014 4008 5762 5768 5769 5763
+ 3421 623163.275 3370249.025 16.21961 3 8 4008 4014 4015 4009 5763 5769 5770 5764
+ 3422 623210.150 3370264.650 16.22545 3 8 3996 4015 4016 3997 5751 5770 5771 5752
+ 3423 623147.650 3370202.150 16.19528 3 8 4013 4036 4037 4015 5768 5791 5792 5770
+ 3424 623210.150 3370202.150 16.19474 3 8 4015 4037 4038 4016 5770 5792 5793 5771
+ 3425 623303.900 3370358.400 16.26207 3 8 3963 3997 3998 3964 5718 5752 5753 5719
+ 3426 623428.900 3370358.400 16.26419 3 8 3964 3998 3999 3965 5719 5753 5754 5720
+ 3427 623303.900 3370233.400 16.20738 3 8 3997 4038 4039 3998 5752 5793 5794 5753
+ 3428 623428.900 3370233.400 16.21769 3 8 3998 4039 4040 3999 5753 5794 5795 5754
+ 3429 623553.900 3370358.400 16.28112 3 8 3965 3999 4000 3966 5720 5754 5755 5721
+ 3430 623647.650 3370389.650 16.30835 3 8 3966 3981 3982 3967 5721 5736 5737 5722
+ 3431 623710.150 3370389.650 16.32689 3 8 3967 3982 3983 3968 5722 5737 5738 5723
+ 3432 623647.650 3370327.150 16.28966 3 8 3981 4000 4001 3982 5736 5755 5756 5737
+ 3433 623710.150 3370327.150 16.30884 3 8 3982 4001 4002 3983 5737 5756 5757 5738
+ 3434 623553.900 3370233.400 16.24191 3 8 3999 4040 4041 4000 5754 5795 5796 5755
+ 3435 623647.650 3370264.650 16.27233 3 8 4000 4017 4018 4001 5755 5772 5773 5756
+ 3436 623710.150 3370264.650 16.29239 3 8 4001 4018 4019 4002 5756 5773 5774 5757
+ 3437 623647.650 3370202.150 16.25635 3 8 4017 4041 4042 4018 5772 5796 5797 5773
+ 3438 623710.150 3370202.150 16.27754 3 8 4018 4042 4043 4019 5773 5797 5798 5774
+ 3439 623803.900 3370358.400 16.34615 3 8 3968 4002 4003 3969 5723 5757 5758 5724
+ 3440 623928.900 3370358.400 16.38879 3 8 3969 4003 4004 3970 5724 5758 5759 5725
+ 3441 623803.900 3370233.400 16.31591 3 8 4002 4043 4044 4003 5757 5798 5799 5758
+ 3442 623928.900 3370233.400 16.36068 3 8 4003 4044 4045 4004 5758 5799 5800 5759
+ 3443 624116.400 3370295.900 16.44357 3 8 3970 4045 4046 3971 5725 5800 5801 5726
+ 3444 624366.400 3370295.900 16.53794 3 8 3971 4046 4047 3972 5726 5801 5802 5727
+ 3445 624616.400 3370295.900 16.62143 3 8 3972 4047 4048 3973 5727 5802 5803 5728
+ 3446 619866.400 3370045.900 21.16213 3 8 4020 4064 4065 4021 5775 5819 5820 5776
+ 3447 620116.400 3370045.900 21.17388 3 8 4021 4065 4066 4022 5776 5820 5821 5777
+ 3448 620366.400 3370045.900 21.02958 3 8 4022 4066 4067 4023 5777 5821 5822 5778
+ 3449 620616.400 3370045.900 20.67511 3 8 4023 4067 4068 4024 5778 5822 5823 5779
+ 3450 620866.400 3370045.900 20.16640 3 8 4024 4068 4069 4025 5779 5823 5824 5780
+ 3451 621116.400 3370045.900 19.58604 3 8 4025 4069 4070 4026 5780 5824 5825 5781
+ 3452 621366.400 3370045.900 18.98114 3 8 4026 4070 4071 4027 5781 5825 5826 5782
+ 3453 621616.400 3370045.900 18.37558 3 8 4027 4071 4072 4028 5782 5826 5827 5783
+ 3454 621866.400 3370045.900 17.78567 3 8 4028 4072 4073 4029 5783 5827 5828 5784
+ 3455 622116.400 3370045.900 17.23025 3 8 4029 4073 4074 4030 5784 5828 5829 5785
+ 3456 622366.400 3370045.900 16.74292 3 8 4030 4074 4075 4031 5785 5829 5830 5786
+ 3457 622616.400 3370045.900 16.37558 3 8 4031 4075 4076 4032 5786 5830 5831 5787
+ 3458 622866.400 3370045.900 16.17255 3 8 4032 4076 4077 4034 5787 5831 5832 5789
+ 3459 623053.900 3370108.400 16.16253 3 8 4034 4052 4053 4036 5789 5807 5808 5791
+ 3460 623178.900 3370108.400 16.14704 3 8 4036 4053 4054 4038 5791 5808 5809 5793
+ 3461 623053.900 3369983.400 16.08632 3 8 4052 4077 4078 4053 5807 5832 5833 5808
+ 3462 623178.900 3369983.400 16.08438 3 8 4053 4078 4079 4054 5808 5833 5834 5809
+ 3463 623366.400 3370045.900 16.13253 3 8 4038 4079 4080 4040 5793 5834 5835 5795
+ 3464 623553.900 3370108.400 16.20492 3 8 4040 4055 4056 4041 5795 5810 5811 5796
+ 3465 623647.650 3370139.650 16.24037 3 8 4041 4049 4050 4042 5796 5804 5805 5797
+ 3466 623710.150 3370139.650 16.26269 3 8 4042 4050 4051 4043 5797 5805 5806 5798
+ 3467 623647.650 3370077.150 16.22438 3 8 4049 4056 4057 4050 5804 5811 5812 5805
+ 3468 623710.150 3370077.150 16.24784 3 8 4050 4057 4058 4051 5805 5812 5813 5806
+ 3469 623553.900 3369983.400 16.17199 3 8 4055 4080 4081 4056 5810 5835 5836 5811
+ 3470 623647.650 3370014.650 16.21062 3 8 4056 4061 4062 4057 5811 5816 5817 5812
+ 3471 623710.150 3370014.650 16.23535 3 8 4057 4062 4063 4058 5812 5817 5818 5813
+ 3472 623647.650 3369952.150 16.19909 3 8 4061 4081 4082 4062 5816 5836 5837 5817
+ 3473 623710.150 3369952.150 16.22523 3 8 4062 4082 4083 4063 5817 5837 5838 5818
+ 3474 623803.900 3370108.400 16.28960 3 8 4043 4058 4059 4044 5798 5813 5814 5799
+ 3475 623928.900 3370108.400 16.33744 3 8 4044 4059 4060 4045 5799 5814 5815 5800
+ 3476 623803.900 3369983.400 16.26844 3 8 4058 4083 4084 4059 5813 5838 5839 5814
+ 3477 623928.900 3369983.400 16.31982 3 8 4059 4084 4085 4060 5814 5839 5840 5815
+ 3478 624116.400 3370045.900 16.40183 3 8 4045 4085 4086 4046 5800 5840 5841 5801
+ 3479 624366.400 3370045.900 16.49474 3 8 4046 4086 4087 4047 5801 5841 5842 5802
+ 3480 624616.400 3370045.900 16.57299 3 8 4047 4087 4088 4048 5802 5842 5843 5803
+ 3481 619866.400 3369795.900 20.85250 3 8 4064 4101 4102 4065 5819 5856 5857 5820
+ 3482 620116.400 3369795.900 20.79043 3 8 4065 4102 4103 4066 5820 5857 5858 5821
+ 3483 620366.400 3369795.900 20.60654 3 8 4066 4103 4104 4067 5821 5858 5859 5822
+ 3484 620616.400 3369795.900 20.28082 3 8 4067 4104 4105 4068 5822 5859 5860 5823
+ 3485 620866.400 3369795.900 19.83463 3 8 4068 4105 4106 4069 5823 5860 5861 5824
+ 3486 621116.400 3369795.900 19.31020 3 8 4069 4106 4107 4070 5824 5861 5862 5825
+ 3487 621366.400 3369795.900 18.74380 3 8 4070 4107 4108 4071 5825 5862 5863 5826
+ 3488 621616.400 3369795.900 18.15989 3 8 4071 4108 4109 4072 5826 5863 5864 5827
+ 3489 621866.400 3369795.900 17.57555 3 8 4072 4109 4110 4073 5827 5864 5865 5828
+ 3490 622116.400 3369795.900 17.00683 3 8 4073 4110 4111 4074 5828 5865 5866 5829
+ 3491 622366.400 3369795.900 16.48251 3 8 4074 4111 4112 4075 5829 5866 5867 5830
+ 3492 622616.400 3369795.900 16.09191 3 8 4075 4112 4113 4076 5830 5867 5868 5831
+ 3493 622866.400 3369795.900 15.95940 3 8 4076 4113 4114 4077 5831 5868 5869 5832
+ 3494 623116.400 3369795.900 15.97362 3 8 4077 4114 4115 4079 5832 5869 5870 5834
+ 3495 623366.400 3369795.900 16.04854 3 8 4079 4115 4116 4080 5834 5870 5871 5835
+ 3496 623553.900 3369858.400 16.14312 3 8 4080 4092 4093 4081 5835 5847 5848 5836
+ 3497 623647.650 3369889.650 16.18755 3 8 4081 4089 4090 4082 5836 5844 5845 5837
+ 3498 623710.150 3369889.650 16.21510 3 8 4082 4090 4091 4083 5837 5845 5846 5838
+ 3499 623647.650 3369827.150 16.17601 3 8 4089 4093 4094 4090 5844 5848 5849 5845
+ 3500 623710.150 3369827.150 16.20497 3 8 4090 4094 4095 4091 5845 5849 5850 5846
+ 3501 623553.900 3369733.400 16.12022 3 8 4092 4116 4117 4093 5847 5871 5872 5848
+ 3502 623647.650 3369764.650 16.16731 3 8 4093 4098 4099 4094 5848 5853 5854 5849
+ 3503 623710.150 3369764.650 16.19776 3 8 4094 4099 4100 4095 5849 5854 5855 5850
+ 3504 623647.650 3369702.150 16.16146 3 8 4098 4117 4118 4099 5853 5872 5873 5854
+ 3505 623710.150 3369702.150 16.19345 3 8 4099 4118 4119 4100 5854 5873 5874 5855
+ 3506 623803.900 3369858.400 16.25242 3 8 4083 4095 4096 4084 5838 5850 5851 5839
+ 3507 623928.900 3369858.400 16.30782 3 8 4084 4096 4097 4085 5839 5851 5852 5840
+ 3508 623803.900 3369733.400 16.24243 3 8 4095 4119 4120 4096 5850 5874 5875 5851
+ 3509 623928.900 3369733.400 16.30214 3 8 4096 4120 4121 4097 5851 5875 5876 5852
+ 3510 624116.400 3369795.900 16.38508 3 8 4085 4121 4122 4086 5840 5876 5877 5841
+ 3511 624366.400 3369795.900 16.47527 3 8 4086 4122 4123 4087 5841 5877 5878 5842
+ 3512 624616.400 3369795.900 16.54370 3 8 4087 4123 4124 4088 5842 5878 5879 5843
+ 3513 619866.400 3369545.900 20.53820 3 8 4101 4137 4138 4102 5856 5892 5893 5857
+ 3514 620116.400 3369545.900 20.43058 3 8 4102 4138 4139 4103 5857 5893 5894 5858
+ 3515 620366.400 3369545.900 20.22605 3 8 4103 4139 4140 4104 5858 5894 5895 5859
+ 3516 620616.400 3369545.900 19.91552 3 8 4104 4140 4141 4105 5859 5895 5896 5860
+ 3517 620866.400 3369545.900 19.50925 3 8 4105 4141 4142 4106 5860 5896 5897 5861
+ 3518 621116.400 3369545.900 19.03051 3 8 4106 4142 4143 4107 5861 5897 5898 5862
+ 3519 621366.400 3369545.900 18.50431 3 8 4107 4143 4144 4108 5862 5898 5899 5863
+ 3520 621616.400 3369545.900 17.95148 3 8 4108 4144 4145 4109 5863 5899 5900 5864
+ 3521 621866.400 3369545.900 17.38805 3 8 4109 4145 4146 4110 5864 5900 5901 5865
+ 3522 622116.400 3369545.900 16.82661 3 8 4110 4146 4147 4111 5865 5901 5902 5866
+ 3523 622366.400 3369545.900 16.27816 3 8 4111 4147 4148 4112 5866 5902 5903 5867
+ 3524 622616.400 3369545.900 15.75000 3 8 4112 4148 4149 4113 5867 5903 5904 5868
+ 3525 622866.400 3369545.900 15.79874 3 8 4113 4149 4150 4114 5868 5904 5905 5869
+ 3526 623116.400 3369545.900 15.87987 3 8 4114 4150 4151 4115 5869 5905 5906 5870
+ 3527 623366.400 3369545.900 15.99251 3 8 4115 4151 4152 4116 5870 5906 5907 5871
+ 3528 623553.900 3369608.400 16.10328 3 8 4116 4128 4129 4117 5871 5883 5884 5872
+ 3529 623647.650 3369639.650 16.15561 3 8 4117 4125 4126 4118 5872 5880 5881 5873
+ 3530 623710.150 3369639.650 16.18915 3 8 4118 4126 4127 4119 5873 5881 5882 5874
+ 3531 623647.650 3369577.150 16.14976 3 8 4125 4129 4130 4126 5880 5884 5885 5881
+ 3532 623710.150 3369577.150 16.18484 3 8 4126 4130 4131 4127 5881 5885 5886 5882
+ 3533 623553.900 3369483.400 16.09126 3 8 4128 4152 4153 4129 5883 5907 5908 5884
+ 3534 623647.650 3369514.650 16.14595 3 8 4129 4134 4135 4130 5884 5889 5890 5885
+ 3535 623710.150 3369514.650 16.18267 3 8 4130 4135 4136 4131 5885 5890 5891 5886
+ 3536 623647.650 3369452.150 16.14418 3 8 4134 4153 4154 4135 5889 5908 5909 5890
+ 3537 623710.150 3369452.150 16.18261 3 8 4135 4154 4155 4136 5890 5909 5910 5891
+ 3538 623803.900 3369608.400 16.23846 3 8 4119 4131 4132 4120 5874 5886 5887 5875
+ 3539 623928.900 3369608.400 16.30276 3 8 4120 4132 4133 4121 5875 5887 5888 5876
+ 3540 623803.900 3369483.400 16.23900 3 8 4131 4155 4156 4132 5886 5910 5911 5887
+ 3541 623928.900 3369483.400 16.30866 3 8 4132 4156 4157 4133 5887 5911 5912 5888
+ 3542 624116.400 3369545.900 16.39530 3 8 4121 4157 4158 4122 5876 5912 5913 5877
+ 3543 624366.400 3369545.900 16.47724 3 8 4122 4158 4159 4123 5877 5913 5914 5878
+ 3544 624616.400 3369545.900 16.52769 3 8 4123 4159 4160 4124 5878 5914 5915 5879
+ 3545 619866.400 3369295.900 20.23936 3 8 4137 4173 4174 4138 5892 5928 5929 5893
+ 3546 620116.400 3369295.900 20.10340 3 8 4138 4174 4175 4139 5893 5929 5930 5894
+ 3547 620366.400 3369295.900 19.88803 3 8 4139 4175 4176 4140 5894 5930 5931 5895
+ 3548 620616.400 3369295.900 19.58861 3 8 4140 4176 4177 4141 5895 5931 5932 5896
+ 3549 620866.400 3369295.900 19.21110 3 8 4141 4177 4178 4142 5896 5932 5933 5897
+ 3550 621116.400 3369295.900 18.76990 3 8 4142 4178 4179 4143 5897 5933 5934 5898
+ 3551 621366.400 3369295.900 18.28294 3 8 4143 4179 4180 4144 5898 5934 5935 5899
+ 3552 621616.400 3369295.900 17.76820 3 8 4144 4180 4181 4145 5899 5935 5936 5900
+ 3553 621866.400 3369295.900 17.24280 3 8 4145 4181 4182 4146 5900 5936 5937 5901
+ 3554 622116.400 3369295.900 16.72520 3 8 4146 4182 4183 4147 5901 5937 5938 5902
+ 3555 622366.400 3369295.900 16.24642 3 8 4147 4183 4184 4148 5902 5938 5939 5903
+ 3556 622616.400 3369295.900 15.89814 3 8 4148 4184 4185 4149 5903 5939 5940 5904
+ 3557 622866.400 3369295.900 15.80429 3 8 4149 4185 4186 4150 5904 5940 5941 5905
+ 3558 623116.400 3369295.900 15.85464 3 8 4150 4186 4187 4151 5905 5941 5942 5906
+ 3559 623366.400 3369295.900 15.96725 3 8 4151 4187 4188 4152 5906 5942 5943 5907
+ 3560 623553.900 3369358.400 16.08416 3 8 4152 4164 4165 4153 5907 5919 5920 5908
+ 3561 623647.650 3369389.650 16.14241 3 8 4153 4161 4162 4154 5908 5916 5917 5909
+ 3562 623710.150 3369389.650 16.18256 3 8 4154 4162 4163 4155 5909 5917 5918 5910
+ 3563 623647.650 3369327.150 16.14064 3 8 4161 4165 4166 4162 5916 5920 5921 5917
+ 3564 623710.150 3369327.150 16.18251 3 8 4162 4166 4167 4163 5917 5921 5922 5918
+ 3565 623553.900 3369233.400 16.07593 3 8 4164 4188 4189 4165 5919 5943 5944 5920
+ 3566 623647.650 3369264.650 16.13752 3 8 4165 4170 4171 4166 5920 5925 5926 5921
+ 3567 623710.150 3369264.650 16.18073 3 8 4166 4171 4172 4167 5921 5926 5927 5922
+ 3568 623647.650 3369202.150 16.13305 3 8 4170 4189 4190 4171 5925 5944 5945 5926
+ 3569 623710.150 3369202.150 16.17723 3 8 4171 4190 4191 4172 5926 5945 5946 5927
+ 3570 623803.900 3369358.400 16.24404 3 8 4155 4167 4168 4156 5910 5922 5923 5911
+ 3571 623928.900 3369358.400 16.31982 3 8 4156 4168 4169 4157 5911 5923 5924 5912
+ 3572 623803.900 3369233.400 16.24452 3 8 4167 4191 4192 4168 5922 5946 5947 5923
+ 3573 623928.900 3369233.400 16.32874 3 8 4168 4192 4193 4169 5923 5947 5948 5924
+ 3574 624116.400 3369295.900 16.43376 3 8 4157 4193 4194 4158 5912 5948 5949 5913
+ 3575 624366.400 3369295.900 16.49196 3 8 4158 4194 4195 4159 5913 5949 5950 5914
+ 3576 624616.400 3369295.900 16.51252 3 8 4159 4195 4196 4160 5914 5950 5951 5915
+ 3577 619866.400 3369045.900 19.96470 3 8 4173 4209 4210 4174 5928 5964 5965 5929
+ 3578 620116.400 3369045.900 19.81155 3 8 4174 4210 4211 4175 5929 5965 5966 5930
+ 3579 620366.400 3369045.900 19.59168 3 8 4175 4211 4212 4176 5930 5966 5967 5931
+ 3580 620616.400 3369045.900 19.30259 3 8 4176 4212 4213 4177 5931 5967 5968 5932
+ 3581 620866.400 3369045.900 18.94840 3 8 4177 4213 4214 4178 5932 5968 5969 5933
+ 3582 621116.400 3369045.900 18.53926 3 8 4178 4214 4215 4179 5933 5969 5970 5934
+ 3583 621366.400 3369045.900 18.08930 3 8 4179 4215 4216 4180 5934 5970 5971 5935
+ 3584 621616.400 3369045.900 17.61515 3 8 4180 4216 4217 4181 5935 5971 5972 5936
+ 3585 621866.400 3369045.900 17.13603 3 8 4181 4217 4218 4182 5936 5972 5973 5937
+ 3586 622116.400 3369045.900 16.67673 3 8 4182 4218 4219 4183 5937 5973 5974 5938
+ 3587 622366.400 3369045.900 16.27586 3 8 4183 4219 4220 4184 5938 5974 5975 5939
+ 3588 622616.400 3369045.900 15.99012 3 8 4184 4220 4221 4185 5939 5975 5976 5940
+ 3589 622866.400 3369045.900 15.86082 3 8 4185 4221 4222 4186 5940 5976 5977 5941
+ 3590 623116.400 3369045.900 15.86290 3 8 4186 4222 4223 4187 5941 5977 5978 5942
+ 3591 623366.400 3369045.900 15.95192 3 8 4187 4223 4224 4188 5942 5978 5979 5943
+ 3592 623553.900 3369108.400 16.06657 3 8 4188 4200 4201 4189 5943 5955 5956 5944
+ 3593 623647.650 3369139.650 16.12857 3 8 4189 4197 4198 4190 5944 5952 5953 5945
+ 3594 623710.150 3369139.650 16.17373 3 8 4190 4198 4199 4191 5945 5953 5954 5946
+ 3595 623647.650 3369077.150 16.12410 3 8 4197 4201 4202 4198 5952 5956 5957 5953
+ 3596 623710.150 3369077.150 16.17023 3 8 4198 4202 4203 4199 5953 5957 5958 5954
+ 3597 623553.900 3368983.400 16.05007 3 8 4200 4224 4225 4201 5955 5979 5980 5956
+ 3598 623647.650 3369014.650 16.11480 3 8 4201 4206 4207 4202 5956 5961 5962 5957
+ 3599 623710.150 3369014.650 16.16048 3 8 4202 4207 4208 4203 5957 5962 5963 5958
+ 3600 623647.650 3368952.150 16.10069 3 8 4206 4225 4226 4207 5961 5980 5981 5962
+ 3601 623710.150 3368952.150 16.14447 3 8 4207 4226 4227 4208 5962 5981 5982 5963
+ 3602 623803.900 3369108.400 16.24045 3 8 4191 4203 4204 4192 5946 5958 5959 5947
+ 3603 623928.900 3369108.400 16.33543 3 8 4192 4204 4205 4193 5947 5959 5960 5948
+ 3604 623803.900 3368983.400 16.21956 3 8 4203 4227 4228 4204 5958 5982 5983 5959
+ 3605 623928.900 3368983.400 16.31301 3 8 4204 4228 4229 4205 5959 5983 5984 5960
+ 3606 624116.400 3369045.900 16.50000 3 8 4193 4229 4230 4194 5948 5984 5985 5949
+ 3607 624366.400 3369045.900 16.48023 3 8 4194 4230 4231 4195 5949 5985 5986 5950
+ 3608 624616.400 3369045.900 16.47569 3 8 4195 4231 4232 4196 5950 5986 5987 5951
+ 3609 619866.400 3368795.900 19.71781 3 8 4209 4245 4246 4210 5964 6000 6001 5965
+ 3610 620116.400 3368795.900 19.55527 3 8 4210 4246 4247 4211 5965 6001 6002 5966
+ 3611 620366.400 3368795.900 19.33555 3 8 4211 4247 4248 4212 5966 6002 6003 5967
+ 3612 620616.400 3368795.900 19.05721 3 8 4212 4248 4249 4213 5967 6003 6004 5968
+ 3613 620866.400 3368795.900 18.72346 3 8 4213 4249 4250 4214 5968 6004 6005 5969
+ 3614 621116.400 3368795.900 18.34219 3 8 4214 4250 4251 4215 5969 6005 6006 5970
+ 3615 621366.400 3368795.900 17.92537 3 8 4215 4251 4252 4216 5970 6006 6007 5971
+ 3616 621616.400 3368795.900 17.48873 3 8 4216 4252 4253 4217 5971 6007 6008 5972
+ 3617 621866.400 3368795.900 17.05217 3 8 4217 4253 4254 4218 5972 6008 6009 5973
+ 3618 622116.400 3368795.900 16.64130 3 8 4218 4254 4255 4219 5973 6009 6010 5974
+ 3619 622366.400 3368795.900 16.28930 3 8 4219 4255 4256 4220 5974 6010 6011 5975
+ 3620 622616.400 3368795.900 16.03081 3 8 4220 4256 4257 4221 5975 6011 6012 5976
+ 3621 622866.400 3368795.900 15.88816 3 8 4221 4257 4258 4222 5976 6012 6013 5977
+ 3622 623116.400 3368795.900 15.85836 3 8 4222 4258 4259 4223 5977 6013 6014 5978
+ 3623 623366.400 3368795.900 15.92082 3 8 4223 4259 4260 4224 5978 6014 6015 5979
+ 3624 623553.900 3368858.400 16.02642 3 8 4224 4236 4237 4225 5979 5991 5992 5980
+ 3625 623647.650 3368889.650 16.08657 3 8 4225 4233 4234 4226 5980 5988 5989 5981
+ 3626 623710.150 3368889.650 16.12846 3 8 4226 4234 4235 4227 5981 5989 5990 5982
+ 3627 623647.650 3368827.150 16.07245 3 8 4233 4237 4238 4234 5988 5992 5993 5989
+ 3628 623710.150 3368827.150 16.11245 3 8 4234 4238 4239 4235 5989 5993 5994 5990
+ 3629 623553.900 3368733.400 15.99669 3 8 4236 4260 4261 4237 5991 6015 6016 5992
+ 3630 623647.650 3368764.650 16.05520 3 8 4237 4242 4243 4238 5992 5997 5998 5993
+ 3631 623710.150 3368764.650 16.09319 3 8 4238 4243 4244 4239 5993 5998 5999 5994
+ 3632 623647.650 3368702.150 16.03483 3 8 4242 4261 4262 4243 5997 6016 6017 5998
+ 3633 623710.150 3368702.150 16.07069 3 8 4243 4262 4263 4244 5998 6017 6018 5999
+ 3634 623803.900 3368858.400 16.18187 3 8 4227 4239 4240 4228 5982 5994 5995 5983
+ 3635 623928.900 3368858.400 16.26147 3 8 4228 4240 4241 4229 5983 5995 5996 5984
+ 3636 623803.900 3368733.400 16.13732 3 8 4239 4263 4264 4240 5994 6018 6019 5995
+ 3637 623928.900 3368733.400 16.20611 3 8 4240 4264 4265 4241 5995 6019 6020 5996
+ 3638 624116.400 3368795.900 16.33662 3 8 4229 4265 4266 4230 5984 6020 6021 5985
+ 3639 624366.400 3368795.900 16.38707 3 8 4230 4266 4267 4231 5985 6021 6022 5986
+ 3640 624616.400 3368795.900 16.40139 3 8 4231 4267 4268 4232 5986 6022 6023 5987
+ 3641 619866.400 3368545.900 19.49969 3 8 4245 4281 4282 4246 6000 6036 6037 6001
+ 3642 620116.400 3368545.900 19.33363 3 8 4246 4282 4283 4247 6001 6037 6038 6002
+ 3643 620366.400 3368545.900 19.11774 3 8 4247 4283 4284 4248 6002 6038 6039 6003
+ 3644 620616.400 3368545.900 18.85102 3 8 4248 4284 4285 4249 6003 6039 6040 6004
+ 3645 620866.400 3368545.900 18.53594 3 8 4249 4285 4286 4250 6004 6040 6041 6005
+ 3646 621116.400 3368545.900 18.17884 3 8 4250 4286 4287 4251 6005 6041 6042 6006
+ 3647 621366.400 3368545.900 17.78999 3 8 4251 4287 4288 4252 6006 6042 6043 6007
+ 3648 621616.400 3368545.900 17.38386 3 8 4252 4288 4289 4253 6007 6043 6044 6008
+ 3649 621866.400 3368545.900 16.97949 3 8 4253 4289 4290 4254 6008 6044 6045 6009
+ 3650 622116.400 3368545.900 16.60075 3 8 4254 4290 4291 4255 6009 6045 6046 6010
+ 3651 622366.400 3368545.900 16.27530 3 8 4255 4291 4292 4256 6010 6046 6047 6011
+ 3652 622616.400 3368545.900 16.02821 3 8 4256 4292 4293 4257 6011 6047 6048 6012
+ 3653 622866.400 3368545.900 15.87463 3 8 4257 4293 4294 4258 6012 6048 6049 6013
+ 3654 623116.400 3368545.900 15.82119 3 8 4258 4294 4295 4259 6013 6049 6050 6014
+ 3655 623366.400 3368545.900 15.86587 3 8 4259 4295 4297 4260 6014 6050 6052 6015
+ 3656 623553.900 3368608.400 15.96086 3 8 4260 4272 4273 4261 6015 6027 6028 6016
+ 3657 623647.650 3368639.650 16.01446 3 8 4261 4269 4270 4262 6016 6024 6025 6017
+ 3658 623710.150 3368639.650 16.04818 3 8 4262 4270 4271 4263 6017 6025 6026 6018
+ 3659 623647.650 3368577.150 15.99409 3 8 4269 4273 4274 4270 6024 6028 6029 6025
+ 3660 623710.150 3368577.150 16.02568 3 8 4270 4274 4275 4271 6025 6029 6030 6026
+ 3661 623553.900 3368483.400 15.92409 3 8 4272 4297 4298 4273 6027 6052 6053 6028
+ 3662 623647.650 3368514.650 15.97363 3 8 4273 4278 4279 4274 6028 6033 6034 6029
+ 3663 623710.150 3368514.650 16.00344 3 8 4274 4279 4280 4275 6029 6034 6035 6030
+ 3664 623647.650 3368452.150 15.95307 3 8 4278 4298 4299 4279 6033 6053 6054 6034
+ 3665 623710.150 3368452.150 15.98145 3 8 4279 4299 4300 4280 6034 6054 6055 6035
+ 3666 623803.900 3368608.400 16.08592 3 8 4263 4275 4276 4264 6018 6030 6031 6019
+ 3667 623928.900 3368608.400 16.14690 3 8 4264 4276 4277 4265 6019 6031 6032 6020
+ 3668 623803.900 3368483.400 16.03608 3 8 4275 4300 4301 4276 6030 6055 6056 6031
+ 3669 623928.900 3368483.400 16.09076 3 8 4276 4301 4302 4277 6031 6056 6057 6032
+ 3670 624116.400 3368545.900 16.19696 3 8 4265 4302 4303 4266 6020 6057 6058 6021
+ 3671 624366.400 3368545.900 16.26453 3 8 4266 4303 4304 4267 6021 6058 6059 6022
+ 3672 624616.400 3368545.900 16.30291 3 8 4267 4304 4305 4268 6022 6059 6060 6023
+ 3673 619866.400 3368295.900 19.30987 3 8 4281 4320 4321 4282 6036 6075 6076 6037
+ 3674 620116.400 3368295.900 19.14499 3 8 4282 4321 4322 4283 6037 6076 6077 6038
+ 3675 620366.400 3368295.900 18.93611 3 8 4283 4322 4323 4284 6038 6077 6078 6039
+ 3676 620616.400 3368295.900 18.68218 3 8 4284 4323 4324 4285 6039 6078 6079 6040
+ 3677 620866.400 3368295.900 18.38477 3 8 4285 4324 4325 4286 6040 6079 6080 6041
+ 3678 621116.400 3368295.900 18.04863 3 8 4286 4325 4326 4287 6041 6080 6081 6042
+ 3679 621366.400 3368295.900 17.68220 3 8 4287 4326 4327 4288 6042 6081 6082 6043
+ 3680 621616.400 3368295.900 17.29822 3 8 4288 4327 4328 4289 6043 6082 6083 6044
+ 3681 621866.400 3368295.900 16.91409 3 8 4289 4328 4329 4290 6044 6083 6084 6045
+ 3682 622116.400 3368295.900 16.55191 3 8 4290 4329 4330 4291 6045 6084 6085 6046
+ 3683 622366.400 3368295.900 16.23721 3 8 4291 4330 4331 4292 6046 6085 6086 6047
+ 3684 622616.400 3368295.900 15.99388 3 8 4292 4331 4332 4293 6047 6086 6087 6048
+ 3685 622866.400 3368295.900 15.83372 3 8 4293 4332 4333 4294 6048 6087 6088 6049
+ 3686 623116.400 3368295.900 15.75000 3 8 4294 4333 4335 4295 6049 6088 6090 6050
+ 3687 623303.900 3368358.400 15.80554 3 8 4295 4309 4310 4296 6050 6064 6065 6051
+ 3688 623428.900 3368358.400 15.84087 3 8 4296 4310 4311 4297 6051 6065 6066 6052
+ 3689 623303.900 3368233.400 15.77915 3 8 4309 4335 4337 4310 6064 6090 6092 6065
+ 3690 623428.900 3368233.400 15.81100 3 8 4310 4337 4339 4311 6065 6092 6094 6066
+ 3691 623553.900 3368358.400 15.88636 3 8 4297 4311 4312 4298 6052 6066 6067 6053
+ 3692 623647.650 3368389.650 15.93250 3 8 4298 4306 4307 4299 6053 6061 6062 6054
+ 3693 623710.150 3368389.650 15.95945 3 8 4299 4307 4308 4300 6054 6062 6063 6055
+ 3694 623647.650 3368327.150 15.91194 3 8 4306 4312 4313 4307 6061 6067 6068 6062
+ 3695 623710.150 3368327.150 15.93746 3 8 4307 4313 4314 4308 6062 6068 6069 6063
+ 3696 623553.900 3368233.400 15.85208 3 8 4311 4339 4340 4312 6066 6094 6095 6067
+ 3697 623647.650 3368264.650 15.89306 3 8 4312 4317 4318 4313 6067 6072 6073 6068
+ 3698 623710.150 3368264.650 15.91730 3 8 4313 4318 4319 4314 6068 6073 6074 6069
+ 3699 623647.650 3368202.150 15.87585 3 8 4317 4340 4341 4318 6072 6095 6096 6073
+ 3700 623710.150 3368202.150 15.89896 3 8 4318 4341 4342 4319 6073 6096 6097 6074
+ 3701 623803.900 3368358.400 15.98781 3 8 4300 4314 4315 4301 6055 6069 6070 6056
+ 3702 623928.900 3368358.400 16.03770 3 8 4301 4315 4316 4302 6056 6070 6071 6057
+ 3703 623803.900 3368233.400 15.94363 3 8 4314 4342 4343 4315 6069 6097 6098 6070
+ 3704 623928.900 3368233.400 15.98920 3 8 4315 4343 4344 4316 6070 6098 6099 6071
+ 3705 624116.400 3368295.900 16.07923 3 8 4302 4344 4345 4303 6057 6099 6100 6058
+ 3706 624366.400 3368295.900 16.14948 3 8 4303 4345 4346 4304 6058 6100 6101 6059
+ 3707 624616.400 3368295.900 16.20038 3 8 4304 4346 4347 4305 6059 6101 6102 6060
+ 3708 619866.400 3368045.900 19.11954 3 8 4320 4392 4393 4321 6075 6147 6148 6076
+ 3709 620116.400 3368045.900 18.96722 3 8 4321 4393 4394 4322 6076 6148 6149 6077
+ 3710 620366.400 3368045.900 18.77490 3 8 4322 4394 4395 4323 6077 6149 6150 6078
+ 3711 620616.400 3368045.900 18.54098 3 8 4323 4395 4396 4324 6078 6150 6151 6079
+ 3712 620866.400 3368045.900 18.26569 3 8 4324 4396 4397 4325 6079 6151 6152 6080
+ 3713 621116.400 3368045.900 17.95176 3 8 4325 4397 4398 4326 6080 6152 6153 6081
+ 3714 621366.400 3368045.900 17.60538 3 8 4326 4398 4399 4327 6081 6153 6154 6082
+ 3715 621616.400 3368045.900 17.23337 3 8 4327 4399 4400 4328 6082 6154 6155 6083
+ 3716 621866.400 3368045.900 16.85852 3 8 4328 4400 4401 4329 6083 6155 6156 6084
+ 3717 622116.400 3368045.900 16.49901 3 8 4329 4401 4402 4330 6084 6156 6157 6085
+ 3718 622366.400 3368045.900 16.18105 3 8 4330 4402 4403 4331 6085 6157 6158 6086
+ 3719 622616.400 3368045.900 15.93700 3 8 4331 4403 4404 4332 6086 6158 6159 6087
+ 3720 622866.400 3368045.900 15.78800 3 8 4332 4404 4405 4333 6087 6159 6160 6088
+ 3721 623053.900 3368108.400 15.75158 3 8 4333 4363 4364 4334 6088 6118 6119 6089
+ 3722 623178.900 3368108.400 15.74346 3 8 4334 4364 4365 4335 6089 6119 6120 6090
+ 3723 623053.900 3367983.400 15.73641 3 8 4363 4405 4406 4364 6118 6160 6161 6119
+ 3724 623178.900 3367983.400 15.72932 3 8 4364 4406 4407 4365 6119 6161 6162 6120
+ 3725 623272.650 3368139.650 15.75978 3 8 4335 4348 4349 4336 6090 6103 6104 6091
+ 3726 623335.150 3368139.650 15.76848 3 8 4336 4349 4351 4337 6091 6104 6106 6092
+ 3727 623272.650 3368077.150 15.75063 3 8 4348 4365 4366 4349 6103 6120 6121 6104
+ 3728 623319.525 3368092.775 15.75846 3 8 4349 4358 4359 4350 6104 6113 6114 6105
+ 3729 623350.775 3368092.775 15.76216 3 8 4350 4359 4360 4351 6105 6114 6115 6106
+ 3730 623319.525 3368061.525 15.75324 3 8 4358 4366 4367 4359 6113 6121 6122 6114
+ 3731 623350.775 3368061.525 15.75650 3 8 4359 4367 4368 4360 6114 6122 6123 6115
+ 3732 623397.650 3368139.650 15.78218 3 8 4337 4351 4353 4338 6092 6106 6108 6093
+ 3733 623460.150 3368139.650 15.80089 3 8 4338 4353 4354 4339 6093 6108 6109 6094
+ 3734 623382.025 3368092.775 15.76846 3 8 4351 4360 4361 4352 6106 6115 6116 6107
+ 3735 623413.275 3368092.775 15.77736 3 8 4352 4361 4362 4353 6107 6116 6117 6108
+ 3736 623382.025 3368061.525 15.76243 3 8 4360 4368 4369 4361 6115 6123 6124 6116
+ 3737 623413.275 3368061.525 15.77102 3 8 4361 4369 4370 4362 6116 6124 6125 6117
+ 3738 623460.150 3368077.150 15.78730 3 8 4353 4370 4371 4354 6108 6125 6126 6109
+ 3739 623272.650 3368014.650 15.74196 3 8 4365 4382 4383 4366 6120 6137 6138 6121
+ 3740 623319.525 3368030.275 15.74850 3 8 4366 4377 4378 4367 6121 6132 6133 6122
+ 3741 623350.775 3368030.275 15.75150 3 8 4367 4378 4379 4368 6122 6133 6134 6123
+ 3742 623319.525 3367999.025 15.74425 3 8 4377 4383 4384 4378 6132 6138 6139 6133
+ 3743 623350.775 3367999.025 15.74714 3 8 4378 4384 4385 4379 6133 6139 6140 6134
+ 3744 623272.650 3367952.150 15.73375 3 8 4382 4407 4408 4383 6137 6162 6163 6138
+ 3745 623335.150 3367952.150 15.73924 3 8 4383 4408 4409 4385 6138 6163 6164 6140
+ 3746 623382.025 3368030.275 15.75715 3 8 4368 4379 4380 4369 6123 6134 6135 6124
+ 3747 623413.275 3368030.275 15.76547 3 8 4369 4380 4381 4370 6124 6135 6136 6125
+ 3748 623382.025 3367999.025 15.75263 3 8 4379 4385 4386 4380 6134 6140 6141 6135
+ 3749 623413.275 3367999.025 15.76071 3 8 4380 4386 4387 4381 6135 6141 6142 6136
+ 3750 623460.150 3368014.650 15.77539 3 8 4370 4387 4388 4371 6125 6142 6143 6126
+ 3751 623397.650 3367952.150 15.74971 3 8 4385 4409 4410 4387 6140 6164 6165 6142
+ 3752 623460.150 3367952.150 15.76515 3 8 4387 4410 4411 4388 6142 6165 6166 6143
+ 3753 623553.900 3368108.400 15.82125 3 8 4339 4371 4372 4340 6094 6126 6127 6095
+ 3754 623647.650 3368139.650 15.85865 3 8 4340 4355 4356 4341 6095 6110 6111 6096
+ 3755 623710.150 3368139.650 15.88061 3 8 4341 4356 4357 4342 6096 6111 6112 6097
+ 3756 623647.650 3368077.150 15.84144 3 8 4355 4372 4373 4356 6110 6127 6128 6111
+ 3757 623710.150 3368077.150 15.86227 3 8 4356 4373 4374 4357 6111 6128 6129 6112
+ 3758 623553.900 3367983.400 15.79416 3 8 4371 4411 4412 4372 6126 6166 6167 6127
+ 3759 623647.650 3368014.650 15.82628 3 8 4372 4389 4390 4373 6127 6144 6145 6128
+ 3760 623710.150 3368014.650 15.84606 3 8 4373 4390 4391 4374 6128 6145 6146 6129
+ 3761 623647.650 3367952.150 15.81317 3 8 4389 4412 4413 4390 6144 6167 6168 6145
+ 3762 623710.150 3367952.150 15.83197 3 8 4390 4413 4414 4391 6145 6168 6169 6146
+ 3763 623803.900 3368108.400 15.90354 3 8 4342 4374 4375 4343 6097 6129 6130 6098
+ 3764 623928.900 3368108.400 15.94524 3 8 4343 4375 4376 4344 6098 6130 6131 6099
+ 3765 623803.900 3367983.400 15.86795 3 8 4374 4414 4415 4375 6129 6169 6170 6130
+ 3766 623928.900 3367983.400 15.90595 3 8 4375 4415 4416 4376 6130 6170 6171 6131
+ 3767 624116.400 3368045.900 15.98181 3 8 4344 4416 4417 4345 6099 6171 6172 6100
+ 3768 624366.400 3368045.900 16.04874 3 8 4345 4417 4418 4346 6100 6172 6173 6101
+ 3769 624616.400 3368045.900 16.10380 3 8 4346 4418 4419 4347 6101 6173 6174 6102
+ 3770 619866.400 3367795.900 18.98034 3 8 4392 4434 4435 4393 6147 6189 6190 6148
+ 3771 620116.400 3367795.900 18.83666 3 8 4393 4435 4436 4394 6148 6190 6191 6149
+ 3772 620366.400 3367795.900 18.65737 3 8 4394 4436 4437 4395 6149 6191 6192 6150
+ 3773 620616.400 3367795.900 18.44018 3 8 4395 4437 4438 4396 6150 6192 6193 6151
+ 3774 620866.400 3367795.900 18.18365 3 8 4396 4438 4439 4397 6151 6193 6194 6152
+ 3775 621116.400 3367795.900 17.88796 3 8 4397 4439 4440 4398 6152 6194 6195 6153
+ 3776 621366.400 3367795.900 17.55630 3 8 4398 4440 4441 4399 6153 6195 6196 6154
+ 3777 621616.400 3367795.900 17.19667 3 8 4399 4441 4442 4400 6154 6196 6197 6155
+ 3778 621866.400 3367795.900 16.82320 3 8 4400 4442 4443 4401 6155 6197 6198 6156
+ 3779 622116.400 3367795.900 16.45535 3 8 4401 4443 4444 4402 6156 6198 6199 6157
+ 3780 622366.400 3367795.900 16.11776 3 8 4402 4444 4445 4403 6157 6199 6200 6158
+ 3781 622616.400 3367795.900 15.85845 3 8 4403 4445 4446 4404 6158 6200 6201 6159
+ 3782 622866.400 3367795.900 15.73507 3 8 4404 4446 4447 4405 6159 6201 6202 6160
+ 3783 623116.400 3367795.900 15.70199 3 8 4405 4447 4448 4407 6160 6202 6203 6162
+ 3784 623303.900 3367858.400 15.72388 3 8 4407 4423 4424 4409 6162 6178 6179 6164
+ 3785 623428.900 3367858.400 15.74279 3 8 4409 4424 4425 4411 6164 6179 6180 6166
+ 3786 623303.900 3367733.400 15.70971 3 8 4423 4448 4449 4424 6178 6203 6204 6179
+ 3787 623428.900 3367733.400 15.72626 3 8 4424 4449 4450 4425 6179 6204 6205 6180
+ 3788 623553.900 3367858.400 15.77082 3 8 4411 4425 4426 4412 6166 6180 6181 6167
+ 3789 623647.650 3367889.650 15.80006 3 8 4412 4420 4421 4413 6167 6175 6176 6168
+ 3790 623710.150 3367889.650 15.81789 3 8 4413 4421 4422 4414 6168 6176 6177 6169
+ 3791 623647.650 3367827.150 15.78695 3 8 4420 4426 4427 4421 6175 6181 6182 6176
+ 3792 623710.150 3367827.150 15.80381 3 8 4421 4427 4428 4422 6176 6182 6183 6177
+ 3793 623553.900 3367733.400 15.75079 3 8 4425 4450 4451 4426 6180 6205 6206 6181
+ 3794 623647.650 3367764.650 15.77560 3 8 4426 4431 4432 4427 6181 6186 6187 6182
+ 3795 623710.150 3367764.650 15.79155 3 8 4427 4432 4433 4428 6182 6187 6188 6183
+ 3796 623647.650 3367702.150 15.76602 3 8 4431 4451 4452 4432 6186 6206 6207 6187
+ 3797 623710.150 3367702.150 15.78113 3 8 4432 4452 4453 4433 6187 6207 6208 6188
+ 3798 623803.900 3367858.400 15.83686 3 8 4414 4428 4429 4415 6169 6183 6184 6170
+ 3799 623928.900 3367858.400 15.87132 3 8 4415 4429 4430 4416 6170 6184 6185 6171
+ 3800 623803.900 3367733.400 15.80963 3 8 4428 4453 4454 4429 6183 6208 6209 6184
+ 3801 623928.900 3367733.400 15.84061 3 8 4429 4454 4455 4430 6184 6209 6210 6185
+ 3802 624116.400 3367795.900 15.90296 3 8 4416 4455 4456 4417 6171 6210 6211 6172
+ 3803 624366.400 3367795.900 15.96278 3 8 4417 4456 4457 4418 6172 6211 6212 6173
+ 3804 624616.400 3367795.900 15.99816 3 8 4418 4457 4458 4419 6173 6212 6213 6174
+ 3805 619866.400 3367545.900 18.88272 3 8 4434 4471 4472 4435 6189 6226 6227 6190
+ 3806 620116.400 3367545.900 18.74484 3 8 4435 4472 4473 4436 6190 6227 6228 6191
+ 3807 620366.400 3367545.900 18.57653 3 8 4436 4473 4474 4437 6191 6228 6229 6192
+ 3808 620616.400 3367545.900 18.37491 3 8 4437 4474 4475 4438 6192 6229 6230 6193
+ 3809 620866.400 3367545.900 18.13676 3 8 4438 4475 4476 4439 6193 6230 6231 6194
+ 3810 621116.400 3367545.900 17.85899 3 8 4439 4476 4477 4440 6194 6231 6232 6195
+ 3811 621366.400 3367545.900 17.54044 3 8 4440 4477 4478 4441 6195 6232 6233 6196
+ 3812 621616.400 3367545.900 17.18554 3 8 4441 4478 4479 4442 6196 6233 6234 6197
+ 3813 621866.400 3367545.900 16.80817 3 8 4442 4479 4480 4443 6197 6234 6235 6198
+ 3814 622116.400 3367545.900 16.43084 3 8 4443 4480 4481 4444 6198 6235 6236 6199
+ 3815 622366.400 3367545.900 16.07474 3 8 4444 4481 4482 4445 6199 6236 6237 6200
+ 3816 622616.400 3367545.900 15.75000 3 8 4445 4482 4483 4446 6200 6237 6238 6201
+ 3817 622866.400 3367545.900 15.69859 3 8 4446 4483 4484 4447 6201 6238 6239 6202
+ 3818 623116.400 3367545.900 15.68132 3 8 4447 4484 4485 4448 6202 6239 6240 6203
+ 3819 623366.400 3367545.900 15.69611 3 8 4448 4485 4486 4450 6203 6240 6241 6205
+ 3820 623553.900 3367608.400 15.73406 3 8 4450 4462 4463 4451 6205 6217 6218 6206
+ 3821 623647.650 3367639.650 15.75644 3 8 4451 4459 4460 4452 6206 6214 6215 6207
+ 3822 623710.150 3367639.650 15.77071 3 8 4452 4460 4461 4453 6207 6215 6216 6208
+ 3823 623647.650 3367577.150 15.74685 3 8 4459 4463 4464 4460 6214 6218 6219 6215
+ 3824 623710.150 3367577.150 15.76028 3 8 4460 4464 4465 4461 6215 6219 6220 6216
+ 3825 623553.900 3367483.400 15.71945 3 8 4462 4486 4487 4463 6217 6241 6242 6218
+ 3826 623647.650 3367514.650 15.73829 3 8 4463 4468 4469 4464 6218 6223 6224 6219
+ 3827 623710.150 3367514.650 15.75103 3 8 4464 4469 4470 4465 6219 6224 6225 6220
+ 3828 623647.650 3367452.150 15.73073 3 8 4468 4487 4488 4469 6223 6242 6243 6224
+ 3829 623710.150 3367452.150 15.74295 3 8 4469 4488 4489 4470 6224 6243 6244 6225
+ 3830 623803.900 3367608.400 15.78627 3 8 4453 4465 4466 4454 6208 6220 6221 6209
+ 3831 623928.900 3367608.400 15.81383 3 8 4454 4466 4467 4455 6209 6221 6222 6210
+ 3832 623803.900 3367483.400 15.76571 3 8 4465 4489 4490 4466 6220 6244 6245 6221
+ 3833 623928.900 3367483.400 15.78972 3 8 4466 4490 4491 4467 6221 6245 6246 6222
+ 3834 624116.400 3367545.900 15.83900 3 8 4455 4491 4492 4456 6210 6246 6247 6211
+ 3835 624366.400 3367545.900 15.88976 3 8 4456 4492 4493 4457 6211 6247 6248 6212
+ 3836 624616.400 3367545.900 15.92136 3 8 4457 4493 4494 4458 6212 6248 6249 6213
+ 3837 619866.400 3367295.900 18.78392 3 8 4471 4507 4508 4472 6226 6262 6263 6227
+ 3838 620116.400 3367295.900 18.66050 3 8 4472 4508 4509 4473 6227 6263 6264 6228
+ 3839 620366.400 3367295.900 18.51164 3 8 4473 4509 4510 4474 6228 6264 6265 6229
+ 3840 620616.400 3367295.900 18.33417 3 8 4474 4510 4511 4475 6229 6265 6266 6230
+ 3841 620866.400 3367295.900 18.12321 3 8 4475 4511 4512 4476 6230 6266 6267 6231
+ 3842 621116.400 3367295.900 17.87157 3 8 4476 4512 4513 4477 6231 6267 6268 6232
+ 3843 621366.400 3367295.900 17.57137 3 8 4477 4513 4514 4478 6232 6268 6269 6233
+ 3844 621616.400 3367295.900 17.22038 3 8 4478 4514 4515 4479 6233 6269 6270 6234
+ 3845 621866.400 3367295.900 16.83282 3 8 4479 4515 4516 4480 6234 6270 6271 6235
+ 3846 622116.400 3367295.900 16.44712 3 8 4480 4516 4517 4481 6235 6271 6272 6236
+ 3847 622366.400 3367295.900 16.10786 3 8 4481 4517 4518 4482 6236 6272 6273 6237
+ 3848 622616.400 3367295.900 15.85582 3 8 4482 4518 4519 4483 6237 6273 6274 6238
+ 3849 622866.400 3367295.900 15.73385 3 8 4483 4519 4520 4484 6238 6274 6275 6239
+ 3850 623116.400 3367295.900 15.68894 3 8 4484 4520 4521 4485 6239 6275 6276 6240
+ 3851 623366.400 3367295.900 15.68360 3 8 4485 4521 4522 4486 6240 6276 6277 6241
+ 3852 623553.900 3367358.400 15.70695 3 8 4486 4498 4499 4487 6241 6253 6254 6242
+ 3853 623647.650 3367389.650 15.72318 3 8 4487 4495 4496 4488 6242 6250 6251 6243
+ 3854 623710.150 3367389.650 15.73487 3 8 4488 4496 4497 4489 6243 6251 6252 6244
+ 3855 623647.650 3367327.150 15.71563 3 8 4495 4499 4500 4496 6250 6254 6255 6251
+ 3856 623710.150 3367327.150 15.72679 3 8 4496 4500 4501 4497 6251 6255 6256 6252
+ 3857 623553.900 3367233.400 15.69408 3 8 4498 4522 4523 4499 6253 6277 6278 6254
+ 3858 623647.650 3367264.650 15.70732 3 8 4499 4504 4505 4500 6254 6259 6260 6255
+ 3859 623710.150 3367264.650 15.71740 3 8 4500 4505 4506 4501 6255 6260 6261 6256
+ 3860 623647.650 3367202.150 15.69824 3 8 4504 4523 4524 4505 6259 6278 6279 6260
+ 3861 623710.150 3367202.150 15.70670 3 8 4505 4524 4525 4506 6260 6279 6280 6261
+ 3862 623803.900 3367358.400 15.74797 3 8 4489 4501 4502 4490 6244 6256 6257 6245
+ 3863 623928.900 3367358.400 15.76827 3 8 4490 4502 4503 4491 6245 6257 6258 6246
+ 3864 623803.900 3367233.400 15.72595 3 8 4501 4525 4526 4502 6256 6280 6281 6257
+ 3865 623928.900 3367233.400 15.74254 3 8 4502 4526 4527 4503 6257 6281 6282 6258
+ 3866 624116.400 3367295.900 15.78018 3 8 4491 4527 4528 4492 6246 6282 6283 6247
+ 3867 624366.400 3367295.900 15.82079 3 8 4492 4528 4529 4493 6247 6283 6284 6248
+ 3868 624616.400 3367295.900 15.86805 3 8 4493 4529 4530 4494 6248 6284 6285 6249
+ 3869 619866.400 3367045.900 18.69775 3 8 4507 4543 4544 4508 6262 6298 6299 6263
+ 3870 620116.400 3367045.900 18.59016 3 8 4508 4544 4545 4509 6263 6299 6300 6264
+ 3871 620366.400 3367045.900 18.46285 3 8 4509 4545 4546 4510 6264 6300 6301 6265
+ 3872 620616.400 3367045.900 18.31330 3 8 4510 4546 4547 4511 6265 6301 6302 6266
+ 3873 620866.400 3367045.900 18.13643 3 8 4511 4547 4548 4512 6266 6302 6303 6267
+ 3874 621116.400 3367045.900 17.92145 3 8 4512 4548 4549 4513 6267 6303 6304 6268
+ 3875 621366.400 3367045.900 17.65023 3 8 4513 4549 4550 4514 6268 6304 6305 6269
+ 3876 621616.400 3367045.900 17.30635 3 8 4514 4550 4551 4515 6269 6305 6306 6270
+ 3877 621866.400 3367045.900 16.89467 3 8 4515 4551 4552 4516 6270 6306 6307 6271
+ 3878 622116.400 3367045.900 16.48094 3 8 4516 4552 4553 4517 6271 6307 6308 6272
+ 3879 622366.400 3367045.900 16.16640 3 8 4517 4553 4555 4518 6272 6308 6310 6273
+ 3880 622616.400 3367045.900 15.94084 3 8 4518 4555 4556 4519 6273 6310 6311 6274
+ 3881 622866.400 3367045.900 15.79407 3 8 4519 4556 4557 4520 6274 6311 6312 6275
+ 3882 623116.400 3367045.900 15.71244 3 8 4520 4557 4558 4521 6275 6312 6313 6276
+ 3883 623366.400 3367045.900 15.67670 3 8 4521 4558 4559 4522 6276 6313 6314 6277
+ 3884 623553.900 3367108.400 15.68083 3 8 4522 4534 4535 4523 6277 6289 6290 6278
+ 3885 623647.650 3367139.650 15.68917 3 8 4523 4531 4532 4524 6278 6286 6287 6279
+ 3886 623710.150 3367139.650 15.69599 3 8 4524 4532 4533 4525 6279 6287 6288 6280
+ 3887 623647.650 3367077.150 15.68010 3 8 4531 4535 4536 4532 6286 6290 6291 6287
+ 3888 623710.150 3367077.150 15.68529 3 8 4532 4536 4537 4533 6287 6291 6292 6288
+ 3889 623553.900 3366983.400 15.66670 3 8 4534 4559 4560 4535 6289 6314 6315 6290
+ 3890 623647.650 3367014.650 15.67067 3 8 4535 4540 4541 4536 6290 6295 6296 6291
+ 3891 623710.150 3367014.650 15.67445 3 8 4536 4541 4542 4537 6291 6296 6297 6292
+ 3892 623647.650 3366952.150 15.66089 3 8 4540 4560 4561 4541 6295 6315 6316 6296
+ 3893 623710.150 3366952.150 15.66348 3 8 4541 4561 4562 4542 6296 6316 6317 6297
+ 3894 623803.900 3367108.400 15.69964 3 8 4525 4537 4538 4526 6280 6292 6293 6281
+ 3895 623928.900 3367108.400 15.71252 3 8 4526 4538 4539 4527 6281 6293 6294 6282
+ 3896 623803.900 3366983.400 15.67374 3 8 4537 4562 4563 4538 6292 6317 6318 6293
+ 3897 623928.900 3366983.400 15.68302 3 8 4538 4563 4564 4539 6293 6318 6319 6294
+ 3898 624116.400 3367045.900 15.71745 3 8 4527 4564 4565 4528 6282 6319 6320 6283
+ 3899 624366.400 3367045.900 15.75311 3 8 4528 4565 4566 4529 6283 6320 6321 6284
+ 3900 624616.400 3367045.900 15.79797 3 8 4529 4566 4567 4530 6284 6321 6322 6285
+ 3901 619866.400 3366795.900 18.61881 3 8 4543 4583 4584 4544 6298 6338 6339 6299
+ 3902 620116.400 3366795.900 18.52672 3 8 4544 4584 4585 4545 6299 6339 6340 6300
+ 3903 620366.400 3366795.900 18.42089 3 8 4545 4585 4586 4546 6300 6340 6341 6301
+ 3904 620616.400 3366795.900 18.30060 3 8 4546 4586 4587 4547 6301 6341 6342 6302
+ 3905 620866.400 3366795.900 18.16319 3 8 4547 4587 4588 4548 6302 6342 6343 6303
+ 3906 621116.400 3366795.900 18.00000 3 8 4548 4588 4589 4549 6303 6343 6344 6304
+ 3907 621366.400 3366795.900 17.77918 3 8 4549 4589 4590 4550 6304 6344 6345 6305
+ 3908 621616.400 3366795.900 17.46191 3 8 4550 4590 4591 4551 6305 6345 6346 6306
+ 3909 621866.400 3366795.900 17.02012 3 8 4551 4591 4592 4552 6306 6346 6347 6307
+ 3910 622116.400 3366795.900 16.50000 3 8 4552 4592 4594 4553 6307 6347 6349 6308
+ 3911 622303.900 3366858.400 16.29185 3 8 4553 4571 4572 4554 6308 6326 6327 6309
+ 3912 622428.900 3366858.400 16.16788 3 8 4554 4572 4573 4555 6309 6327 6328 6310
+ 3913 622303.900 3366733.400 16.34581 3 8 4571 4594 4596 4572 6326 6349 6351 6327
+ 3914 622428.900 3366733.400 16.21514 3 8 4572 4596 4598 4573 6327 6351 6353 6328
+ 3915 622616.400 3366795.900 16.01890 3 8 4555 4598 4600 4556 6310 6353 6355 6311
+ 3916 622866.400 3366795.900 15.84839 3 8 4556 4600 4601 4557 6311 6355 6356 6312
+ 3917 623116.400 3366795.900 15.73384 3 8 4557 4601 4602 4558 6312 6356 6357 6313
+ 3918 623366.400 3366795.900 15.66684 3 8 4558 4602 4603 4559 6313 6357 6358 6314
+ 3919 623553.900 3366858.400 15.65169 3 8 4559 4574 4575 4560 6314 6329 6330 6315
+ 3920 623647.650 3366889.650 15.65111 3 8 4560 4568 4569 4561 6315 6323 6324 6316
+ 3921 623710.150 3366889.650 15.65251 3 8 4561 4569 4570 4562 6316 6324 6325 6317
+ 3922 623647.650 3366827.150 15.64133 3 8 4568 4575 4576 4569 6323 6330 6331 6324
+ 3923 623710.150 3366827.150 15.64154 3 8 4569 4576 4577 4570 6324 6331 6332 6325
+ 3924 623553.900 3366733.400 15.63484 3 8 4574 4603 4604 4575 6329 6358 6359 6330
+ 3925 623647.650 3366764.650 15.63083 3 8 4575 4580 4581 4576 6330 6335 6336 6331
+ 3926 623710.150 3366764.650 15.62997 3 8 4576 4581 4582 4577 6331 6336 6337 6332
+ 3927 623647.650 3366702.150 15.61961 3 8 4580 4604 4605 4581 6335 6359 6360 6336
+ 3928 623710.150 3366702.150 15.61781 3 8 4581 4605 4606 4582 6336 6360 6361 6337
+ 3929 623803.900 3366858.400 15.64823 3 8 4562 4577 4578 4563 6317 6332 6333 6318
+ 3930 623928.900 3366858.400 15.65404 3 8 4563 4578 4579 4564 6318 6333 6334 6319
+ 3931 623803.900 3366733.400 15.62190 3 8 4577 4606 4607 4578 6332 6361 6362 6333
+ 3932 623928.900 3366733.400 15.62454 3 8 4578 4607 4608 4579 6333 6362 6363 6334
+ 3933 624116.400 3366795.900 15.65293 3 8 4564 4608 4609 4565 6319 6363 6364 6320
+ 3934 624366.400 3366795.900 15.68538 3 8 4565 4609 4610 4566 6320 6364 6365 6321
+ 3935 624616.400 3366795.900 15.72959 3 8 4566 4610 4611 4567 6321 6365 6366 6322
+ 3936 619866.400 3366545.900 18.54178 3 8 4583 4659 4660 4584 6338 6414 6415 6339
+ 3937 620116.400 3366545.900 18.46275 3 8 4584 4660 4661 4585 6339 6415 6416 6340
+ 3938 620366.400 3366545.900 18.37511 3 8 4585 4661 4662 4586 6340 6416 6417 6341
+ 3939 620616.400 3366545.900 18.28022 3 8 4586 4662 4663 4587 6341 6417 6418 6342
+ 3940 620866.400 3366545.900 18.17937 3 8 4587 4663 4664 4588 6342 6418 6419 6343
+ 3941 621116.400 3366545.900 18.07089 3 8 4588 4664 4665 4589 6343 6419 6420 6344
+ 3942 621366.400 3366545.900 17.93858 3 8 4589 4665 4666 4590 6344 6420 6421 6345
+ 3943 621616.400 3366545.900 17.69871 3 8 4590 4666 4667 4591 6345 6421 6422 6346
+ 3944 621866.400 3366545.900 17.23873 3 8 4591 4667 4668 4592 6346 6422 6423 6347
+ 3945 622053.900 3366608.400 16.80643 3 8 4592 4627 4628 4593 6347 6382 6383 6348
+ 3946 622178.900 3366608.400 16.59454 3 8 4593 4628 4629 4594 6348 6383 6384 6349
+ 3947 622053.900 3366483.400 16.89981 3 8 4627 4668 4669 4628 6382 6423 6424 6383
+ 3948 622178.900 3366483.400 16.67765 3 8 4628 4669 4670 4629 6383 6424 6425 6384
+ 3949 622272.650 3366639.650 16.44454 3 8 4594 4612 4613 4595 6349 6367 6368 6350
+ 3950 622335.150 3366639.650 16.36217 3 8 4595 4613 4615 4596 6350 6368 6370 6351
+ 3951 622272.650 3366577.150 16.48654 3 8 4612 4629 4630 4613 6367 6384 6385 6368
+ 3952 622319.525 3366592.775 16.41017 3 8 4613 4622 4623 4614 6368 6377 6378 6369
+ 3953 622350.775 3366592.775 16.36626 3 8 4614 4623 4624 4615 6369 6378 6379 6370
+ 3954 622319.525 3366561.525 16.42844 3 8 4622 4630 4631 4623 6377 6385 6386 6378
+ 3955 622350.775 3366561.525 16.38272 3 8 4623 4631 4632 4624 6378 6386 6387 6379
+ 3956 622397.650 3366639.650 16.28904 3 8 4596 4615 4617 4597 6351 6370 6372 6352
+ 3957 622460.150 3366639.650 16.22513 3 8 4597 4617 4618 4598 6352 6372 6373 6353
+ 3958 622382.025 3366592.775 16.32774 3 8 4615 4624 4625 4616 6370 6379 6380 6371
+ 3959 622413.275 3366592.775 16.29462 3 8 4616 4625 4626 4617 6371 6380 6381 6372
+ 3960 622382.025 3366561.525 16.34290 3 8 4624 4632 4633 4625 6379 6387 6388 6380
+ 3961 622413.275 3366561.525 16.30899 3 8 4625 4633 4634 4626 6380 6388 6389 6381
+ 3962 622460.150 3366577.150 16.25153 3 8 4617 4634 4635 4618 6372 6389 6390 6373
+ 3963 622272.650 3366514.650 16.52055 3 8 4629 4649 4650 4630 6384 6404 6405 6385
+ 3964 622319.525 3366530.275 16.44357 3 8 4630 4644 4645 4631 6385 6399 6400 6386
+ 3965 622350.775 3366530.275 16.39658 3 8 4631 4645 4646 4632 6386 6400 6401 6387
+ 3966 622319.525 3366499.025 16.45553 3 8 4644 4650 4651 4645 6399 6405 6406 6400
+ 3967 622350.775 3366499.025 16.40785 3 8 4645 4651 4652 4646 6400 6406 6407 6401
+ 3968 622272.650 3366452.150 16.54657 3 8 4649 4670 4671 4650 6404 6425 6426 6405
+ 3969 622335.150 3366452.150 16.44912 3 8 4650 4671 4672 4652 6405 6426 6427 6407
+ 3970 622382.025 3366530.275 16.35576 3 8 4632 4646 4647 4633 6387 6401 6402 6388
+ 3971 622413.275 3366530.275 16.32112 3 8 4633 4647 4648 4634 6388 6402 6403 6389
+ 3972 622382.025 3366499.025 16.36634 3 8 4646 4652 4653 4647 6401 6407 6408 6402
+ 3973 622413.275 3366499.025 16.33100 3 8 4647 4653 4654 4648 6402 6408 6409 6403
+ 3974 622460.150 3366514.650 16.27356 3 8 4634 4654 4655 4635 6389 6409 6410 6390
+ 3975 622397.650 3366452.150 16.36401 3 8 4652 4672 4673 4654 6407 6427 6428 6409
+ 3976 622460.150 3366452.150 16.29123 3 8 4654 4673 4674 4655 6409 6428 6429 6410
+ 3977 622553.900 3366608.400 16.14012 3 8 4598 4635 4636 4599 6353 6390 6391 6354
+ 3978 622678.900 3366608.400 16.02539 3 8 4599 4636 4637 4600 6354 6391 6392 6355
+ 3979 622553.900 3366483.400 16.17533 3 8 4635 4674 4675 4636 6390 6429 6430 6391
+ 3980 622678.900 3366483.400 16.05042 3 8 4636 4675 4676 4637 6391 6430 6431 6392
+ 3981 622866.400 3366545.900 15.88735 3 8 4600 4676 4677 4601 6355 6431 6432 6356
+ 3982 623116.400 3366545.900 15.74121 3 8 4601 4677 4678 4602 6356 6432 6433 6357
+ 3983 623366.400 3366545.900 15.64643 3 8 4602 4678 4679 4603 6357 6433 6434 6358
+ 3984 623553.900 3366608.400 15.61617 3 8 4603 4638 4639 4604 6358 6393 6394 6359
+ 3985 623647.650 3366639.650 15.60839 3 8 4604 4619 4620 4605 6359 6374 6375 6360
+ 3986 623710.150 3366639.650 15.60564 3 8 4605 4620 4621 4606 6360 6375 6376 6361
+ 3987 623647.650 3366577.150 15.59717 3 8 4619 4639 4640 4620 6374 6394 6395 6375
+ 3988 623710.150 3366577.150 15.59348 3 8 4620 4640 4641 4621 6375 6395 6396 6376
+ 3989 623553.900 3366483.400 15.59423 3 8 4638 4679 4680 4639 6393 6434 6435 6394
+ 3990 623647.650 3366514.650 15.58456 3 8 4639 4656 4657 4640 6394 6411 6412 6395
+ 3991 623710.150 3366514.650 15.58006 3 8 4640 4657 4658 4641 6395 6412 6413 6396
+ 3992 623647.650 3366452.150 15.57056 3 8 4656 4680 4681 4657 6411 6435 6436 6412
+ 3993 623710.150 3366452.150 15.56539 3 8 4657 4681 4682 4658 6412 6436 6437 6413
+ 3994 623803.900 3366608.400 15.59473 3 8 4606 4641 4642 4607 6361 6396 6397 6362
+ 3995 623928.900 3366608.400 15.59452 3 8 4607 4642 4643 4608 6362 6397 6398 6363
+ 3996 623803.900 3366483.400 15.56547 3 8 4641 4682 4683 4642 6396 6437 6438 6397
+ 3997 623928.900 3366483.400 15.56290 3 8 4642 4683 4684 4643 6397 6438 6439 6398
+ 3998 624116.400 3366545.900 15.58708 3 8 4608 4684 4685 4609 6363 6439 6440 6364
+ 3999 624366.400 3366545.900 15.61739 3 8 4609 4685 4686 4610 6364 6440 6441 6365
+ 4000 624616.400 3366545.900 15.66255 3 8 4610 4686 4687 4611 6365 6441 6442 6366
+ 4001 619866.400 3366295.900 18.46229 3 8 4659 4703 4704 4660 6414 6458 6459 6415
+ 4002 620116.400 3366295.900 18.39210 3 8 4660 4704 4705 4661 6415 6459 6460 6416
+ 4003 620366.400 3366295.900 18.31621 3 8 4661 4705 4706 4662 6416 6460 6461 6417
+ 4004 620616.400 3366295.900 18.23691 3 8 4662 4706 4707 4663 6417 6461 6462 6418
+ 4005 620866.400 3366295.900 18.15773 3 8 4663 4707 4708 4664 6418 6462 6463 6419
+ 4006 621116.400 3366295.900 18.08508 3 8 4664 4708 4709 4665 6419 6463 6464 6420
+ 4007 621366.400 3366295.900 18.02904 3 8 4665 4709 4711 4666 6420 6464 6466 6421
+ 4008 621616.400 3366295.900 18.00000 3 8 4666 4711 4712 4667 6421 6466 6467 6422
+ 4009 621866.400 3366295.900 17.39630 3 8 4667 4712 4713 4668 6422 6467 6468 6423
+ 4010 622116.400 3366295.900 16.87267 3 8 4668 4713 4714 4670 6423 6468 6469 6425
+ 4011 622303.900 3366358.400 16.53479 3 8 4670 4691 4692 4672 6425 6446 6447 6427
+ 4012 622428.900 3366358.400 16.35621 3 8 4672 4692 4693 4674 6427 6447 6448 6429
+ 4013 622303.900 3366233.400 16.55811 3 8 4691 4714 4715 4692 6446 6469 6470 6447
+ 4014 622428.900 3366233.400 16.37370 3 8 4692 4715 4716 4693 6447 6470 6471 6448
+ 4015 622616.400 3366295.900 16.13609 3 8 4674 4716 4717 4676 6429 6471 6472 6431
+ 4016 622866.400 3366295.900 15.89721 3 8 4676 4717 4718 4677 6431 6472 6473 6432
+ 4017 623116.400 3366295.900 15.72488 3 8 4677 4718 4719 4678 6432 6473 6474 6433
+ 4018 623366.400 3366295.900 15.60856 3 8 4678 4719 4720 4679 6433 6474 6475 6434
+ 4019 623553.900 3366358.400 15.56901 3 8 4679 4694 4695 4680 6434 6449 6450 6435
+ 4020 623647.650 3366389.650 15.55657 3 8 4680 4688 4689 4681 6435 6443 6444 6436
+ 4021 623710.150 3366389.650 15.55072 3 8 4681 4689 4690 4682 6436 6444 6445 6437
+ 4022 623647.650 3366327.150 15.54257 3 8 4688 4695 4696 4689 6443 6450 6451 6444
+ 4023 623710.150 3366327.150 15.53605 3 8 4689 4696 4697 4690 6444 6451 6452 6445
+ 4024 623553.900 3366233.400 15.53952 3 8 4694 4720 4721 4695 6449 6475 6476 6450
+ 4025 623647.650 3366264.650 15.52669 3 8 4695 4700 4701 4696 6450 6455 6456 6451
+ 4026 623710.150 3366264.650 15.51956 3 8 4696 4701 4702 4697 6451 6456 6457 6452
+ 4027 623647.650 3366202.150 15.50891 3 8 4700 4721 4722 4701 6455 6476 6477 6456
+ 4028 623710.150 3366202.150 15.50124 3 8 4701 4722 4723 4702 6456 6477 6478 6457
+ 4029 623803.900 3366358.400 15.53410 3 8 4682 4697 4698 4683 6437 6452 6453 6438
+ 4030 623928.900 3366358.400 15.52967 3 8 4683 4698 4699 4684 6438 6453 6454 6439
+ 4031 623803.900 3366233.400 15.49930 3 8 4697 4723 4724 4698 6452 6478 6479 6453
+ 4032 623928.900 3366233.400 15.49366 3 8 4698 4724 4725 4699 6453 6479 6480 6454
+ 4033 624116.400 3366295.900 15.51757 3 8 4684 4725 4726 4685 6439 6480 6481 6440
+ 4034 624366.400 3366295.900 15.54867 3 8 4685 4726 4727 4686 6440 6481 6482 6441
+ 4035 624616.400 3366295.900 15.59705 3 8 4686 4727 4728 4687 6441 6482 6483 6442
+ 4036 619866.400 3366045.900 18.37777 3 8 4703 4744 4745 4704 6458 6499 6500 6459
+ 4037 620116.400 3366045.900 18.31138 3 8 4704 4745 4746 4705 6459 6500 6501 6460
+ 4038 620366.400 3366045.900 18.23948 3 8 4705 4746 4747 4706 6460 6501 6502 6461
+ 4039 620616.400 3366045.900 18.16329 3 8 4706 4747 4748 4707 6461 6502 6503 6462
+ 4040 620866.400 3366045.900 18.08383 3 8 4707 4748 4749 4708 6462 6503 6504 6463
+ 4041 621116.400 3366045.900 18.00000 3 8 4708 4749 4751 4709 6463 6504 6506 6464
+ 4042 621303.900 3366108.400 17.96076 3 8 4709 4732 4733 4710 6464 6487 6488 6465
+ 4043 621428.900 3366108.400 17.90339 3 8 4710 4733 4734 4711 6465 6488 6489 6466
+ 4044 621303.900 3365983.400 17.88673 3 8 4732 4751 4753 4733 6487 6506 6508 6488
+ 4045 621428.900 3365983.400 17.81086 3 8 4733 4753 4755 4734 6488 6508 6510 6489
+ 4046 621616.400 3366045.900 17.72238 3 8 4711 4755 4757 4712 6466 6510 6512 6467
+ 4047 621866.400 3366045.900 17.32141 3 8 4712 4757 4758 4713 6467 6512 6513 6468
+ 4048 622116.400 3366045.900 16.86088 3 8 4713 4758 4759 4714 6468 6513 6514 6469
+ 4049 622366.400 3366045.900 16.45195 3 8 4714 4759 4760 4716 6469 6514 6515 6471
+ 4050 622616.400 3366045.900 16.11999 3 8 4716 4760 4761 4717 6471 6515 6516 6472
+ 4051 622866.400 3366045.900 15.86456 3 8 4717 4761 4762 4718 6472 6516 6517 6473
+ 4052 623116.400 3366045.900 15.67751 3 8 4718 4762 4763 4719 6473 6517 6518 6474
+ 4053 623366.400 3366045.900 15.54865 3 8 4719 4763 4764 4720 6474 6518 6519 6475
+ 4054 623553.900 3366108.400 15.50576 3 8 4720 4735 4736 4721 6475 6490 6491 6476
+ 4055 623647.650 3366139.650 15.49113 3 8 4721 4729 4730 4722 6476 6484 6485 6477
+ 4056 623710.150 3366139.650 15.48293 3 8 4722 4730 4731 4723 6477 6485 6486 6478
+ 4057 623647.650 3366077.150 15.47335 3 8 4729 4736 4737 4730 6484 6491 6492 6485
+ 4058 623710.150 3366077.150 15.46461 3 8 4730 4737 4738 4731 6485 6492 6493 6486
+ 4059 623553.900 3365983.400 15.46790 3 8 4735 4764 4765 4736 6490 6519 6520 6491
+ 4060 623647.650 3366014.650 15.45383 3 8 4736 4741 4742 4737 6491 6496 6497 6492
+ 4061 623710.150 3366014.650 15.44477 3 8 4737 4742 4743 4738 6492 6497 6498 6493
+ 4062 623647.650 3365952.150 15.43257 3 8 4741 4765 4766 4742 6496 6520 6521 6497
+ 4063 623710.150 3365952.150 15.42339 3 8 4742 4766 4767 4743 6497 6521 6522 6498
+ 4064 623803.900 3366108.400 15.46106 3 8 4723 4738 4739 4724 6478 6493 6494 6479
+ 4065 623928.900 3366108.400 15.45486 3 8 4724 4739 4740 4725 6479 6494 6495 6480
+ 4066 623803.900 3365983.400 15.42039 3 8 4738 4767 4768 4739 6493 6522 6523 6494
+ 4067 623928.900 3365983.400 15.41435 3 8 4739 4768 4769 4740 6494 6523 6524 6495
+ 4068 624116.400 3366045.900 15.44303 3 8 4725 4769 4770 4726 6480 6524 6525 6481
+ 4069 624366.400 3366045.900 15.47969 3 8 4726 4770 4771 4727 6481 6525 6526 6482
+ 4070 624616.400 3366045.900 15.53424 3 8 4727 4771 4772 4728 6482 6526 6527 6483
+ 4071 619866.400 3365795.900 18.28773 3 8 4744 4820 4821 4745 6499 6575 6576 6500
+ 4072 620116.400 3365795.900 18.22062 3 8 4745 4821 4822 4746 6500 6576 6577 6501
+ 4073 620366.400 3365795.900 18.14612 3 8 4746 4822 4823 4747 6501 6577 6578 6502
+ 4074 620616.400 3365795.900 18.06338 3 8 4747 4823 4824 4748 6502 6578 6579 6503
+ 4075 620866.400 3365795.900 17.96979 3 8 4748 4824 4825 4749 6503 6579 6580 6504
+ 4076 621053.900 3365858.400 17.92002 3 8 4749 4788 4789 4750 6504 6543 6544 6505
+ 4077 621178.900 3365858.400 17.86047 3 8 4750 4789 4790 4751 6505 6544 6545 6506
+ 4078 621053.900 3365733.400 17.84771 3 8 4788 4825 4826 4789 6543 6580 6581 6544
+ 4079 621178.900 3365733.400 17.77874 3 8 4789 4826 4827 4790 6544 6581 6582 6545
+ 4080 621272.650 3365889.650 17.83264 3 8 4751 4773 4774 4752 6506 6528 6529 6507
+ 4081 621335.150 3365889.650 17.80105 3 8 4752 4774 4776 4753 6507 6529 6531 6508
+ 4082 621272.650 3365827.150 17.78792 3 8 4773 4790 4791 4774 6528 6545 6546 6529
+ 4083 621319.525 3365842.775 17.77330 3 8 4774 4783 4784 4775 6529 6538 6539 6530
+ 4084 621350.775 3365842.775 17.75610 3 8 4775 4784 4785 4776 6530 6539 6540 6531
+ 4085 621319.525 3365811.525 17.74953 3 8 4783 4791 4792 4784 6538 6546 6547 6539
+ 4086 621350.775 3365811.525 17.73140 3 8 4784 4792 4793 4785 6539 6547 6548 6540
+ 4087 621397.650 3365889.650 17.75826 3 8 4753 4776 4778 4754 6508 6531 6533 6509
+ 4088 621460.150 3365889.650 17.70428 3 8 4754 4778 4779 4755 6509 6533 6534 6510
+ 4089 621382.025 3365842.775 17.73350 3 8 4776 4785 4786 4777 6531 6540 6541 6532
+ 4090 621413.275 3365842.775 17.70548 3 8 4777 4786 4787 4778 6532 6541 6542 6533
+ 4091 621382.025 3365811.525 17.70798 3 8 4785 4793 4794 4786 6540 6548 6549 6541
+ 4092 621413.275 3365811.525 17.67929 3 8 4786 4794 4795 4787 6541 6549 6550 6542
+ 4093 621460.150 3365827.150 17.64985 3 8 4778 4795 4796 4779 6533 6550 6551 6534
+ 4094 621272.650 3365764.650 17.74259 3 8 4790 4810 4811 4791 6545 6565 6566 6546
+ 4095 621319.525 3365780.275 17.72576 3 8 4791 4805 4806 4792 6546 6560 6561 6547
+ 4096 621350.775 3365780.275 17.70688 3 8 4792 4806 4807 4793 6547 6561 6562 6548
+ 4097 621319.525 3365749.025 17.70196 3 8 4805 4811 4812 4806 6560 6566 6567 6561
+ 4098 621350.775 3365749.025 17.68253 3 8 4806 4812 4813 4807 6561 6567 6568 6562
+ 4099 621272.650 3365702.150 17.69666 3 8 4810 4827 4828 4811 6565 6582 6583 6566
+ 4100 621335.150 3365702.150 17.65614 3 8 4811 4828 4829 4813 6566 6583 6584 6568
+ 4101 621382.025 3365780.275 17.68285 3 8 4793 4807 4808 4794 6548 6562 6563 6549
+ 4102 621413.275 3365780.275 17.65368 3 8 4794 4808 4809 4795 6549 6563 6564 6550
+ 4103 621382.025 3365749.025 17.65809 3 8 4807 4813 4814 4808 6562 6568 6569 6563
+ 4104 621413.275 3365749.025 17.62864 3 8 4808 4814 4815 4809 6563 6569 6570 6564
+ 4105 621460.150 3365764.650 17.59719 3 8 4795 4815 4816 4796 6550 6570 6571 6551
+ 4106 621397.650 3365702.150 17.60601 3 8 4813 4829 4830 4815 6568 6584 6585 6570
+ 4107 621460.150 3365702.150 17.54626 3 8 4815 4830 4831 4816 6570 6585 6586 6571
+ 4108 621553.900 3365858.400 17.59405 3 8 4755 4796 4797 4756 6510 6551 6552 6511
+ 4109 621678.900 3365858.400 17.44996 3 8 4756 4797 4798 4757 6511 6552 6553 6512
+ 4110 621553.900 3365733.400 17.48294 3 8 4796 4831 4832 4797 6551 6586 6587 6552
+ 4111 621678.900 3365733.400 17.34002 3 8 4797 4832 4833 4798 6552 6587 6588 6553
+ 4112 621866.400 3365795.900 17.13788 3 8 4757 4833 4834 4758 6512 6588 6589 6513
+ 4113 622116.400 3365795.900 16.74359 3 8 4758 4834 4835 4759 6513 6589 6590 6514
+ 4114 622366.400 3365795.900 16.36415 3 8 4759 4835 4836 4760 6514 6590 6591 6515
+ 4115 622616.400 3365795.900 16.03969 3 8 4760 4836 4837 4761 6515 6591 6592 6516
+ 4116 622866.400 3365795.900 15.78471 3 8 4761 4837 4838 4762 6516 6592 6593 6517
+ 4117 623116.400 3365795.900 15.59727 3 8 4762 4838 4839 4763 6517 6593 6594 6518
+ 4118 623366.400 3365795.900 15.46728 3 8 4763 4839 4840 4764 6518 6594 6595 6519
+ 4119 623553.900 3365858.400 15.42593 3 8 4764 4799 4800 4765 6519 6554 6555 6520
+ 4120 623647.650 3365889.650 15.41132 3 8 4765 4780 4781 4766 6520 6535 6536 6521
+ 4121 623710.150 3365889.650 15.40202 3 8 4766 4781 4782 4767 6521 6536 6537 6522
+ 4122 623647.650 3365827.150 15.39006 3 8 4780 4800 4801 4781 6535 6555 6556 6536
+ 4123 623710.150 3365827.150 15.38064 3 8 4781 4801 4802 4782 6536 6556 6557 6537
+ 4124 623553.900 3365733.400 15.38256 3 8 4799 4840 4841 4800 6554 6595 6596 6555
+ 4125 623647.650 3365764.650 15.36834 3 8 4800 4817 4818 4801 6555 6572 6573 6556
+ 4126 623710.150 3365764.650 15.35859 3 8 4801 4818 4819 4802 6556 6573 6574 6557
+ 4127 623647.650 3365702.150 15.34615 3 8 4817 4841 4842 4818 6572 6596 6597 6573
+ 4128 623710.150 3365702.150 15.33587 3 8 4818 4842 4843 4819 6573 6597 6598 6574
+ 4129 623803.900 3365858.400 15.37729 3 8 4767 4802 4803 4768 6522 6557 6558 6523
+ 4130 623928.900 3365858.400 15.37214 3 8 4768 4803 4804 4769 6523 6558 6559 6524
+ 4131 623803.900 3365733.400 15.33221 3 8 4802 4843 4844 4803 6557 6598 6599 6558
+ 4132 623928.900 3365733.400 15.32868 3 8 4803 4844 4845 4804 6558 6599 6600 6559
+ 4133 624116.400 3365795.900 15.36534 3 8 4769 4845 4846 4770 6524 6600 6601 6525
+ 4134 624366.400 3365795.900 15.41362 3 8 4770 4846 4847 4771 6525 6601 6602 6526
+ 4135 624616.400 3365795.900 15.47680 3 8 4771 4847 4848 4772 6526 6602 6603 6527
+ 4136 619866.400 3365545.900 18.19348 3 8 4820 4864 4865 4821 6575 6619 6620 6576
+ 4137 620116.400 3365545.900 18.12257 3 8 4821 4865 4866 4822 6576 6620 6621 6577
+ 4138 620366.400 3365545.900 18.04156 3 8 4822 4866 4867 4823 6577 6621 6622 6578
+ 4139 620616.400 3365545.900 17.94781 3 8 4823 4867 4868 4824 6578 6622 6623 6579
+ 4140 620866.400 3365545.900 17.83618 3 8 4824 4868 4869 4825 6579 6623 6624 6580
+ 4141 621116.400 3365545.900 17.69692 3 8 4825 4869 4870 4827 6580 6624 6625 6582
+ 4142 621303.900 3365608.400 17.60584 3 8 4827 4852 4853 4829 6582 6607 6608 6584
+ 4143 621428.900 3365608.400 17.50060 3 8 4829 4853 4854 4831 6584 6608 6609 6586
+ 4144 621303.900 3365483.400 17.51672 3 8 4852 4870 4871 4853 6607 6625 6626 6608
+ 4145 621428.900 3365483.400 17.40642 3 8 4853 4871 4872 4854 6608 6626 6627 6609
+ 4146 621616.400 3365545.900 17.26262 3 8 4831 4872 4873 4833 6586 6627 6628 6588
+ 4147 621866.400 3365545.900 16.94167 3 8 4833 4873 4874 4834 6588 6628 6629 6589
+ 4148 622116.400 3365545.900 16.57765 3 8 4834 4874 4875 4835 6589 6629 6630 6590
+ 4149 622366.400 3365545.900 16.21742 3 8 4835 4875 4876 4836 6590 6630 6631 6591
+ 4150 622616.400 3365545.900 15.90413 3 8 4836 4876 4877 4837 6591 6631 6632 6592
+ 4151 622866.400 3365545.900 15.66145 3 8 4837 4877 4878 4838 6592 6632 6633 6593
+ 4152 623116.400 3365545.900 15.48880 3 8 4838 4878 4879 4839 6593 6633 6634 6594
+ 4153 623366.400 3365545.900 15.37216 3 8 4839 4879 4880 4840 6594 6634 6635 6595
+ 4154 623553.900 3365608.400 15.33780 3 8 4840 4855 4856 4841 6595 6610 6611 6596
+ 4155 623647.650 3365639.650 15.32397 3 8 4841 4849 4850 4842 6596 6604 6605 6597
+ 4156 623710.150 3365639.650 15.31315 3 8 4842 4850 4851 4843 6597 6605 6606 6598
+ 4157 623647.650 3365577.150 15.30178 3 8 4849 4856 4857 4850 6604 6611 6612 6605
+ 4158 623710.150 3365577.150 15.29043 3 8 4850 4857 4858 4851 6605 6612 6613 6606
+ 4159 623553.900 3365483.400 15.29605 3 8 4855 4880 4881 4856 6610 6635 6636 6611
+ 4160 623647.650 3365514.650 15.28238 3 8 4856 4861 4862 4857 6611 6616 6617 6612
+ 4161 623710.150 3365514.650 15.27182 3 8 4857 4862 4863 4858 6612 6617 6618 6613
+ 4162 623647.650 3365452.150 15.26575 3 8 4861 4881 4882 4862 6616 6636 6637 6617
+ 4163 623710.150 3365452.150 15.25734 3 8 4862 4882 4883 4863 6617 6637 6638 6618
+ 4164 623803.900 3365608.400 15.28515 3 8 4843 4858 4859 4844 6598 6613 6614 6599
+ 4165 623928.900 3365608.400 15.28397 3 8 4844 4859 4860 4845 6599 6614 6615 6600
+ 4166 623803.900 3365483.400 15.25037 3 8 4858 4883 4884 4859 6613 6638 6639 6614
+ 4167 623928.900 3365483.400 15.25214 3 8 4859 4884 4885 4860 6614 6639 6640 6615
+ 4168 624116.400 3365545.900 15.29644 3 8 4845 4885 4886 4846 6600 6640 6641 6601
+ 4169 624366.400 3365545.900 15.35754 3 8 4846 4886 4887 4847 6601 6641 6642 6602
+ 4170 624616.400 3365545.900 15.42865 3 8 4847 4887 4888 4848 6602 6642 6643 6603
+ 4171 619866.400 3365295.900 18.09738 3 8 4864 4901 4902 4865 6619 6656 6657 6620
+ 4172 620116.400 3365295.900 18.02129 3 8 4865 4902 4903 4866 6620 6657 6658 6621
+ 4173 620366.400 3365295.900 17.93265 3 8 4866 4903 4904 4867 6621 6658 6659 6622
+ 4174 620616.400 3365295.900 17.82780 3 8 4867 4904 4905 4868 6622 6659 6660 6623
+ 4175 620866.400 3365295.900 17.70080 3 8 4868 4905 4906 4869 6623 6660 6661 6624
+ 4176 621116.400 3365295.900 17.54239 3 8 4869 4906 4907 4870 6624 6661 6662 6625
+ 4177 621366.400 3365295.900 17.33982 3 8 4870 4907 4908 4872 6625 6662 6663 6627
+ 4178 621616.400 3365295.900 17.08048 3 8 4872 4908 4909 4873 6627 6663 6664 6628
+ 4179 621866.400 3365295.900 16.76130 3 8 4873 4909 4910 4874 6628 6664 6665 6629
+ 4180 622116.400 3365295.900 16.39950 3 8 4874 4910 4911 4875 6629 6665 6666 6630
+ 4181 622366.400 3365295.900 16.03553 3 8 4875 4911 4912 4876 6630 6666 6667 6631
+ 4182 622616.400 3365295.900 15.72421 3 8 4876 4912 4913 4877 6631 6667 6668 6632
+ 4183 622866.400 3365295.900 15.50304 3 8 4877 4913 4914 4878 6632 6668 6669 6633
+ 4184 623116.400 3365295.900 15.36194 3 8 4878 4914 4915 4879 6633 6669 6670 6634
+ 4185 623366.400 3365295.900 15.27479 3 8 4879 4915 4916 4880 6634 6670 6671 6635
+ 4186 623553.900 3365358.400 15.25733 3 8 4880 4892 4893 4881 6635 6647 6648 6636
+ 4187 623647.650 3365389.650 15.24912 3 8 4881 4889 4890 4882 6636 6644 6645 6637
+ 4188 623710.150 3365389.650 15.24286 3 8 4882 4890 4891 4883 6637 6645 6646 6638
+ 4189 623647.650 3365327.150 15.23249 3 8 4889 4893 4894 4890 6644 6648 6649 6645
+ 4190 623710.150 3365327.150 15.22838 3 8 4890 4894 4895 4891 6645 6649 6650 6646
+ 4191 623553.900 3365233.400 15.22150 3 8 4892 4916 4917 4893 6647 6671 6672 6648
+ 4192 623647.650 3365264.650 15.21728 3 8 4893 4898 4899 4894 6648 6653 6654 6649
+ 4193 623710.150 3365264.650 15.21496 3 8 4894 4899 4900 4895 6649 6654 6655 6650
+ 4194 623647.650 3365202.150 15.20349 3 8 4898 4917 4918 4899 6653 6672 6673 6654
+ 4195 623710.150 3365202.150 15.20259 3 8 4899 4918 4919 4900 6654 6673 6674 6655
+ 4196 623803.900 3365358.400 15.22785 3 8 4883 4895 4896 4884 6638 6650 6651 6639
+ 4197 623928.900 3365358.400 15.23320 3 8 4884 4896 4897 4885 6639 6651 6652 6640
+ 4198 623803.900 3365233.400 15.20637 3 8 4895 4919 4920 4896 6650 6674 6675 6651
+ 4199 623928.900 3365233.400 15.21551 3 8 4896 4920 4921 4897 6651 6675 6676 6652
+ 4200 624116.400 3365295.900 15.25424 3 8 4885 4921 4922 4886 6640 6676 6677 6641
+ 4201 624366.400 3365295.900 15.31772 3 8 4886 4922 4923 4887 6641 6677 6678 6642
+ 4202 624616.400 3365295.900 15.39292 3 8 4887 4923 4924 4888 6642 6678 6679 6643
+ 4203 619866.400 3365045.900 18.00208 3 8 4901 4937 4938 4902 6656 6692 6693 6657
+ 4204 620116.400 3365045.900 17.92081 3 8 4902 4938 4939 4903 6657 6693 6694 6658
+ 4205 620366.400 3365045.900 17.82536 3 8 4903 4939 4940 4904 6658 6694 6695 6659
+ 4206 620616.400 3365045.900 17.71184 3 8 4904 4940 4941 4905 6659 6695 6696 6660
+ 4207 620866.400 3365045.900 17.57469 3 8 4905 4941 4942 4906 6660 6696 6697 6661
+ 4208 621116.400 3365045.900 17.40638 3 8 4906 4942 4943 4907 6661 6697 6698 6662
+ 4209 621366.400 3365045.900 17.19751 3 8 4907 4943 4944 4908 6662 6698 6699 6663
+ 4210 621616.400 3365045.900 16.93728 3 8 4908 4944 4945 4909 6663 6699 6700 6664
+ 4211 621866.400 3365045.900 16.61562 3 8 4909 4945 4946 4910 6664 6700 6701 6665
+ 4212 622116.400 3365045.900 16.23720 3 8 4910 4946 4947 4911 6665 6701 6702 6666
+ 4213 622366.400 3365045.900 15.84017 3 8 4911 4947 4948 4912 6666 6702 6703 6667
+ 4214 622616.400 3365045.900 15.50618 3 8 4912 4948 4949 4913 6667 6703 6704 6668
+ 4215 622866.400 3365045.900 15.32401 3 8 4913 4949 4951 4914 6668 6704 6706 6669
+ 4216 623116.400 3365045.900 15.23343 3 8 4914 4951 4952 4915 6669 6706 6707 6670
+ 4217 623366.400 3365045.900 15.18543 3 8 4915 4952 4953 4916 6670 6707 6708 6671
+ 4218 623553.900 3365108.400 15.18857 3 8 4916 4928 4929 4917 6671 6683 6684 6672
+ 4219 623647.650 3365139.650 15.18970 3 8 4917 4925 4926 4918 6672 6680 6681 6673
+ 4220 623710.150 3365139.650 15.19023 3 8 4918 4926 4927 4919 6673 6681 6682 6674
+ 4221 623647.650 3365077.150 15.17590 3 8 4925 4929 4930 4926 6680 6684 6685 6681
+ 4222 623710.150 3365077.150 15.17786 3 8 4926 4930 4931 4927 6681 6685 6686 6682
+ 4223 623553.900 3364983.400 15.15954 3 8 4928 4953 4954 4929 6683 6708 6709 6684
+ 4224 623647.650 3365014.650 15.16376 3 8 4929 4934 4935 4930 6684 6689 6690 6685
+ 4225 623710.150 3365014.650 15.16697 3 8 4930 4935 4936 4931 6685 6690 6691 6686
+ 4226 623647.650 3364952.150 15.15327 3 8 4934 4954 4955 4935 6689 6709 6710 6690
+ 4227 623710.150 3364952.150 15.15755 3 8 4935 4955 4956 4936 6690 6710 6711 6691
+ 4228 623803.900 3365108.400 15.18591 3 8 4919 4931 4932 4920 6674 6686 6687 6675
+ 4229 623928.900 3365108.400 15.19906 3 8 4920 4932 4933 4921 6675 6687 6688 6676
+ 4230 623803.900 3364983.400 15.16787 3 8 4931 4956 4957 4932 6686 6711 6712 6687
+ 4231 623928.900 3364983.400 15.18481 3 8 4932 4957 4958 4933 6687 6712 6713 6688
+ 4232 624116.400 3365045.900 15.22831 3 8 4921 4958 4959 4922 6676 6713 6714 6677
+ 4233 624366.400 3365045.900 15.29311 3 8 4922 4959 4960 4923 6677 6714 6715 6678
+ 4234 624616.400 3365045.900 15.37022 3 8 4923 4960 4961 4924 6678 6715 6716 6679
+ 4235 619866.400 3364795.900 17.90991 3 8 4937 4977 4978 4938 6692 6732 6733 6693
+ 4236 620116.400 3364795.900 17.82439 3 8 4938 4978 4979 4939 6693 6733 6734 6694
+ 4237 620366.400 3364795.900 17.72393 3 8 4939 4979 4980 4940 6694 6734 6735 6695
+ 4238 620616.400 3364795.900 17.60490 3 8 4940 4980 4981 4941 6695 6735 6736 6696
+ 4239 620866.400 3364795.900 17.46262 3 8 4941 4981 4982 4942 6696 6736 6737 6697
+ 4240 621116.400 3364795.900 17.29153 3 8 4942 4982 4983 4943 6697 6737 6738 6698
+ 4241 621366.400 3364795.900 17.08556 3 8 4943 4983 4984 4944 6698 6738 6739 6699
+ 4242 621616.400 3364795.900 16.83701 3 8 4944 4984 4985 4945 6699 6739 6740 6700
+ 4243 621866.400 3364795.900 16.52392 3 8 4945 4985 4986 4946 6700 6740 6741 6701
+ 4244 622116.400 3364795.900 16.12138 3 8 4946 4986 4987 4947 6701 6741 6742 6702
+ 4245 622366.400 3364795.900 15.68075 3 8 4947 4987 4988 4948 6702 6742 6743 6703
+ 4246 622616.400 3364795.900 15.25000 3 8 4948 4988 4990 4949 6703 6743 6745 6704
+ 4247 622803.900 3364858.400 15.23720 3 8 4949 4965 4966 4950 6704 6720 6721 6705
+ 4248 622928.900 3364858.400 15.19804 3 8 4950 4966 4967 4951 6705 6721 6722 6706
+ 4249 622803.900 3364733.400 15.18506 3 8 4965 4990 4992 4966 6720 6745 6747 6721
+ 4250 622928.900 3364733.400 15.15098 3 8 4966 4992 4994 4967 6721 6747 6749 6722
+ 4251 623116.400 3364795.900 15.13205 3 8 4951 4994 4996 4952 6706 6749 6751 6707
+ 4252 623366.400 3364795.900 15.11658 3 8 4952 4996 4997 4953 6707 6751 6752 6708
+ 4253 623553.900 3364858.400 15.13440 3 8 4953 4968 4969 4954 6708 6723 6724 6709
+ 4254 623647.650 3364889.650 15.14279 3 8 4954 4962 4963 4955 6709 6717 6718 6710
+ 4255 623710.150 3364889.650 15.14814 3 8 4955 4963 4964 4956 6710 6718 6719 6711
+ 4256 623647.650 3364827.150 15.13230 3 8 4962 4969 4970 4963 6717 6724 6725 6718
+ 4257 623710.150 3364827.150 15.13872 3 8 4963 4970 4971 4964 6718 6725 6726 6719
+ 4258 623553.900 3364733.400 15.11496 3 8 4968 4997 4998 4969 6723 6752 6753 6724
+ 4259 623647.650 3364764.650 15.12423 3 8 4969 4974 4975 4970 6724 6729 6730 6725
+ 4260 623710.150 3364764.650 15.13153 3 8 4970 4975 4976 4971 6725 6730 6731 6726
+ 4261 623647.650 3364702.150 15.11857 3 8 4974 4998 4999 4975 6729 6753 6754 6730
+ 4262 623710.150 3364702.150 15.12656 3 8 4975 4999 5000 4976 6730 6754 6755 6731
+ 4263 623803.900 3364858.400 15.15225 3 8 4956 4971 4972 4957 6711 6726 6727 6712
+ 4264 623928.900 3364858.400 15.17276 3 8 4957 4972 4973 4958 6712 6727 6728 6713
+ 4265 623803.900 3364733.400 15.14051 3 8 4971 5000 5001 4972 6726 6755 6756 6727
+ 4266 623928.900 3364733.400 15.16408 3 8 4972 5001 5002 4973 6727 6756 6757 6728
+ 4267 624116.400 3364795.900 15.21273 3 8 4958 5002 5003 4959 6713 6757 6758 6714
+ 4268 624366.400 3364795.900 15.28096 3 8 4959 5003 5004 4960 6714 6758 6759 6715
+ 4269 624616.400 3364795.900 15.35982 3 8 4960 5004 5005 4961 6715 6759 6760 6716
+ 4270 619866.400 3364545.900 17.82261 3 8 4977 5053 5054 4978 6732 6808 6809 6733
+ 4271 620116.400 3364545.900 17.73417 3 8 4978 5054 5055 4979 6733 6809 6810 6734
+ 4272 620366.400 3364545.900 17.63078 3 8 4979 5055 5056 4980 6734 6810 6811 6735
+ 4273 620616.400 3364545.900 17.50920 3 8 4980 5056 5057 4981 6735 6811 6812 6736
+ 4274 620866.400 3364545.900 17.36550 3 8 4981 5057 5058 4982 6736 6812 6813 6737
+ 4275 621116.400 3364545.900 17.19535 3 8 4982 5058 5059 4983 6737 6813 6814 6738
+ 4276 621366.400 3364545.900 16.99485 3 8 4983 5059 5060 4984 6738 6814 6815 6739
+ 4277 621616.400 3364545.900 16.76215 3 8 4984 5060 5061 4985 6739 6815 6816 6740
+ 4278 621866.400 3364545.900 16.50000 3 8 4985 5061 5062 4986 6740 6816 6817 6741
+ 4279 622116.400 3364545.900 16.05542 3 8 4986 5062 5063 4987 6741 6817 6818 6742
+ 4280 622366.400 3364545.900 15.61902 3 8 4987 5063 5064 4988 6742 6818 6819 6743
+ 4281 622553.900 3364608.400 15.35896 3 8 4988 5021 5022 4989 6743 6776 6777 6744
+ 4282 622678.900 3364608.400 15.23443 3 8 4989 5022 5023 4990 6744 6777 6778 6745
+ 4283 622553.900 3364483.400 15.35390 3 8 5021 5064 5065 5022 6776 6819 6820 6777
+ 4284 622678.900 3364483.400 15.23133 3 8 5022 5065 5066 5023 6777 6820 6821 6778
+ 4285 622772.650 3364639.650 15.18823 3 8 4990 5006 5007 4991 6745 6761 6762 6746
+ 4286 622835.150 3364639.650 15.15781 3 8 4991 5007 5009 4992 6746 6762 6764 6747
+ 4287 622772.650 3364577.150 15.18250 3 8 5006 5023 5024 5007 6761 6778 6779 6762
+ 4288 622819.525 3364592.775 15.15854 3 8 5007 5016 5017 5008 6762 6771 6772 6763
+ 4289 622850.775 3364592.775 15.14161 3 8 5008 5017 5018 5009 6763 6772 6773 6764
+ 4290 622819.525 3364561.525 15.15396 3 8 5016 5024 5025 5017 6771 6779 6780 6772
+ 4291 622850.775 3364561.525 15.13588 3 8 5017 5025 5026 5018 6772 6780 6781 6773
+ 4292 622897.650 3364639.650 15.13733 3 8 4992 5009 5011 4993 6747 6764 6766 6748
+ 4293 622960.150 3364639.650 15.12678 3 8 4993 5011 5012 4994 6748 6766 6767 6749
+ 4294 622882.025 3364592.775 15.13051 3 8 5009 5018 5019 5010 6764 6773 6774 6765
+ 4295 622913.275 3364592.775 15.12523 3 8 5010 5019 5020 5011 6765 6774 6775 6766
+ 4296 622882.025 3364561.525 15.12421 3 8 5018 5026 5027 5019 6773 6781 6782 6774
+ 4297 622913.275 3364561.525 15.11893 3 8 5019 5027 5028 5020 6774 6782 6783 6775
+ 4298 622960.150 3364577.150 15.11416 3 8 5011 5028 5029 5012 6766 6783 6784 6767
+ 4299 622772.650 3364514.650 15.17863 3 8 5023 5043 5044 5024 6778 6798 6799 6779
+ 4300 622819.525 3364530.275 15.15144 3 8 5024 5038 5039 5025 6779 6793 6794 6780
+ 4301 622850.775 3364530.275 15.13298 3 8 5025 5039 5040 5026 6780 6794 6795 6781
+ 4302 622819.525 3364499.025 15.15100 3 8 5038 5044 5045 5039 6793 6799 6800 6794
+ 4303 622850.775 3364499.025 15.13291 3 8 5039 5045 5046 5040 6794 6800 6801 6795
+ 4304 622772.650 3364452.150 15.17662 3 8 5043 5066 5067 5044 6798 6821 6822 6799
+ 4305 622835.150 3364452.150 15.14156 3 8 5044 5067 5068 5046 6799 6822 6823 6801
+ 4306 622882.025 3364530.275 15.12108 3 8 5026 5040 5041 5027 6781 6795 6796 6782
+ 4307 622913.275 3364530.275 15.11574 3 8 5027 5041 5042 5028 6782 6796 6797 6783
+ 4308 622882.025 3364499.025 15.12114 3 8 5040 5046 5047 5041 6795 6801 6802 6796
+ 4309 622913.275 3364499.025 15.11568 3 8 5041 5047 5048 5042 6796 6802 6803 6797
+ 4310 622960.150 3364514.650 15.10762 3 8 5028 5048 5049 5029 6783 6803 6804 6784
+ 4311 622897.650 3364452.150 15.11840 3 8 5046 5068 5069 5048 6801 6823 6824 6803
+ 4312 622960.150 3364452.150 15.10715 3 8 5048 5069 5070 5049 6803 6824 6825 6804
+ 4313 623053.900 3364608.400 15.10464 3 8 4994 5029 5030 4995 6749 6784 6785 6750
+ 4314 623178.900 3364608.400 15.09262 3 8 4995 5030 5031 4996 6750 6785 6786 6751
+ 4315 623053.900 3364483.400 15.09085 3 8 5029 5070 5071 5030 6784 6825 6826 6785
+ 4316 623178.900 3364483.400 15.07916 3 8 5030 5071 5072 5031 6785 6826 6827 6786
+ 4317 623366.400 3364545.900 15.07876 3 8 4996 5072 5073 4997 6751 6827 6828 6752
+ 4318 623553.900 3364608.400 15.10123 3 8 4997 5032 5033 4998 6752 6787 6788 6753
+ 4319 623647.650 3364639.650 15.11291 3 8 4998 5013 5014 4999 6753 6768 6769 6754
+ 4320 623710.150 3364639.650 15.12160 3 8 4999 5014 5015 5000 6754 6769 6770 6755
+ 4321 623647.650 3364577.150 15.10726 3 8 5013 5033 5034 5014 6768 6788 6789 6769
+ 4322 623710.150 3364577.150 15.11663 3 8 5014 5034 5035 5015 6769 6789 6790 6770
+ 4323 623553.900 3364483.400 15.09369 3 8 5032 5073 5074 5033 6787 6828 6829 6788
+ 4324 623647.650 3364514.650 15.10433 3 8 5033 5050 5051 5034 6788 6805 6806 6789
+ 4325 623710.150 3364514.650 15.11422 3 8 5034 5051 5052 5035 6789 6806 6807 6790
+ 4326 623647.650 3364452.150 15.10414 3 8 5050 5074 5075 5051 6805 6829 6830 6806
+ 4327 623710.150 3364452.150 15.11437 3 8 5051 5075 5076 5052 6806 6830 6831 6807
+ 4328 623803.900 3364608.400 15.13265 3 8 5000 5035 5036 5001 6755 6790 6791 6756
+ 4329 623928.900 3364608.400 15.15877 3 8 5001 5036 5037 5002 6756 6791 6792 6757
+ 4330 623803.900 3364483.400 15.12938 3 8 5035 5076 5077 5036 6790 6831 6832 6791
+ 4331 623928.900 3364483.400 15.15629 3 8 5036 5077 5078 5037 6791 6832 6833 6792
+ 4332 624116.400 3364545.900 15.20913 3 8 5002 5078 5079 5003 6757 6833 6834 6758
+ 4333 624366.400 3364545.900 15.28088 3 8 5003 5079 5080 5004 6758 6834 6835 6759
+ 4334 624616.400 3364545.900 15.36129 3 8 5004 5080 5081 5005 6759 6835 6836 6760
+ 4335 619866.400 3364295.900 17.74126 3 8 5053 5097 5098 5054 6808 6852 6853 6809
+ 4336 620116.400 3364295.900 17.65134 3 8 5054 5098 5099 5055 6809 6853 6854 6810
+ 4337 620366.400 3364295.900 17.54700 3 8 5055 5099 5100 5056 6810 6854 6855 6811
+ 4338 620616.400 3364295.900 17.42540 3 8 5056 5100 5101 5057 6811 6855 6856 6812
+ 4339 620866.400 3364295.900 17.28297 3 8 5057 5101 5102 5058 6812 6856 6857 6813
+ 4340 621116.400 3364295.900 17.11536 3 8 5058 5102 5103 5059 6813 6857 6858 6814
+ 4341 621366.400 3364295.900 16.91713 3 8 5059 5103 5104 5060 6814 6858 6859 6815
+ 4342 621616.400 3364295.900 16.68008 3 8 5060 5104 5105 5061 6815 6859 6860 6816
+ 4343 621866.400 3364295.900 16.38167 3 8 5061 5105 5106 5062 6816 6860 6861 6817
+ 4344 622116.400 3364295.900 16.00031 3 8 5062 5106 5107 5063 6817 6861 6862 6818
+ 4345 622366.400 3364295.900 15.59978 3 8 5063 5107 5108 5064 6818 6862 6863 6819
+ 4346 622616.400 3364295.900 15.25000 3 8 5064 5108 5109 5066 6819 6863 6864 6821
+ 4347 622803.900 3364358.400 15.15720 3 8 5066 5085 5086 5068 6821 6840 6841 6823
+ 4348 622928.900 3364358.400 15.11242 3 8 5068 5086 5087 5070 6823 6841 6842 6825
+ 4349 622803.900 3364233.400 15.16648 3 8 5085 5109 5110 5086 6840 6864 6865 6841
+ 4350 622928.900 3364233.400 15.11973 3 8 5086 5110 5111 5087 6841 6865 6866 6842
+ 4351 623116.400 3364295.900 15.07497 3 8 5070 5111 5112 5072 6825 6866 6867 6827
+ 4352 623366.400 3364295.900 15.07236 3 8 5072 5112 5113 5073 6827 6867 6868 6828
+ 4353 623553.900 3364358.400 15.09234 3 8 5073 5088 5089 5074 6828 6843 6844 6829
+ 4354 623647.650 3364389.650 15.10394 3 8 5074 5082 5083 5075 6829 6837 6838 6830
+ 4355 623710.150 3364389.650 15.11452 3 8 5075 5083 5084 5076 6830 6838 6839 6831
+ 4356 623647.650 3364327.150 15.10375 3 8 5082 5089 5090 5083 6837 6844 6845 6838
+ 4357 623710.150 3364327.150 15.11466 3 8 5083 5090 5091 5084 6838 6845 6846 6839
+ 4358 623553.900 3364233.400 15.09651 3 8 5088 5113 5114 5089 6843 6868 6869 6844
+ 4359 623647.650 3364264.650 15.10613 3 8 5089 5094 5095 5090 6844 6849 6850 6845
+ 4360 623710.150 3364264.650 15.11728 3 8 5090 5095 5096 5091 6845 6850 6851 6846
+ 4361 623647.650 3364202.150 15.11111 3 8 5094 5114 5115 5095 6849 6869 6870 6850
+ 4362 623710.150 3364202.150 15.12238 3 8 5095 5115 5116 5096 6850 6870 6871 6851
+ 4363 623803.900 3364358.400 15.13071 3 8 5076 5091 5092 5077 6831 6846 6847 6832
+ 4364 623928.900 3364358.400 15.15666 3 8 5077 5092 5093 5078 6832 6847 6848 6833
+ 4365 623803.900 3364233.400 15.13665 3 8 5091 5116 5117 5092 6846 6871 6872 6847
+ 4366 623928.900 3364233.400 15.16232 3 8 5092 5117 5118 5093 6847 6872 6873 6848
+ 4367 624116.400 3364295.900 15.19999 3 8 5078 5118 5119 5079 6833 6873 6874 6834
+ 4368 624366.400 3364295.900 15.29351 3 8 5079 5119 5120 5080 6834 6874 6875 6835
+ 4369 624616.400 3364295.900 15.37465 3 8 5080 5120 5121 5081 6835 6875 6876 6836
+ 4370 619866.400 3364045.900 17.66638 3 8 5097 5134 5135 5098 6852 6889 6890 6853
+ 4371 620116.400 3364045.900 17.57626 3 8 5098 5135 5136 5099 6853 6890 6891 6854
+ 4372 620366.400 3364045.900 17.47271 3 8 5099 5136 5137 5100 6854 6891 6892 6855
+ 4373 620616.400 3364045.900 17.35329 3 8 5100 5137 5138 5101 6855 6892 6893 6856
+ 4374 620866.400 3364045.900 17.21479 3 8 5101 5138 5139 5102 6856 6893 6894 6857
+ 4375 621116.400 3364045.900 17.05257 3 8 5102 5139 5140 5103 6857 6894 6895 6858
+ 4376 621366.400 3364045.900 16.85919 3 8 5103 5140 5141 5104 6858 6895 6896 6859
+ 4377 621616.400 3364045.900 16.62221 3 8 5104 5141 5142 5105 6859 6896 6897 6860
+ 4378 621866.400 3364045.900 16.32605 3 8 5105 5142 5143 5106 6860 6897 6898 6861
+ 4379 622116.400 3364045.900 15.97373 3 8 5106 5143 5144 5107 6861 6898 6899 6862
+ 4380 622366.400 3364045.900 15.61205 3 8 5107 5144 5145 5108 6862 6899 6900 6863
+ 4381 622616.400 3364045.900 15.31907 3 8 5108 5145 5146 5109 6863 6900 6901 6864
+ 4382 622866.400 3364045.900 15.15778 3 8 5109 5146 5147 5111 6864 6901 6902 6866
+ 4383 623116.400 3364045.900 15.09609 3 8 5111 5147 5148 5112 6866 6902 6903 6867
+ 4384 623366.400 3364045.900 15.09082 3 8 5112 5148 5149 5113 6867 6903 6904 6868
+ 4385 623553.900 3364108.400 15.10618 3 8 5113 5125 5126 5114 6868 6880 6881 6869
+ 4386 623647.650 3364139.650 15.11608 3 8 5114 5122 5123 5115 6869 6877 6878 6870
+ 4387 623710.150 3364139.650 15.12747 3 8 5115 5123 5124 5116 6870 6878 6879 6871
+ 4388 623647.650 3364077.150 15.12105 3 8 5122 5126 5127 5123 6877 6881 6882 6878
+ 4389 623710.150 3364077.150 15.13257 3 8 5123 5127 5128 5124 6878 6882 6883 6879
+ 4390 623553.900 3363983.400 15.12054 3 8 5125 5149 5150 5126 6880 6904 6905 6881
+ 4391 623647.650 3364014.650 15.12835 3 8 5126 5131 5132 5127 6881 6886 6887 6882
+ 4392 623710.150 3364014.650 15.13993 3 8 5127 5132 5133 5128 6882 6887 6888 6883
+ 4393 623647.650 3363952.150 15.13797 3 8 5131 5150 5151 5132 6886 6905 6906 6887
+ 4394 623710.150 3363952.150 15.14956 3 8 5132 5151 5152 5133 6887 6906 6907 6888
+ 4395 623803.900 3364108.400 15.14720 3 8 5116 5128 5129 5117 6871 6883 6884 6872
+ 4396 623928.900 3364108.400 15.17328 3 8 5117 5129 5130 5118 6872 6884 6885 6873
+ 4397 623803.900 3363983.400 15.16212 3 8 5128 5152 5153 5129 6883 6907 6908 6884
+ 4398 623928.900 3363983.400 15.18836 3 8 5129 5153 5154 5130 6884 6908 6909 6885
+ 4399 624116.400 3364045.900 15.22289 3 8 5118 5154 5155 5119 6873 6909 6910 6874
+ 4400 624366.400 3364045.900 15.31938 3 8 5119 5155 5156 5120 6874 6910 6911 6875
+ 4401 624616.400 3364045.900 15.40003 3 8 5120 5156 5157 5121 6875 6911 6912 6876
+ 4402 619866.400 3363795.900 17.59797 3 8 5134 5170 5171 5135 6889 6925 6926 6890
+ 4403 620116.400 3363795.900 17.50870 3 8 5135 5171 5172 5136 6890 6926 6927 6891
+ 4404 620366.400 3363795.900 17.40726 3 8 5136 5172 5173 5137 6891 6927 6928 6892
+ 4405 620616.400 3363795.900 17.29180 3 8 5137 5173 5174 5138 6892 6928 6929 6893
+ 4406 620866.400 3363795.900 17.15985 3 8 5138 5174 5175 5139 6893 6929 6930 6894
+ 4407 621116.400 3363795.900 17.00758 3 8 5139 5175 5176 5140 6894 6930 6931 6895
+ 4408 621366.400 3363795.900 16.82808 3 8 5140 5176 5177 5141 6895 6931 6932 6896
+ 4409 621616.400 3363795.900 16.60781 3 8 5141 5177 5178 5142 6896 6932 6933 6897
+ 4410 621866.400 3363795.900 16.32635 3 8 5142 5178 5179 5143 6897 6933 6934 6898
+ 4411 622116.400 3363795.900 15.98244 3 8 5143 5179 5180 5144 6898 6934 6935 6899
+ 4412 622366.400 3363795.900 15.62818 3 8 5144 5180 5181 5145 6899 6935 6936 6900
+ 4413 622616.400 3363795.900 15.34564 3 8 5145 5181 5182 5146 6900 6936 6937 6901
+ 4414 622866.400 3363795.900 15.18692 3 8 5146 5182 5183 5147 6901 6937 6938 6902
+ 4415 623116.400 3363795.900 15.12930 3 8 5147 5183 5184 5148 6902 6938 6939 6903
+ 4416 623366.400 3363795.900 15.12775 3 8 5148 5184 5185 5149 6903 6939 6940 6904
+ 4417 623553.900 3363858.400 15.13958 3 8 5149 5161 5162 5150 6904 6916 6917 6905
+ 4418 623647.650 3363889.650 15.14759 3 8 5150 5158 5159 5151 6905 6913 6914 6906
+ 4419 623710.150 3363889.650 15.15919 3 8 5151 5159 5160 5152 6906 6914 6915 6907
+ 4420 623647.650 3363827.150 15.15722 3 8 5158 5162 5163 5159 6913 6917 6918 6914
+ 4421 623710.150 3363827.150 15.16882 3 8 5159 5163 5164 5160 6914 6918 6919 6915
+ 4422 623553.900 3363733.400 15.16314 3 8 5161 5185 5186 5162 6916 6940 6941 6917
+ 4423 623647.650 3363764.650 15.16907 3 8 5162 5167 5168 5163 6917 6922 6923 6918
+ 4424 623710.150 3363764.650 15.18062 3 8 5163 5168 5169 5164 6918 6923 6924 6919
+ 4425 623647.650 3363702.150 15.18314 3 8 5167 5186 5187 5168 6922 6941 6942 6923
+ 4426 623710.150 3363702.150 15.19460 3 8 5168 5187 5188 5169 6923 6942 6943 6924
+ 4427 623803.900 3363858.400 15.18140 3 8 5152 5164 5165 5153 6907 6919 6920 6908
+ 4428 623928.900 3363858.400 15.20755 3 8 5153 5165 5166 5154 6908 6920 6921 6909
+ 4429 623803.900 3363733.400 15.20486 3 8 5164 5188 5189 5165 6919 6943 6944 6920
+ 4430 623928.900 3363733.400 15.23069 3 8 5165 5189 5190 5166 6920 6944 6945 6921
+ 4431 624116.400 3363795.900 15.26065 3 8 5154 5190 5191 5155 6909 6945 6946 6910
+ 4432 624366.400 3363795.900 15.35860 3 8 5155 5191 5192 5156 6910 6946 6947 6911
+ 4433 624616.400 3363795.900 15.43731 3 8 5156 5192 5193 5157 6911 6947 6948 6912
+ 4434 619866.400 3363545.900 17.53575 3 8 5170 5206 5207 5171 6925 6961 6962 6926
+ 4435 620116.400 3363545.900 17.44798 3 8 5171 5207 5208 5172 6926 6962 6963 6927
+ 4436 620366.400 3363545.900 17.34939 3 8 5172 5208 5209 5173 6927 6963 6964 6928
+ 4437 620616.400 3363545.900 17.23878 3 8 5173 5209 5210 5174 6928 6964 6965 6929
+ 4438 620866.400 3363545.900 17.11476 3 8 5174 5210 5211 5175 6929 6965 6966 6930
+ 4439 621116.400 3363545.900 16.97544 3 8 5175 5211 5212 5176 6930 6966 6967 6931
+ 4440 621366.400 3363545.900 16.81757 3 8 5176 5212 5213 5177 6931 6967 6968 6932
+ 4441 621616.400 3363545.900 16.63223 3 8 5177 5213 5214 5178 6932 6968 6969 6933
+ 4442 621866.400 3363545.900 16.38219 3 8 5178 5214 5215 5179 6933 6969 6970 6934
+ 4443 622116.400 3363545.900 16.02143 3 8 5179 5215 5216 5180 6934 6970 6971 6935
+ 4444 622366.400 3363545.900 15.63203 3 8 5180 5216 5217 5181 6935 6971 6972 6936
+ 4445 622616.400 3363545.900 15.32570 3 8 5181 5217 5218 5182 6936 6972 6973 6937
+ 4446 622866.400 3363545.900 15.19891 3 8 5182 5218 5219 5183 6937 6973 6974 6938
+ 4447 623116.400 3363545.900 15.17329 3 8 5183 5219 5220 5184 6938 6974 6975 6939
+ 4448 623366.400 3363545.900 15.18281 3 8 5184 5220 5221 5185 6939 6975 6976 6940
+ 4449 623553.900 3363608.400 15.19122 3 8 5185 5197 5198 5186 6940 6952 6953 6941
+ 4450 623647.650 3363639.650 15.19722 3 8 5186 5194 5195 5187 6941 6949 6950 6942
+ 4451 623710.150 3363639.650 15.20857 3 8 5187 5195 5196 5188 6942 6950 6951 6943
+ 4452 623647.650 3363577.150 15.21130 3 8 5194 5198 5199 5195 6949 6953 6954 6950
+ 4453 623710.150 3363577.150 15.22255 3 8 5195 5199 5200 5196 6950 6954 6955 6951
+ 4454 623553.900 3363483.400 15.22409 3 8 5197 5221 5222 5198 6952 6976 6977 6953
+ 4455 623647.650 3363514.650 15.22761 3 8 5198 5203 5204 5199 6953 6958 6959 6954
+ 4456 623710.150 3363514.650 15.23867 3 8 5199 5204 5205 5200 6954 6959 6960 6955
+ 4457 623647.650 3363452.150 15.24614 3 8 5203 5222 5223 5204 6958 6977 6978 6959
+ 4458 623710.150 3363452.150 15.25693 3 8 5204 5223 5224 5205 6959 6978 6979 6960
+ 4459 623803.900 3363608.400 15.23251 3 8 5188 5200 5201 5189 6943 6955 6956 6944
+ 4460 623928.900 3363608.400 15.25778 3 8 5189 5201 5202 5190 6944 6956 6957 6945
+ 4461 623803.900 3363483.400 15.26419 3 8 5200 5224 5225 5201 6955 6979 6980 6956
+ 4462 623928.900 3363483.400 15.28860 3 8 5201 5225 5226 5202 6956 6980 6981 6957
+ 4463 624116.400 3363545.900 15.31272 3 8 5190 5226 5227 5191 6945 6981 6982 6946
+ 4464 624366.400 3363545.900 15.41084 3 8 5191 5227 5228 5192 6946 6982 6983 6947
+ 4465 624616.400 3363545.900 15.48608 3 8 5192 5228 5229 5193 6947 6983 6984 6948
+ 4466 619866.400 3363295.900 17.47929 3 8 5206 5242 5243 5207 6961 6997 6998 6962
+ 4467 620116.400 3363295.900 17.39329 3 8 5207 5243 5244 5208 6962 6998 6999 6963
+ 4468 620366.400 3363295.900 17.29764 3 8 5208 5244 5245 5209 6963 6999 7000 6964
+ 4469 620616.400 3363295.900 17.19164 3 8 5209 5245 5246 5210 6964 7000 7001 6965
+ 4470 620866.400 3363295.900 17.07465 3 8 5210 5246 5247 5211 6965 7001 7002 6966
+ 4471 621116.400 3363295.900 16.94627 3 8 5211 5247 5248 5212 6966 7002 7003 6967
+ 4472 621366.400 3363295.900 16.80658 3 8 5212 5248 5249 5213 6967 7003 7004 6968
+ 4473 621616.400 3363295.900 16.65677 3 8 5213 5249 5250 5214 6968 7004 7005 6969
+ 4474 621866.400 3363295.900 16.50000 3 8 5214 5250 5251 5215 6969 7005 7006 6970
+ 4475 622116.400 3363295.900 16.07316 3 8 5215 5251 5252 5216 6970 7006 7007 6971
+ 4476 622366.400 3363295.900 15.65359 3 8 5216 5252 5253 5217 6971 7007 7008 6972
+ 4477 622616.400 3363295.900 15.25000 3 8 5217 5253 5254 5218 6972 7008 7009 6973
+ 4478 622866.400 3363295.900 15.23824 3 8 5218 5254 5255 5219 6973 7009 7010 6974
+ 4479 623116.400 3363295.900 15.25000 3 8 5219 5255 5256 5220 6974 7010 7011 6975
+ 4480 623366.400 3363295.900 15.26012 3 8 5220 5256 5257 5221 6975 7011 7012 6976
+ 4481 623553.900 3363358.400 15.26176 3 8 5221 5233 5234 5222 6976 6988 6989 6977
+ 4482 623647.650 3363389.650 15.26468 3 8 5222 5230 5231 5223 6977 6985 6986 6978
+ 4483 623710.150 3363389.650 15.27519 3 8 5223 5231 5232 5224 6978 6986 6987 6979
+ 4484 623647.650 3363327.150 15.28321 3 8 5230 5234 5235 5231 6985 6989 6990 6986
+ 4485 623710.150 3363327.150 15.29345 3 8 5231 5235 5236 5232 6986 6990 6991 6987
+ 4486 623553.900 3363233.400 15.28060 3 8 5233 5257 5258 5234 6988 7012 7013 6989
+ 4487 623647.650 3363264.650 15.29247 3 8 5234 5239 5240 5235 6989 6994 6995 6990
+ 4488 623710.150 3363264.650 15.30258 3 8 5235 5240 5241 5236 6990 6995 6996 6991
+ 4489 623647.650 3363202.150 15.29247 3 8 5239 5258 5259 5240 6994 7013 7014 6995
+ 4490 623710.150 3363202.150 15.30258 3 8 5240 5259 5260 5241 6995 7014 7015 6996
+ 4491 623803.900 3363358.400 15.29990 3 8 5224 5236 5237 5225 6979 6991 6992 6980
+ 4492 623928.900 3363358.400 15.32314 3 8 5225 5237 5238 5226 6980 6992 6993 6981
+ 4493 623803.900 3363233.400 15.31775 3 8 5236 5260 5261 5237 6991 7015 7016 6992
+ 4494 623928.900 3363233.400 15.34041 3 8 5237 5261 5262 5238 6992 7016 7017 6993
+ 4495 624116.400 3363295.900 15.37807 3 8 5226 5262 5263 5227 6981 7017 7018 6982
+ 4496 624366.400 3363295.900 15.47527 3 8 5227 5263 5264 5228 6982 7018 7019 6983
+ 4497 624616.400 3363295.900 15.54551 3 8 5228 5264 5265 5229 6983 7019 7020 6984
diff --git a/examples/data/mf6/notebooks/iconvert.txt b/examples/data/mf6/notebooks/iconvert.txt
index 6dc05af7f..d1a9c3366 100644
--- a/examples/data/mf6/notebooks/iconvert.txt
+++ b/examples/data/mf6/notebooks/iconvert.txt
@@ -1 +1,4 @@
-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
\ No newline at end of file
+1 1 1 1 1
+1 1 1 1 1
+1 1 1 1 1
+1 1 1 1 1
\ No newline at end of file
diff --git a/examples/data/mf6/test001a_Tharmonic/flow15.tdis b/examples/data/mf6/test001a_Tharmonic/flow15.tdis
index bccfdc368..b259bf9ce 100644
--- a/examples/data/mf6/test001a_Tharmonic/flow15.tdis
+++ b/examples/data/mf6/test001a_Tharmonic/flow15.tdis
@@ -9,5 +9,5 @@ BEGIN Dimensions
END Dimensions
BEGIN PERIODDATA
- 1.00000000 1 1.00000000 Items: PERLEN NSTP TSMULT
+ 1.00000000,1,1.00000000 Items: PERLEN NSTP TSMULT
END PERIODDATA
diff --git a/examples/data/mf6/test001a_Tharmonic/flow15_constant.chd b/examples/data/mf6/test001a_Tharmonic/flow15_constant.chd
index 68bce24d5..56c4b56aa 100644
--- a/examples/data/mf6/test001a_Tharmonic/flow15_constant.chd
+++ b/examples/data/mf6/test001a_Tharmonic/flow15_constant.chd
@@ -11,6 +11,6 @@ BEGIN Dimensions
END Dimensions
BEGIN Period 1
- 1 1 1 10.0000000
+ 1 1 1 1D1
1 1 10 0.0000000
END Period
diff --git a/flopy/discretization/grid.py b/flopy/discretization/grid.py
index 6d845e8cd..87e24d457 100644
--- a/flopy/discretization/grid.py
+++ b/flopy/discretization/grid.py
@@ -113,26 +113,12 @@ class Grid:
rotation angle of model grid, as it is rotated around the origin point
angrot_radians : float
rotation angle of model grid, in radians
- xgrid : ndarray
- returns numpy meshgrid of x edges in reference frame defined by
- point_type
- ygrid : ndarray
- returns numpy meshgrid of y edges in reference frame defined by
- point_type
- zgrid : ndarray
- returns numpy meshgrid of z edges in reference frame defined by
- point_type
xcenters : ndarray
returns x coordinate of cell centers
ycenters : ndarray
returns y coordinate of cell centers
ycenters : ndarray
returns z coordinate of cell centers
- xyzgrid : [ndarray, ndarray, ndarray]
- returns the location of grid edges of all model cells. if the model
- grid contains spatial reference information, the grid edges are in the
- coordinate system provided by the spatial reference information.
- returns a list of three ndarrays for the x, y, and z coordinates
xyzcellcenters : [ndarray, ndarray, ndarray]
returns the cell centers of all model cells in the model grid. if
the model grid contains spatial reference information, the cell centers
@@ -150,10 +136,6 @@ class Grid:
returns the model grid lines in a list. each line is returned as a
list containing two tuples in the format [(x1,y1), (x2,y2)] where
x1,y1 and x2,y2 are the endpoints of the line.
- xyvertices : (point_type) : ndarray
- 1D array of x and y coordinates of cell vertices for whole grid
- (single layer) in C-style (row-major) order
- (same as np.ravel())
See Also
--------
@@ -821,7 +803,7 @@ def cross_section_nodeskip(self, nlay, xypts):
def cross_section_adjust_indicies(self, k, cbcnt):
"""
- Method to get adjusted indicies by layer and confining bed
+ Method to get adjusted indices by layer and confining bed
for PlotCrossSection plotting
Parameters
@@ -844,8 +826,8 @@ def cross_section_set_contour_arrays(
self, plotarray, xcenters, head, elev, projpts
):
"""
- Method to set countour array centers for rare instances where
- matplotlib contouring is prefered over trimesh plotting
+ Method to set contour array centers for rare instances where
+ matplotlib contouring is preferred over trimesh plotting
Parameters
----------
diff --git a/flopy/discretization/structuredgrid.py b/flopy/discretization/structuredgrid.py
index f55bacfe4..befe50ded 100644
--- a/flopy/discretization/structuredgrid.py
+++ b/flopy/discretization/structuredgrid.py
@@ -836,7 +836,7 @@ def neighbors(self, *args, **kwargs):
row number
j : int
column number
- as_node : bool
+ as_nodes : bool
flag to return neighbors as node numbers
method : str
"rook" for shared edge neighbors (default) "queen" for shared
@@ -991,30 +991,53 @@ def top_botm(self):
def get_cell_vertices(self, *args, **kwargs):
"""
- Method to get a set of cell vertices for a single cell
- used in the Shapefile export utilities and plotting code
- :param node: (int) node number
- :param i: (int) cell row number
- :param j: (int) cell column number
+ Get a set of cell vertices for a single cell.
+
+ Parameters
+ ----------
+ node : int, optional
+ Node index, mutually exclusive with i and j
+ i, j : int, optional
+ Row and column index, mutually exclusive with node
+
Returns
- ------- list of x,y cell vertices
+ -------
+ list
+ list of tuples with x,y coordinates to cell vertices
+
+ Examples
+ --------
+ >>> import flopy
+ >>> import numpy as np
+ >>> delr, delc = np.array([10.0] * 3), np.array([10.0] * 4)
+ >>> sg = flopy.discretization.StructuredGrid(delr=delr, delc=delc)
+ >>> sg.get_cell_vertices(node=0)
+ [(0.0, 40.0), (10.0, 40.0), (10.0, 30.0), (0.0, 30.0)]
+ >>> sg.get_cell_vertices(3, 0)
+ [(0.0, 10.0), (10.0, 10.0), (10.0, 0.0), (0.0, 0.0)]
"""
- nn = None
if kwargs:
- if "node" in kwargs:
- nn = kwargs.pop("node")
- else:
+ if args:
+ raise TypeError(
+ "mixed positional and keyword arguments not supported"
+ )
+ elif "node" in kwargs:
+ _, i, j = self.get_lrc(kwargs.pop("node"))[0]
+ elif "i" in kwargs and "j" in kwargs:
i = kwargs.pop("i")
j = kwargs.pop("j")
-
- if len(args) > 0:
- if len(args) == 1:
- nn = args[0]
- else:
- i, j = args[0:2]
-
- if nn is not None:
- k, i, j = self.get_lrc(nn)[0]
+ if kwargs:
+ unused = ", ".join(kwargs.keys())
+ raise TypeError(f"unused keyword arguments: {unused}")
+ elif len(args) == 0:
+ raise TypeError("expected one or more arguments")
+
+ if len(args) == 1:
+ _, i, j = self.get_lrc(args[0])[0]
+ elif len(args) == 2:
+ i, j = args
+ elif len(args) > 2:
+ raise TypeError("too many arguments")
self._copy_cache = False
cell_verts = [
diff --git a/flopy/discretization/unstructuredgrid.py b/flopy/discretization/unstructuredgrid.py
index 196bde995..24d6b6cf7 100644
--- a/flopy/discretization/unstructuredgrid.py
+++ b/flopy/discretization/unstructuredgrid.py
@@ -360,7 +360,7 @@ def xyzcellcenters(self):
@property
def xyzvertices(self):
"""
- Method to get model grid verticies
+ Method to get model grid vertices
Returns:
list of dimension ncpl by nvertices
@@ -442,7 +442,7 @@ def cross_section_nodeskip(self, nlay, xypts):
def cross_section_adjust_indicies(self, k, cbcnt):
"""
- Method to get adjusted indicies by layer and confining bed
+ Method to get adjusted indices by layer and confining bed
for PlotCrossSection plotting
Parameters
@@ -463,8 +463,8 @@ def cross_section_set_contour_arrays(
self, plotarray, xcenters, head, elev, projpts
):
"""
- Method to set countour array centers for rare instances where
- matplotlib contouring is prefered over trimesh plotting
+ Method to set contour array centers for rare instances where
+ matplotlib contouring is preferred over trimesh plotting
Parameters
----------
@@ -1019,13 +1019,17 @@ def from_gridspec(cls, file_path: Union[str, os.PathLike]):
with open(file_path) as file:
def split_line():
- return file.readline().strip().split()
+ return [
+ head.upper() for head in file.readline().strip().split()
+ ]
header = split_line()
+ while header[0][0] == "#":
+ header = split_line()
if not (len(header) == 1 and header[0] == "UNSTRUCTURED") or (
len(header) == 2 and header == ["UNSTRUCTURED", "GWF"]
):
- raise ValueError(f"Invalid GSF file, no header")
+ raise ValueError("Invalid GSF file, no header")
nnodes = int(split_line()[0])
verts_declared = int(split_line()[0])
diff --git a/flopy/export/longnames.py b/flopy/export/longnames.py
index fe4df3fa7..f52c36ca7 100644
--- a/flopy/export/longnames.py
+++ b/flopy/export/longnames.py
@@ -1,4 +1,4 @@
-""" Human readable long names for netCDF variables. """
+"""Human readable long names for netCDF variables."""
NC_LONG_NAMES = {
"botm": "Model layer bottom elevations",
diff --git a/flopy/export/netcdf.py b/flopy/export/netcdf.py
index 2caba116d..6ad1daffb 100644
--- a/flopy/export/netcdf.py
+++ b/flopy/export/netcdf.py
@@ -56,7 +56,7 @@ class Logger:
def __init__(self, filename, echo=False):
self.items = {}
self.echo = bool(echo)
- if filename == True:
+ if filename is True:
self.echo = True
self.filename = None
elif filename:
@@ -387,10 +387,9 @@ def append(self, other, suffix="_1"):
else:
for vname, array in other.items():
vname_norm = self.normalize_name(vname)
- assert (
- vname_norm in self.nc.variables.keys()
- ), f"dict var not in self.vars:{vname}-->" + ",".join(
- self.nc.variables.keys()
+ assert vname_norm in self.nc.variables.keys(), (
+ f"dict var not in self.vars:{vname}-->"
+ + ",".join(self.nc.variables.keys())
)
new_vname = vname_norm + suffix
@@ -681,7 +680,7 @@ def initialize_geometry(self):
"The FloPy NetCDF module requires pyproj >= 2.2.0."
)
- print(f"initialize_geometry::")
+ print("initialize_geometry::")
self.log(f"model crs: {self.model_crs}")
print(f"model crs: {self.model_crs}")
diff --git a/flopy/export/unitsformat.py b/flopy/export/unitsformat.py
index ba208d5c0..e97560b99 100644
--- a/flopy/export/unitsformat.py
+++ b/flopy/export/unitsformat.py
@@ -1,4 +1,4 @@
-""" unit format strings for netCDF variables. """
+"""unit format strings for netCDF variables."""
NC_UNITS_FORMAT = {
"2D_cumulative_well_flux": "{0}^3/{1}",
diff --git a/flopy/export/utils.py b/flopy/export/utils.py
index ff77baadd..1c3ee4d55 100644
--- a/flopy/export/utils.py
+++ b/flopy/export/utils.py
@@ -159,12 +159,12 @@ def _add_output_nc_variable(
array = np.zeros(
(len(times), shape3d[0], shape3d[1], shape3d[2]), dtype=np.float32
)
- array[:] = np.NaN
+ array[:] = np.nan
if isinstance(out_obj, ZBNetOutput):
a = np.asarray(out_obj.zone_array, dtype=np.float32)
if mask_array3d is not None:
- a[mask_array3d] = np.NaN
+ a[mask_array3d] = np.nan
for i, _ in enumerate(times):
array[i, :, :, :] = a
@@ -187,7 +187,7 @@ def _add_output_nc_variable(
print(estr)
continue
if mask_array3d is not None and a.shape == mask_array3d.shape:
- a[mask_array3d] = np.NaN
+ a[mask_array3d] = np.nan
try:
array[i, :, :, :] = a.astype(np.float32)
except Exception as e:
@@ -203,7 +203,7 @@ def _add_output_nc_variable(
logger.log(f"creating array for {var_name}")
for mask_val in mask_vals:
- array[np.where(array == mask_val)] = np.NaN
+ array[np.where(array == mask_val)] = np.nan
mx, mn = np.nanmax(array), np.nanmin(array)
array[np.isnan(array)] = netcdf.FILLVALUE
@@ -596,7 +596,7 @@ def model_export(
output format flag. 'vtk' will export to vtk
**kwargs : keyword arguments
modelgrid: flopy.discretization.Grid
- user supplied modelgrid object which will supercede the built
+ user supplied modelgrid object which will supersede the built
in modelgrid object
crs : pyproj.CRS, int, str, optional if `prjfile` is specified
Coordinate reference system (CRS) for the model grid
@@ -687,9 +687,9 @@ def package_export(
package to export
fmt : str
output format flag. 'vtk' will export to vtk
- ** kwargs : keword arguments
+ ** kwargs : keyword arguments
modelgrid: flopy.discretization.Grid
- user supplied modelgrid object which will supercede the built
+ user supplied modelgrid object which will supersede the built
in modelgrid object
crs : pyproj.CRS, int, str, optional if `prjfile` is specified
Coordinate reference system (CRS) for the model grid
@@ -873,7 +873,7 @@ def mflist_export(f: Union[str, os.PathLike, NetCdf], mfl, **kwargs):
mfl : MfList instance
**kwargs : keyword arguments
modelgrid : flopy.discretization.Grid
- model grid instance which will supercede the flopy.model.modelgrid
+ model grid instance which will supersede the flopy.model.modelgrid
crs : pyproj.CRS, int, str, optional if `prjfile` is specified
Coordinate reference system (CRS) for the model grid
(must be projected; geographic CRS are not supported).
@@ -1034,7 +1034,7 @@ def transient2d_export(f: Union[str, os.PathLike], t2d, fmt=None, **kwargs):
min_valid : minimum valid value
max_valid : maximum valid value
modelgrid : flopy.discretization.Grid
- model grid instance which will supercede the flopy.model.modelgrid
+ model grid instance which will supersede the flopy.model.modelgrid
if fmt is set to 'vtk', parameters of Vtk initializer
"""
@@ -1082,9 +1082,9 @@ def transient2d_export(f: Union[str, os.PathLike], t2d, fmt=None, **kwargs):
with np.errstate(invalid="ignore"):
if array.dtype not in [int, np.int32, np.int64]:
if mask is not None:
- array[:, 0, mask] = np.NaN
- array[array <= min_valid] = np.NaN
- array[array >= max_valid] = np.NaN
+ array[:, 0, mask] = np.nan
+ array[array <= min_valid] = np.nan
+ array[array >= max_valid] = np.nan
mx, mn = np.nanmax(array), np.nanmin(array)
else:
mx, mn = np.nanmax(array), np.nanmin(array)
@@ -1099,7 +1099,7 @@ def transient2d_export(f: Union[str, os.PathLike], t2d, fmt=None, **kwargs):
var_name = t2d.name.replace("_", "")
if isinstance(f, dict):
- array[array == netcdf.FILLVALUE] = np.NaN
+ array[array == netcdf.FILLVALUE] = np.nan
f[var_name] = array
return f
@@ -1194,7 +1194,7 @@ def array3d_export(f: Union[str, os.PathLike], u3d, fmt=None, **kwargs):
min_valid : minimum valid value
max_valid : maximum valid value
modelgrid : flopy.discretization.Grid
- model grid instance which will supercede the flopy.model.modelgrid
+ model grid instance which will supersede the flopy.model.modelgrid
if fmt is set to 'vtk', parameters of Vtk initializer
"""
@@ -1243,7 +1243,7 @@ def array3d_export(f: Union[str, os.PathLike], u3d, fmt=None, **kwargs):
# if isinstance(f,NetCdf) and array.shape != f.shape:
# f.log("broadcasting 3D array for {0}".format(var_name))
# full_array = np.empty(f.shape)
- # full_array[:] = np.NaN
+ # full_array[:] = np.nan
# full_array[:array.shape[0]] = array
# array = full_array
# f.log("broadcasting 3D array for {0}".format(var_name))
@@ -1256,7 +1256,7 @@ def array3d_export(f: Union[str, os.PathLike], u3d, fmt=None, **kwargs):
if mask is not None and array.shape != mask.shape:
# f.log("broadcasting 3D array for {0}".format(var_name))
full_array = np.empty(mask.shape)
- full_array[:] = np.NaN
+ full_array[:] = np.nan
full_array[: array.shape[0]] = array
array = full_array
# f.log("broadcasting 3D array for {0}".format(var_name))
@@ -1268,13 +1268,13 @@ def array3d_export(f: Union[str, os.PathLike], u3d, fmt=None, **kwargs):
# if u3d.model.modelgrid.bas6 is not None and "ibound" not
# in var_name:
# array[u3d.model.modelgrid.bas6.ibound.array == 0] =
- # np.NaN
+ # np.nan
# elif u3d.model.btn is not None and 'icbund' not in var_name:
- # array[u3d.model.modelgrid.btn.icbund.array == 0] = np.NaN
+ # array[u3d.model.modelgrid.btn.icbund.array == 0] = np.nan
if mask is not None:
- array[mask] = np.NaN
- array[array <= min_valid] = np.NaN
- array[array >= max_valid] = np.NaN
+ array[mask] = np.nan
+ array[array <= min_valid] = np.nan
+ array[array >= max_valid] = np.nan
mx, mn = np.nanmax(array), np.nanmin(array)
else:
mx, mn = np.nanmax(array), np.nanmin(array)
@@ -1372,7 +1372,7 @@ def array2d_export(
min_valid : minimum valid value
max_valid : maximum valid value
modelgrid : flopy.discretization.Grid
- model grid instance which will supercede the flopy.model.modelgrid
+ model grid instance which will supersede the flopy.model.modelgrid
if fmt is set to 'vtk', parameters of Vtk initializer
"""
@@ -1421,9 +1421,9 @@ def array2d_export(
and "ibound" not in u2d.name.lower()
and "idomain" not in u2d.name.lower()
):
- array[modelgrid.idomain[0, :, :] == 0] = np.NaN
- array[array <= min_valid] = np.NaN
- array[array >= max_valid] = np.NaN
+ array[modelgrid.idomain[0, :, :] == 0] = np.nan
+ array[array <= min_valid] = np.nan
+ array[array >= max_valid] = np.nan
mx, mn = np.nanmax(array), np.nanmin(array)
else:
mx, mn = np.nanmax(array), np.nanmin(array)
@@ -1525,9 +1525,9 @@ def export_array(
model grid
filename : str or PathLike
Path of output file. Export format is determined by
- file extention.
+ file extension.
'.asc' Arc Ascii grid
- '.tif' GeoTIFF (requries rasterio package)
+ '.tif' GeoTIFF (requires rasterio package)
'.shp' Shapefile
a : 2D numpy.ndarray
Array to export
@@ -1924,7 +1924,7 @@ def export_array_contours(
modelgrid : flopy.discretization.Grid object
model grid object
filename : str or PathLike
- Path of output file with '.shp' extention.
+ Path of output file with '.shp' extension.
a : 2D numpy array
Array to contour
fieldname : str
diff --git a/flopy/export/vtk.py b/flopy/export/vtk.py
index fd9cbf123..07024a5b8 100644
--- a/flopy/export/vtk.py
+++ b/flopy/export/vtk.py
@@ -9,6 +9,7 @@
from typing import Union
import numpy as np
+import pandas as pd
from ..datbase import DataInterface, DataType
from ..utils import Util3d, import_optional_dependency
@@ -99,11 +100,11 @@ class Vtk:
modelgrid : flopy.discretization.Grid object
any flopy modelgrid object, example. VertexGrid
vertical_exageration : float
- floating point value to scale vertical exageration of the vtk points
+ floating point value to scale vertical exaggeration of the vtk points
default is 1.
binary : bool
flag that indicates if Vtk will write a binary or text file. Binary
- is prefered as paraview has a bug (8/4/2021) where is cannot represent
+ is preferred as paraview has a bug (8/4/2021) where is cannot represent
NaN values from ASCII (non xml) files. In this case no-data values
are set to 1e+30.
xml : bool
@@ -120,7 +121,7 @@ class Vtk:
boolean flag to interpolate vertex elevations based on shared cell
elevations. Default is False.
point_scalars : bool
- boolen flag to write interpolated data at each point based "shared
+ boolean flag to write interpolated data at each point based "shared
vertices".
"""
@@ -183,7 +184,7 @@ def __init__(
self.nvpl = nvpl
- # method to accomodate DISU grids, do not use modelgrid.ncpl!
+ # method to accommodate DISU grids, do not use modelgrid.ncpl!
self.ncpl = len(self.iverts)
if self.nnodes == len(self.iverts):
self.nlay = 1
@@ -520,7 +521,7 @@ def _build_hfbs(self, pkg):
mf6 = False
hfb_data = pkg.hfb_data
else:
- # asssume that there is no transient hfb data for now
+ # assume that there is no transient hfb data for now
hfb_data = pkg.stress_period_data.array[0]
mf6 = True
@@ -791,7 +792,7 @@ def add_transient_array(self, d, name=None, masked_values=None):
if self.__transient_output_data:
raise AssertionError(
"Transient arrays cannot be mixed with transient output, "
- "Please create a seperate vtk object for transient package "
+ "Please create a separate vtk object for transient package "
"data"
)
@@ -1079,25 +1080,86 @@ def add_model(self, model, selpaklist=None, masked_values=None):
def add_pathline_points(self, pathlines, timeseries=False):
"""
- Method to add Modpath output from a pathline or timeseries file
- to the grid. Colors will be representative of totim.
+ Method to add particle pathlines to the grid, with points
+ colored by travel-time. Supports MODPATH or MODFLOW6 PRT
+ pathline format, or MODPATH timeseries format.
Parameters
----------
- pathlines : np.recarray or list
- pathlines accepts a numpy recarray of a particle pathline or
- a list of numpy reccarrays associated with pathlines
- timeseries : bool
- method to plot data as a series of vtk timeseries files for
- animation or as a single static vtk file. Default is false
+ pathlines : pd.dataframe, np.recarray or list
+ Particle pathlines, either as a single dataframe or recarray
+ or a list of such, separated by particle ID. If pathlines are
+ not provided separately, the dataframe or recarray must have
+ columns: 'time', 'k' & 'particleid' for MODPATH 3, 5, 6 or 7,
+ and 'irpt', 'iprp', 'imdl', and 'trelease' for MODFLOW 6 PRT,
+ so particle pathlines can be distinguished.
+ timeseries : bool, optional
+ Whether to plot data as a series of vtk timeseries files for
+ animation or as a single static vtk file. Default is false.
"""
- if isinstance(pathlines, (np.recarray, np.ndarray)):
- pathlines = [pathlines]
+ mpx_fields = ["particleid", "time", "k"]
+ prt_fields = ["imdl", "iprp", "irpt", "trelease", "ilay"]
+
+ if isinstance(pathlines, list):
+ if len(pathlines) == 0:
+ return
+ pathlines = [
+ (
+ pl.to_records(index=False)
+ if isinstance(pl, pd.DataFrame)
+ else pl
+ )
+ for pl in pathlines
+ ]
+ fields = pathlines[0].dtype.names
+ arr_fields = {
+ n: pathlines[0].dtype[n]
+ for n in fields
+ if np.issubdtype(pathlines[0].dtype[n], np.number)
+ }
+ if not (
+ all(k in fields for k in mpx_fields)
+ or all(k in fields for k in prt_fields)
+ ):
+ raise ValueError("Unrecognized pathline dtype")
+ elif isinstance(pathlines, (np.recarray, np.ndarray, pd.DataFrame)):
+ if isinstance(pathlines, pd.DataFrame):
+ pathlines = pathlines.to_records(index=False)
+ fields = pathlines.dtype.names
+ arr_fields = {
+ n: pathlines.dtype[n]
+ for n in fields
+ if np.issubdtype(pathlines.dtype[n], np.number)
+ }
+ if all(k in pathlines.dtype.names for k in mpx_fields):
+ pids = np.unique(pathlines.particleid)
+ pathlines = [
+ pathlines[pathlines.particleid == pid] for pid in pids
+ ]
+ elif all(k in pathlines.dtype.names for k in prt_fields):
+ pls = []
+ for imdl in np.unique(pathlines.imdl):
+ for iprp in np.unique(pathlines.iprp):
+ for irpt in np.unique(pathlines.irpt):
+ pl = pathlines[
+ (pathlines.imdl == imdl)
+ & (pathlines.iprp == iprp)
+ & (pathlines.irpt == irpt)
+ ]
+ pls.extend(
+ [pl[pl.trelease == t] for t in np.unique(pl.t)]
+ )
+ pathlines = pls
+ else:
+ raise ValueError("Unrecognized pathline dtype")
+ else:
+ raise ValueError(
+ "Unsupported pathline format, expected array, recarray, dataframe, or list"
+ )
- keys = ["particleid", "time"]
if not timeseries:
- arrays = {key: [] for key in keys}
+ arrays = {f: [] for f in arr_fields}
points = []
lines = []
for recarray in pathlines:
@@ -1107,8 +1169,8 @@ def add_pathline_points(self, pathlines, timeseries=False):
t = tuple(rec[["x", "y", "z"]])
line.append(t)
points.append(t)
- for key in keys:
- arrays[key].append(rec[key])
+ for f in arr_fields:
+ arrays[f].append(rec[f])
lines.append(line)
self._set_particle_track_data(points, lines, arrays)
@@ -1123,14 +1185,12 @@ def add_pathline_points(self, pathlines, timeseries=False):
time = rec["time"]
if time not in points:
points[time] = [tuple(rec[["x", "y", "z"]])]
- t = {key: [] for key in keys}
- timeseries_data[time] = t
-
+ timeseries_data[time] = {f: [] for f in arr_fields}
else:
points[time].append(tuple(rec[["x", "y", "z"]]))
- for key in keys:
- timeseries_data[time][key].append(rec[key])
+ for f in arr_fields:
+ timeseries_data[time][f].append(rec[f])
self.__pathline_transient_data = timeseries_data
self._pathline_points = points
@@ -1153,7 +1213,7 @@ def add_heads(self, hds, kstpkper=None, masked_values=None):
if not self.__transient_output_data and self.__transient_data:
raise AssertionError(
"Head data cannot be mixed with transient package data, "
- "Please create a seperate vtk object for transient head data"
+ "Please create a separate vtk object for transient head data"
)
if kstpkper is None:
@@ -1203,7 +1263,7 @@ def add_cell_budget(
if not self.__transient_output_data and self.__transient_data:
raise AssertionError(
"Binary data cannot be mixed with transient package data, "
- "Please create a seperate vtk object for transient head data"
+ "Please create a separate vtk object for transient head data"
)
records = cbc.get_unique_record_names(decode=True)
@@ -1458,7 +1518,7 @@ def write(self, f: Union[str, os.PathLike], kper=None):
w.SetFileName(str(foo))
w.Update()
- if not type(self.pvd) == bool:
+ if not isinstance(self.pvd, bool):
if f.suffix not in (".vtk", ".vtu"):
pvdfile = f.parent / f"{f.name}.pvd"
else:
diff --git a/flopy/mbase.py b/flopy/mbase.py
index a41285137..ee7bbd63f 100644
--- a/flopy/mbase.py
+++ b/flopy/mbase.py
@@ -1507,7 +1507,7 @@ def write_input(self, SelPackList=False, check=False):
if self.verbose:
print("\nWriting packages:")
- if SelPackList == False:
+ if SelPackList is False:
for p in self.packagelist:
if self.verbose:
print(" Package: ", p.name[0])
@@ -1744,6 +1744,7 @@ def run_model(
normal_msg="normal termination",
use_async=False,
cargs=None,
+ custom_print=None,
) -> Tuple[bool, List[str]]:
"""
Run the model using subprocess.Popen, optionally collecting stdout and printing
@@ -1782,12 +1783,22 @@ def run_model(
cargs : str or list, optional, default None
Additional command line arguments to pass to the executable.
(Default is None)
+ custom_print: callable
+ Optional callable for printing. It will replace the builtin print
+ function. This is useful for a shorter print output or integration into
+ other systems such as GUIs.
+ default is None, i.e. use the builtin print
Returns
-------
success : boolean
buff : list of lines of stdout (empty if report is False)
"""
+ if custom_print is not None:
+ print = custom_print
+ else:
+ print = __builtins__["print"]
+
success = False
buff = []
@@ -1799,7 +1810,7 @@ def run_model(
# make sure executable exists
if exe_name is None:
- raise ValueError(f"An executable name or path must be provided")
+ raise ValueError("An executable name or path must be provided")
exe_path = resolve_exe(exe_name)
if not silent:
print(
diff --git a/flopy/mf6/coordinates/modeldimensions.py b/flopy/mf6/coordinates/modeldimensions.py
index 5b9460ecf..878f74a71 100644
--- a/flopy/mf6/coordinates/modeldimensions.py
+++ b/flopy/mf6/coordinates/modeldimensions.py
@@ -401,9 +401,21 @@ def _create_model_grid(self, grid_type):
self._model_grid = UnstructuredModelGrid(
self.model_name, self.simulation_data
)
- elif grid_type == DiscretizationType.DISL:
+ elif grid_type == DiscretizationType.DISV1D:
self._model_grid = ModelGrid(
- self.model_name, self.simulation_data, DiscretizationType.DISL
+ self.model_name,
+ self.simulation_data,
+ DiscretizationType.DISV1D,
+ )
+ elif grid_type == DiscretizationType.DIS2D:
+ self._model_grid = ModelGrid(
+ self.model_name, self.simulation_data, DiscretizationType.DIS2D
+ )
+ elif grid_type == DiscretizationType.DISV2D:
+ self._model_grid = ModelGrid(
+ self.model_name,
+ self.simulation_data,
+ DiscretizationType.DISV2D,
)
else:
self._model_grid = ModelGrid(
@@ -466,9 +478,7 @@ def get_data_shape(
data_item_struct,
path=path,
repeating_key=repeating_key,
- )[
- 0
- ]
+ )[0]
num_cols = num_cols + num
shape_consistent = (
shape_consistent and consistent_shape
diff --git a/flopy/mf6/coordinates/modelgrid.py b/flopy/mf6/coordinates/modelgrid.py
index 538594a2e..7b3f69854 100644
--- a/flopy/mf6/coordinates/modelgrid.py
+++ b/flopy/mf6/coordinates/modelgrid.py
@@ -274,7 +274,7 @@ def _get_connection_number(self, cellid, reverse_connection=False):
jas = self._simulation_data.mfdata[
(self._model_name, "disu8", "connectiondata", "ja")
]
- if reverse_connection == False:
+ if reverse_connection is False:
connection_list = jas[self._cellid - 1]
connecting_cellid = cellid
else:
@@ -452,12 +452,25 @@ def get_grid_type(simulation_data, model_name):
return DiscretizationType.DISU
elif (
package_recarray.search_data(
- f"disl{structure.get_version_string()}", 0
+ f"disv1d{structure.get_version_string()}", 0
)
is not None
):
- return DiscretizationType.DISL
-
+ return DiscretizationType.DISV1D
+ elif (
+ package_recarray.search_data(
+ f"dis2d{structure.get_version_string()}", 0
+ )
+ is not None
+ ):
+ return DiscretizationType.DIS2D
+ elif (
+ package_recarray.search_data(
+ f"disv2d{structure.get_version_string()}", 0
+ )
+ is not None
+ ):
+ return DiscretizationType.DISV2D
return DiscretizationType.UNDEFINED
def get_idomain(self):
@@ -469,17 +482,26 @@ def get_idomain(self):
return self._simulation_data.mfdata[
(self._model_name, "disv", "griddata", "idomain")
].get_data()
- elif self._grid_type == DiscretizationType.DISL:
+ elif self._grid_type == DiscretizationType.DISV1D:
return self._simulation_data.mfdata[
- (self._model_name, "disl", "griddata", "idomain")
+ (self._model_name, "disv1d", "griddata", "idomain")
].get_data()
elif self._grid_type == DiscretizationType.DISU:
return self._simulation_data.mfdata[
(self._model_name, "disu", "griddata", "idomain")
].get_data()
+ elif self._grid_type == DiscretizationType.DIS2D:
+ return self._simulation_data.mfdata[
+ (self._model_name, "dis2d", "griddata", "idomain")
+ ].get_data()
+ elif self._grid_type == DiscretizationType.DISV2D:
+ return self._simulation_data.mfdata[
+ (self._model_name, "disv2d", "griddata", "idomain")
+ ].get_data()
except_str = (
- "ERROR: Grid type {} for model {} not "
- "recognized.".format(self._grid_type, self._model_name)
+ "ERROR: Grid type {} for model {} not " "recognized.".format(
+ self._grid_type, self._model_name
+ )
)
print(except_str)
raise MFGridException(except_str)
@@ -511,15 +533,18 @@ def get_horizontal_cross_section_dim_arrays(self):
np.arange(1, self.num_rows() + 1, 1, np.int32),
np.arange(1, self.num_columns() + 1, 1, np.int32),
]
- elif self.grid_type() == DiscretizationType.DISV:
+ elif (
+ self.grid_type() == DiscretizationType.DISV
+ or self.grid_type() == DiscretizationType.DISV2D
+ ):
return [np.arange(1, self.num_cells_per_layer() + 1, 1, np.int32)]
elif (
self.grid_type() == DiscretizationType.DISU
- or self.grid_type() == DiscretizationType.DISL
+ or self.grid_type() == DiscretizationType.DISV1D
):
except_str = (
"ERROR: Can not get horizontal plane arrays for "
- 'model "{}" grid. DISU and DISL grids do not '
+ 'model "{}" grid. DISU and DISV1D grids do not '
"support individual layers.".format(self._model_name)
)
print(except_str)
@@ -528,11 +553,14 @@ def get_horizontal_cross_section_dim_arrays(self):
def get_model_dim(self):
if self.grid_type() == DiscretizationType.DIS:
return [self.num_layers(), self.num_rows(), self.num_columns()]
+ elif self.grid_type() == DiscretizationType.DIS2D:
+ return [self.num_rows(), self.num_columns()]
elif self.grid_type() == DiscretizationType.DISV:
return [self.num_layers(), self.num_cells_per_layer()]
elif (
self.grid_type() == DiscretizationType.DISU
- or self.grid_type() == DiscretizationType.DISL
+ or self.grid_type() == DiscretizationType.DISV1D
+ or self.grid_type() == DiscretizationType.DISV2D
):
return [self.num_cells()]
@@ -543,6 +571,11 @@ def get_model_dim_arrays(self):
np.arange(1, self.num_rows() + 1, 1, np.int32),
np.arange(1, self.num_columns() + 1, 1, np.int32),
]
+ elif self.grid_type() == DiscretizationType.DIS2D:
+ return [
+ np.arange(1, self.num_rows() + 1, 1, np.int32),
+ np.arange(1, self.num_columns() + 1, 1, np.int32),
+ ]
elif self.grid_type() == DiscretizationType.DISV:
return [
np.arange(1, self.num_layers() + 1, 1, np.int32),
@@ -550,7 +583,8 @@ def get_model_dim_arrays(self):
]
elif (
self.grid_type() == DiscretizationType.DISU
- or self.grid_type() == DiscretizationType.DISL
+ or self.grid_type() == DiscretizationType.DISV1D
+ or self.grid_type() == DiscretizationType.DISV2D
):
return [np.arange(1, self.num_cells() + 1, 1, np.int32)]
@@ -566,11 +600,14 @@ def get_layer_array(self):
def get_horizontal_cross_section_dim_names(self):
if self.grid_type() == DiscretizationType.DIS:
return ["row", "column"]
- elif self.grid_type() == DiscretizationType.DISV:
+ elif (
+ self.grid_type() == DiscretizationType.DISV
+ or self.grid_type() == DiscretizationType.DISV2D
+ ):
return ["layer_cell_num"]
elif (
self.grid_type() == DiscretizationType.DISU
- or self.grid_type() == DiscretizationType.DISL
+ or self.grid_type() == DiscretizationType.DISV1D
):
except_str = (
"ERROR: Can not get layer dimension name for model "
@@ -583,11 +620,15 @@ def get_horizontal_cross_section_dim_names(self):
def get_model_dim_names(self):
if self.grid_type() == DiscretizationType.DIS:
return ["layer", "row", "column"]
+ elif self.grid_type() == DiscretizationType.DIS2D:
+ return ["row", "column"]
elif self.grid_type() == DiscretizationType.DISV:
return ["layer", "layer_cell_num"]
+ elif self.grid_type() == DiscretizationType.DISV2D:
+ return ["cell_num"]
elif (
self.grid_type() == DiscretizationType.DISU
- or self.grid_type() == DiscretizationType.DISL
+ or self.grid_type() == DiscretizationType.DISV1D
):
return ["node"]
@@ -595,16 +636,23 @@ def get_num_spatial_coordinates(self):
grid_type = self.grid_type()
if grid_type == DiscretizationType.DIS:
return 3
+ elif grid_type == DiscretizationType.DIS2D:
+ return 2
elif grid_type == DiscretizationType.DISV:
return 2
- elif (
- grid_type == DiscretizationType.DISU
- or grid_type == DiscretizationType.DISL
- ):
+ elif grid_type == DiscretizationType.DISV2D:
+ return 1
+ elif grid_type == DiscretizationType.DISU:
+ return 1
+ elif grid_type == DiscretizationType.DISV1D:
return 1
+ return 0
def num_rows(self):
- if self.grid_type() != DiscretizationType.DIS:
+ if self.grid_type() not in [
+ DiscretizationType.DIS,
+ DiscretizationType.DIS2D,
+ ]:
except_str = (
'ERROR: Model "{}" does not have rows. Can not '
"return number of rows.".format(self._model_name)
@@ -612,12 +660,16 @@ def num_rows(self):
print(except_str)
raise MFGridException(except_str)
+ distype = self.grid_type().name.lower() # dis or dis2d
return self._simulation_data.mfdata[
- (self._model_name, "dis", "dimensions", "nrow")
+ (self._model_name, distype, "dimensions", "nrow")
].get_data()
def num_columns(self):
- if self.grid_type() != DiscretizationType.DIS:
+ if self.grid_type() not in [
+ DiscretizationType.DIS,
+ DiscretizationType.DIS2D,
+ ]:
except_str = (
'ERROR: Model "{}" does not have columns. Can not '
"return number of columns.".format(self._model_name)
@@ -625,8 +677,9 @@ def num_columns(self):
print(except_str)
raise MFGridException(except_str)
+ distype = self.grid_type().name.lower() # dis or dis2d
return self._simulation_data.mfdata[
- (self._model_name, "dis", "dimensions", "ncol")
+ (self._model_name, distype, "dimensions", "ncol")
].get_data()
def num_connections(self):
@@ -650,6 +703,10 @@ def num_cells_per_layer(self):
return self._simulation_data.mfdata[
(self._model_name, "disv", "dimensions", "ncpl")
].get_data()
+ elif self.grid_type() == DiscretizationType.DISV2D:
+ return self._simulation_data.mfdata[
+ (self._model_name, "disv", "dimensions", "nodes")
+ ].get_data()
elif self.grid_type() == DiscretizationType.DISU:
return self._simulation_data.mfdata[
(self._model_name, "disu", "dimensions", "nodes")
@@ -666,22 +723,30 @@ def num_layers(self):
].get_data()
elif (
self.grid_type() == DiscretizationType.DISU
- or self.grid_type() == DiscretizationType.DISL
+ or self.grid_type() == DiscretizationType.DISV1D
+ or self.grid_type() == DiscretizationType.DIS2D
+ or self.grid_type() == DiscretizationType.DISV2D
):
return None
def num_cells(self):
if self.grid_type() == DiscretizationType.DIS:
return self.num_rows() * self.num_columns() * self.num_layers()
+ elif self.grid_type() == DiscretizationType.DIS2D:
+ return self.num_rows() * self.num_columns()
elif self.grid_type() == DiscretizationType.DISV:
return self.num_layers() * self.num_cells_per_layer()
elif self.grid_type() == DiscretizationType.DISU:
return self._simulation_data.mfdata[
(self._model_name, "disu", "dimensions", "nodes")
].get_data()
- elif self.grid_type() == DiscretizationType.DISL:
+ elif self.grid_type() == DiscretizationType.DISV2D:
+ return self._simulation_data.mfdata[
+ (self._model_name, "disv2d", "dimensions", "nodes")
+ ].get_data()
+ elif self.grid_type() == DiscretizationType.DISV1D:
return self._simulation_data.mfdata[
- (self._model_name, "disl", "dimensions", "nodes")
+ (self._model_name, "disv1d", "dimensions", "nodes")
].get_data()
def get_all_model_cells(self):
@@ -692,6 +757,11 @@ def get_all_model_cells(self):
for column in range(0, self.num_columns()):
model_cells.append((layer + 1, row + 1, column + 1))
return model_cells
+ elif self.grid_type() == DiscretizationType.DIS2D:
+ for row in range(0, self.num_rows()):
+ for column in range(0, self.num_columns()):
+ model_cells.append((layer + 1, row + 1, column + 1))
+ return model_cells
elif self.grid_type() == DiscretizationType.DISV:
for layer in range(0, self.num_layers()):
for layer_cellid in range(0, self.num_rows()):
@@ -699,7 +769,8 @@ def get_all_model_cells(self):
return model_cells
elif (
self.grid_type() == DiscretizationType.DISU
- or self.grid_type() == DiscretizationType.DISL
+ or self.grid_type() == DiscretizationType.DISV1D
+ or self.grid_type() == DiscretizationType.DISV2D
):
for node in range(0, self.num_cells()):
model_cells.append(node + 1)
diff --git a/flopy/mf6/data/dfn/common.dfn b/flopy/mf6/data/dfn/common.dfn
index b69ae67ed..0fd5220c2 100644
--- a/flopy/mf6/data/dfn/common.dfn
+++ b/flopy/mf6/data/dfn/common.dfn
@@ -21,6 +21,9 @@ description keyword to indicate that the list of {#1} {#2} will be printed to th
name print_concentration
description keyword to indicate that the list of {#1} {#2} will be printed to the listing file for every stress period in which ``CONCENTRATION PRINT'' is specified in Output Control. If there is no Output Control option and PRINT\_{#3} is specified, then {#2} are printed for the last time step of each stress period.
+name print_temperature
+description keyword to indicate that the list of {#1} {#2} will be printed to the listing file for every stress period in which ``TEMPERATURE PRINT'' is specified in Output Control. If there is no Output Control option and PRINT\_{#3} is specified, then {#2} are printed for the last time step of each stress period.
+
name print_flows
description keyword to indicate that the list of {#1} flow rates will be printed to the listing file for every stress period time step in which ``BUDGET PRINT'' is specified in Output Control. If there is no Output Control option and ``PRINT\_FLOWS'' is specified, then flow rates are printed for the last time step of each stress period.
diff --git a/flopy/mf6/data/dfn/exg-gwegwe.dfn b/flopy/mf6/data/dfn/exg-gwegwe.dfn
new file mode 100644
index 000000000..7b79ce7e7
--- /dev/null
+++ b/flopy/mf6/data/dfn/exg-gwegwe.dfn
@@ -0,0 +1,281 @@
+# --------------------- exg gwegwe options ---------------------
+# flopy multi-package
+
+block options
+name gwfmodelname1
+type string
+reader urword
+optional false
+longname keyword to specify name of first corresponding GWF Model
+description keyword to specify name of first corresponding GWF Model. In the simulation name file, the GWE6-GWE6 entry contains names for GWE Models (exgmnamea and exgmnameb). The GWE Model with the name exgmnamea must correspond to the GWF Model with the name gwfmodelname1.
+
+block options
+name gwfmodelname2
+type string
+reader urword
+optional false
+longname keyword to specify name of second corresponding GWF Model
+description keyword to specify name of second corresponding GWF Model. In the simulation name file, the GWE6-GWE6 entry contains names for GWE Models (exgmnamea and exgmnameb). The GWE Model with the name exgmnameb must correspond to the GWF Model with the name gwfmodelname2.
+
+block options
+name auxiliary
+type string
+shape (naux)
+reader urword
+optional true
+longname keyword to specify aux variables
+description an array of auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided. Most auxiliary variables will not be used by the GWF-GWF Exchange, but they will be available for use by other parts of the program. If an auxiliary variable with the name ``ANGLDEGX'' is found, then this information will be used as the angle (provided in degrees) between the connection face normal and the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis. The connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in model 2 pointing away from the model 1 cell. Additional information on ``ANGLDEGX'' is provided in the description of the DISU Package. If an auxiliary variable with the name ``CDIST'' is found, then this information will be used as the straight-line connection distance, including the vertical component, between the two cell centers. Both ANGLDEGX and CDIST are required if specific discharge is calculated for either of the groundwater models.
+
+block options
+name boundnames
+type keyword
+shape
+reader urword
+optional true
+longname
+description REPLACE boundnames {'{#1}': 'GWE Exchange'}
+
+block options
+name print_input
+type keyword
+reader urword
+optional true
+longname keyword to print input to list file
+description keyword to indicate that the list of exchange entries will be echoed to the listing file immediately after it is read.
+mf6internal iprpak
+
+block options
+name print_flows
+type keyword
+reader urword
+optional true
+longname keyword to print gwfgwf flows to list file
+description keyword to indicate that the list of exchange flow rates will be printed to the listing file for every stress period in which ``SAVE BUDGET'' is specified in Output Control.
+mf6internal iprflow
+
+block options
+name save_flows
+type keyword
+reader urword
+optional true
+longname keyword to save GWFGWF flows
+description keyword to indicate that cell-by-cell flow terms will be written to the budget file for each model provided that the Output Control for the models are set up with the ``BUDGET SAVE FILE'' option.
+mf6internal ipakcb
+
+block options
+name adv_scheme
+type string
+valid upstream central tvd
+reader urword
+optional true
+longname advective scheme
+description scheme used to solve the advection term. Can be upstream, central, or TVD. If not specified, upstream weighting is the default weighting scheme.
+
+block options
+name cnd_xt3d_off
+type keyword
+shape
+reader urword
+optional true
+longname deactivate xt3d
+description deactivate the xt3d method for the dispersive flux and use the faster and less accurate approximation for this exchange.
+
+block options
+name cnd_xt3d_rhs
+type keyword
+shape
+reader urword
+optional true
+longname xt3d on right-hand side
+description add xt3d dispersion terms to right-hand side, when possible, for this exchange.
+
+block options
+name filein
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name mve_filerecord
+type record mve6 filein mve6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name mve6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname obs keyword
+description keyword to specify that record corresponds to an energy transport mover file.
+
+block options
+name mve6_filename
+type string
+preserve_case true
+in_record true
+tagged false
+reader urword
+optional false
+longname mve6 input filename
+description is the file name of the transport mover input file to apply to this exchange. Information for the transport mover are provided in the file provided with these keywords.
+
+block options
+name obs_filerecord
+type record obs6 filein obs6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name obs6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname obs keyword
+description keyword to specify that record corresponds to an observations file.
+
+block options
+name obs6_filename
+type string
+preserve_case true
+in_record true
+tagged false
+reader urword
+optional false
+longname obs6 input filename
+description is the file name of the observations input file for this exchange. See the ``Observation utility'' section for instructions for preparing observation input files. Table \ref{table:gwe-obstypetable} lists observation type(s) supported by the GWE-GWE package.
+
+block options
+name dev_interfacemodel_on
+type keyword
+reader urword
+optional true
+longname activate interface model on exchange
+description activates the interface model mechanism for calculating the coefficients at (and possibly near) the exchange. This keyword should only be used for development purposes.
+mf6internal dev_ifmod_on
+
+# --------------------- exg gwegwe dimensions ---------------------
+
+block dimensions
+name nexg
+type integer
+reader urword
+optional false
+longname number of exchanges
+description keyword and integer value specifying the number of GWE-GWE exchanges.
+
+
+# --------------------- exg gwegwe exchangedata ---------------------
+
+block exchangedata
+name exchangedata
+type recarray cellidm1 cellidm2 ihc cl1 cl2 hwva aux boundname
+shape (nexg)
+reader urword
+optional false
+longname exchange data
+description
+
+block exchangedata
+name cellidm1
+type integer
+in_record true
+tagged false
+reader urword
+optional false
+longname cellid of first cell
+description is the cellid of the cell in model 1 as specified in the simulation name file. For a structured grid that uses the DIS input file, CELLIDM1 is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLIDM1 is the layer number and CELL2D number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLIDM1 is the node number for the cell.
+numeric_index true
+
+block exchangedata
+name cellidm2
+type integer
+in_record true
+tagged false
+reader urword
+optional false
+longname cellid of second cell
+description is the cellid of the cell in model 2 as specified in the simulation name file. For a structured grid that uses the DIS input file, CELLIDM2 is the layer, row, and column numbers of the cell. For a grid that uses the DISV input file, CELLIDM2 is the layer number and CELL2D number for the two cells. If the model uses the unstructured discretization (DISU) input file, then CELLIDM2 is the node number for the cell.
+numeric_index true
+
+block exchangedata
+name ihc
+type integer
+in_record true
+tagged false
+reader urword
+optional false
+longname integer flag for connection type
+description is an integer flag indicating the direction between node n and all of its m connections. If IHC = 0 then the connection is vertical. If IHC = 1 then the connection is horizontal. If IHC = 2 then the connection is horizontal for a vertically staggered grid.
+
+block exchangedata
+name cl1
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname connection distance
+description is the distance between the center of cell 1 and the its shared face with cell 2.
+
+block exchangedata
+name cl2
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname connection distance
+description is the distance between the center of cell 2 and the its shared face with cell 1.
+
+block exchangedata
+name hwva
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname horizontal cell width or area for vertical flow
+description is the horizontal width of the flow connection between cell 1 and cell 2 if IHC $>$ 0, or it is the area perpendicular to flow of the vertical connection between cell 1 and cell 2 if IHC = 0.
+
+block exchangedata
+name aux
+type double precision
+in_record true
+tagged false
+shape (naux)
+reader urword
+optional true
+longname auxiliary variables
+description represents the values of the auxiliary variables for each GWEGWE Exchange. The values of auxiliary variables must be present for each exchange. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block.
+mf6internal auxvar
+
+block exchangedata
+name boundname
+type string
+shape
+tagged false
+in_record true
+reader urword
+optional true
+longname exchange boundname
+description REPLACE boundname {'{#1}': 'GWE Exchange'}
diff --git a/flopy/mf6/data/dfn/exg-gwfgwe.dfn b/flopy/mf6/data/dfn/exg-gwfgwe.dfn
new file mode 100644
index 000000000..fe5410261
--- /dev/null
+++ b/flopy/mf6/data/dfn/exg-gwfgwe.dfn
@@ -0,0 +1,3 @@
+# --------------------- exg gwfgwe options ---------------------
+
+
diff --git a/flopy/mf6/data/dfn/exg-gwfgwf.dfn b/flopy/mf6/data/dfn/exg-gwfgwf.dfn
index 2232bfbdf..0f68acead 100644
--- a/flopy/mf6/data/dfn/exg-gwfgwf.dfn
+++ b/flopy/mf6/data/dfn/exg-gwfgwf.dfn
@@ -8,7 +8,8 @@ shape (naux)
reader urword
optional true
longname keyword to specify aux variables
-description an array of auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided. Most auxiliary variables will not be used by the GWF-GWF Exchange, but they will be available for use by other parts of the program. If an auxiliary variable with the name ``ANGLDEGX'' is found, then this information will be used as the angle (provided in degrees) between the connection face normal and the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis. The connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in model 2 pointing away from the model 1 cell. Additional information on ``ANGLDEGX'' is provided in the description of the DISU Package. If an auxiliary variable with the name ``CDIST'' is found, then this information will be used as the straight-line connection distance, including the vertical component, between the two cell centers. Both ANGLDEGX and CDIST are required if specific discharge is calculated for either of the groundwater models.
+description an array of auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided. Most auxiliary variables will not be used by the GWF-GWF Exchange, but they will be available for use by other parts of the program. If an auxiliary variable with the name ``ANGLDEGX'' is found, then this information will be used as the angle (provided in degrees) between the connection face normal and the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis. The connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in model 2 pointing away from the model 1 cell. Additional information on ``ANGLDEGX'' and when it is required is provided in the description of the DISU Package. If an auxiliary variable with the name ``CDIST'' is found, then this information will be used in the calculation of specific discharge within model cells connected by the exchange. For a horizontal connection, CDIST should be specified as the horizontal distance between the cell centers, and should not include the vertical component. For vertical connections, CDIST should be specified as the difference in elevation between the two cell centers. Both ANGLDEGX and CDIST are required if specific discharge is calculated for either of the groundwater models.
+
block options
name boundnames
@@ -306,6 +307,7 @@ reader urword
optional true
longname auxiliary variables
description represents the values of the auxiliary variables for each GWFGWF Exchange. The values of auxiliary variables must be present for each exchange. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block.
+mf6internal auxvar
block exchangedata
name boundname
diff --git a/flopy/mf6/data/dfn/exg-gwfprt.dfn b/flopy/mf6/data/dfn/exg-gwfprt.dfn
new file mode 100644
index 000000000..1008a7181
--- /dev/null
+++ b/flopy/mf6/data/dfn/exg-gwfprt.dfn
@@ -0,0 +1,3 @@
+# --------------------- exg gwfprt options ---------------------
+
+
diff --git a/flopy/mf6/data/dfn/exg-gwtgwt.dfn b/flopy/mf6/data/dfn/exg-gwtgwt.dfn
index f5aeb2419..11af74961 100644
--- a/flopy/mf6/data/dfn/exg-gwtgwt.dfn
+++ b/flopy/mf6/data/dfn/exg-gwtgwt.dfn
@@ -24,7 +24,7 @@ shape (naux)
reader urword
optional true
longname keyword to specify aux variables
-description an array of auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided. Most auxiliary variables will not be used by the GWF-GWF Exchange, but they will be available for use by other parts of the program. If an auxiliary variable with the name ``ANGLDEGX'' is found, then this information will be used as the angle (provided in degrees) between the connection face normal and the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis. The connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in model 2 pointing away from the model 1 cell. Additional information on ``ANGLDEGX'' is provided in the description of the DISU Package. If an auxiliary variable with the name ``CDIST'' is found, then this information will be used as the straight-line connection distance, including the vertical component, between the two cell centers. Both ANGLDEGX and CDIST are required if specific discharge is calculated for either of the groundwater models.
+description an array of auxiliary variable names. There is no limit on the number of auxiliary variables that can be provided. Most auxiliary variables will not be used by the GWT-GWT Exchange, but they will be available for use by other parts of the program. If an auxiliary variable with the name ``ANGLDEGX'' is found, then this information will be used as the angle (provided in degrees) between the connection face normal and the x axis, where a value of zero indicates that a normal vector points directly along the positive x axis. The connection face normal is a normal vector on the cell face shared between the cell in model 1 and the cell in model 2 pointing away from the model 1 cell. Additional information on ``ANGLDEGX'' is provided in the description of the DISU Package. ANGLDEGX must be specified if dispersion is simulated in the connected GWT models.
block options
name boundnames
@@ -267,6 +267,7 @@ reader urword
optional true
longname auxiliary variables
description represents the values of the auxiliary variables for each GWTGWT Exchange. The values of auxiliary variables must be present for each exchange. The values must be specified in the order of the auxiliary variables specified in the OPTIONS block.
+mf6internal auxvar
block exchangedata
name boundname
diff --git a/flopy/mf6/data/dfn/gwe-adv.dfn b/flopy/mf6/data/dfn/gwe-adv.dfn
new file mode 100644
index 000000000..682ed4a75
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-adv.dfn
@@ -0,0 +1,11 @@
+# --------------------- gwe adv options ---------------------
+
+block options
+name scheme
+type string
+valid central upstream tvd
+reader urword
+optional true
+longname advective scheme
+description scheme used to solve the advection term. Can be upstream, central, or TVD. If not specified, upstream weighting is the default weighting scheme.
+
diff --git a/flopy/mf6/data/dfn/gwe-cnd.dfn b/flopy/mf6/data/dfn/gwe-cnd.dfn
new file mode 100644
index 000000000..d9d51b301
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-cnd.dfn
@@ -0,0 +1,101 @@
+# --------------------- gwe cnd options ---------------------
+
+block options
+name xt3d_off
+type keyword
+shape
+reader urword
+optional true
+longname deactivate xt3d
+description deactivate the xt3d method and use the faster and less accurate approximation. This option may provide a fast and accurate solution under some circumstances, such as when flow aligns with the model grid, there is no mechanical dispersion, or when the longitudinal and transverse dispersivities are equal. This option may also be used to assess the computational demand of the XT3D approach by noting the run time differences with and without this option on.
+
+block options
+name xt3d_rhs
+type keyword
+shape
+reader urword
+optional true
+longname xt3d on right-hand side
+description add xt3d terms to right-hand side, when possible. This option uses less memory, but may require more iterations.
+
+block options
+name export_array_ascii
+type keyword
+reader urword
+optional true
+mf6internal export_ascii
+longname export array variables to layered ascii files.
+description keyword that specifies input griddata arrays should be written to layered ascii output files.
+
+# --------------------- gwe cnd griddata ---------------------
+
+block griddata
+name alh
+type double precision
+shape (nodes)
+reader readarray
+layered true
+optional true
+longname longitudinal dispersivity in horizontal direction
+description longitudinal dispersivity in horizontal direction. If flow is strictly horizontal, then this is the longitudinal dispersivity that will be used. If flow is not strictly horizontal or strictly vertical, then the longitudinal dispersivity is a function of both ALH and ALV. If mechanical dispersion is represented (by specifying any dispersivity values) then this array is required.
+
+block griddata
+name alv
+type double precision
+shape (nodes)
+reader readarray
+layered true
+optional true
+longname longitudinal dispersivity in vertical direction
+description longitudinal dispersivity in vertical direction. If flow is strictly vertical, then this is the longitudinal dispsersivity value that will be used. If flow is not strictly horizontal or strictly vertical, then the longitudinal dispersivity is a function of both ALH and ALV. If this value is not specified and mechanical dispersion is represented, then this array is set equal to ALH.
+
+block griddata
+name ath1
+type double precision
+shape (nodes)
+reader readarray
+layered true
+optional true
+longname transverse dispersivity in horizontal direction
+description transverse dispersivity in horizontal direction. This is the transverse dispersivity value for the second ellipsoid axis. If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this value controls spreading in the y direction. If mechanical dispersion is represented (by specifying any dispersivity values) then this array is required.
+
+block griddata
+name ath2
+type double precision
+shape (nodes)
+reader readarray
+layered true
+optional true
+longname transverse dispersivity in horizontal direction
+description transverse dispersivity in horizontal direction. This is the transverse dispersivity value for the third ellipsoid axis. If flow is strictly horizontal and directed in the x direction (along a row for a regular grid), then this value controls spreading in the z direction. If this value is not specified and mechanical dispersion is represented, then this array is set equal to ATH1.
+
+block griddata
+name atv
+type double precision
+shape (nodes)
+reader readarray
+layered true
+optional true
+longname transverse dispersivity when flow is in vertical direction
+description transverse dispersivity when flow is in vertical direction. If flow is strictly vertical and directed in the z direction, then this value controls spreading in the x and y directions. If this value is not specified and mechanical dispersion is represented, then this array is set equal to ATH2.
+
+block griddata
+name ktw
+type double precision
+shape (nodes)
+reader readarray
+layered true
+optional true
+longname thermal conductivity of the simulated fluid
+description thermal conductivity of the simulated fluid. Note that the CND Package does not account for the tortuosity of the flow paths when solving for the conductive spread of heat. If tortuosity plays an important role in the thermal conductivity calculation, its effect should be reflected in the value specified for KTW.
+
+block griddata
+name kts
+type double precision
+shape (nodes)
+reader readarray
+layered true
+optional true
+longname thermal conductivity of the aquifer material
+description thermal conductivity of the aquifer material
+
diff --git a/flopy/mf6/data/dfn/gwe-ctp.dfn b/flopy/mf6/data/dfn/gwe-ctp.dfn
new file mode 100644
index 000000000..d8dd2bc68
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-ctp.dfn
@@ -0,0 +1,213 @@
+# --------------------- gwe ctp options ---------------------
+# flopy multi-package
+
+block options
+name auxiliary
+type string
+shape (naux)
+reader urword
+optional true
+longname keyword to specify aux variables
+description REPLACE auxnames {'{#1}': 'Groundwater Energy Transport'}
+
+block options
+name auxmultname
+type string
+shape
+reader urword
+optional true
+longname name of auxiliary variable for multiplier
+description REPLACE auxmultname {'{#1}': 'temperature value'}
+
+block options
+name boundnames
+type keyword
+shape
+reader urword
+optional true
+longname
+description REPLACE boundnames {'{#1}': 'constant temperature'}
+
+block options
+name print_input
+type keyword
+reader urword
+optional true
+longname print input to listing file
+description REPLACE print_input {'{#1}': 'constant temperature'}
+mf6internal iprflow
+
+block options
+name print_flows
+type keyword
+reader urword
+optional true
+longname print calculated flows to listing file
+description REPLACE print_flows {'{#1}': 'constant temperature'}
+mf6internal ipakcb
+
+block options
+name save_flows
+type keyword
+reader urword
+optional true
+longname save constant temperature flows to budget file
+description REPLACE save_flows {'{#1}': 'constant temperature'}
+mf6internal iprpak
+
+block options
+name ts_filerecord
+type record ts6 filein ts6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ts6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname time series keyword
+description keyword to specify that record corresponds to a time-series file.
+
+block options
+name filein
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ts6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of time series information
+description REPLACE timeseriesfile {}
+
+block options
+name obs_filerecord
+type record obs6 filein obs6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name obs6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname obs keyword
+description keyword to specify that record corresponds to an observations file.
+
+block options
+name obs6_filename
+type string
+preserve_case true
+in_record true
+tagged false
+reader urword
+optional false
+longname obs6 input filename
+description REPLACE obs6_filename {'{#1}': 'Constant Temperature'}
+
+
+# --------------------- gwe ctp dimensions ---------------------
+
+block dimensions
+name maxbound
+type integer
+reader urword
+optional false
+longname maximum number of constant temperatures
+description REPLACE maxbound {'{#1}': 'constant temperatures'}
+
+
+# --------------------- gwe ctp period ---------------------
+
+block period
+name iper
+type integer
+block_variable True
+in_record true
+tagged false
+shape
+valid
+reader urword
+optional false
+longname stress period number
+description REPLACE iper {}
+
+block period
+name stress_period_data
+type recarray cellid temp aux boundname
+shape (maxbound)
+reader urword
+longname
+description
+mf6internal spd
+
+block period
+name cellid
+type integer
+shape (ncelldim)
+tagged false
+in_record true
+reader urword
+longname cell identifier
+description REPLACE cellid {}
+
+block period
+name temp
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+time_series true
+longname constant temperature value
+description is the constant temperature value. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+mf6internal tspvar
+
+block period
+name aux
+type double precision
+in_record true
+tagged false
+shape (naux)
+reader urword
+optional true
+time_series true
+longname auxiliary variables
+description REPLACE aux {'{#1}': 'constant temperature'}
+mf6internal auxvar
+
+block period
+name boundname
+type string
+shape
+tagged false
+in_record true
+reader urword
+optional true
+longname constant temperature name
+description REPLACE boundname {'{#1}': 'constant temperature'}
diff --git a/flopy/mf6/data/dfn/gwe-dis.dfn b/flopy/mf6/data/dfn/gwe-dis.dfn
new file mode 100644
index 000000000..2326105aa
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-dis.dfn
@@ -0,0 +1,130 @@
+# --------------------- gwe dis options ---------------------
+
+block options
+name length_units
+type string
+reader urword
+optional true
+longname model length units
+description is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''.
+
+block options
+name nogrb
+type keyword
+reader urword
+optional true
+longname do not write binary grid file
+description keyword to deactivate writing of the binary grid file.
+
+block options
+name xorigin
+type double precision
+reader urword
+optional true
+longname x-position of the model grid origin
+description x-position of the lower-left corner of the model grid. A default value of zero is assigned if not specified. The value for XORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space.
+
+block options
+name yorigin
+type double precision
+reader urword
+optional true
+longname y-position of the model grid origin
+description y-position of the lower-left corner of the model grid. If not specified, then a default value equal to zero is used. The value for YORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space.
+
+block options
+name angrot
+type double precision
+reader urword
+optional true
+longname rotation angle
+description counter-clockwise rotation angle (in degrees) of the lower-left corner of the model grid. If not specified, then a default value of 0.0 is assigned. The value for ANGROT does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space.
+
+block options
+name export_array_ascii
+type keyword
+reader urword
+optional true
+mf6internal export_ascii
+longname export array variables to layered ascii files.
+description keyword that specifies input griddata arrays should be written to layered ascii output files.
+
+# --------------------- gwe dis dimensions ---------------------
+
+block dimensions
+name nlay
+type integer
+reader urword
+optional false
+longname number of layers
+description is the number of layers in the model grid.
+default_value 1
+
+block dimensions
+name nrow
+type integer
+reader urword
+optional false
+longname number of rows
+description is the number of rows in the model grid.
+default_value 2
+
+block dimensions
+name ncol
+type integer
+reader urword
+optional false
+longname number of columns
+description is the number of columns in the model grid.
+default_value 2
+
+# --------------------- gwe dis griddata ---------------------
+
+block griddata
+name delr
+type double precision
+shape (ncol)
+reader readarray
+longname spacing along a row
+description is the column spacing in the row direction.
+default_value 1.0
+
+block griddata
+name delc
+type double precision
+shape (nrow)
+reader readarray
+longname spacing along a column
+description is the row spacing in the column direction.
+default_value 1.0
+
+block griddata
+name top
+type double precision
+shape (ncol, nrow)
+reader readarray
+longname cell top elevation
+description is the top elevation for each cell in the top model layer.
+default_value 1.0
+
+block griddata
+name botm
+type double precision
+shape (ncol, nrow, nlay)
+reader readarray
+layered true
+longname cell bottom elevation
+description is the bottom elevation for each cell.
+default_value 0.
+
+block griddata
+name idomain
+type integer
+shape (ncol, nrow, nlay)
+reader readarray
+layered true
+optional true
+longname idomain existence array
+description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1, the cell exists in the simulation. If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation. Furthermore, the first existing cell above will be connected to the first existing cell below. This type of cell is referred to as a ``vertical pass through'' cell.
+
+
diff --git a/flopy/mf6/data/dfn/gwe-disu.dfn b/flopy/mf6/data/dfn/gwe-disu.dfn
new file mode 100644
index 000000000..1b2035600
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-disu.dfn
@@ -0,0 +1,286 @@
+# --------------------- gwe disu options ---------------------
+
+block options
+name length_units
+type string
+reader urword
+optional true
+longname model length units
+description is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''.
+
+block options
+name nogrb
+type keyword
+reader urword
+optional true
+longname do not write binary grid file
+description keyword to deactivate writing of the binary grid file.
+
+block options
+name xorigin
+type double precision
+reader urword
+optional true
+longname x-position origin of the model grid coordinate system
+description x-position of the origin used for model grid vertices. This value should be provided in a real-world coordinate system. A default value of zero is assigned if not specified. The value for XORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space.
+
+block options
+name yorigin
+type double precision
+reader urword
+optional true
+longname y-position origin of the model grid coordinate system
+description y-position of the origin used for model grid vertices. This value should be provided in a real-world coordinate system. If not specified, then a default value equal to zero is used. The value for YORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space.
+
+block options
+name angrot
+type double precision
+reader urword
+optional true
+longname rotation angle
+description counter-clockwise rotation angle (in degrees) of the model grid coordinate system relative to a real-world coordinate system. If not specified, then a default value of 0.0 is assigned. The value for ANGROT does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space.
+
+block options
+name vertical_offset_tolerance
+type double precision
+reader urword
+optional true
+default_value 0.0
+longname vertical length dimension for top and bottom checking
+description checks are performed to ensure that the top of a cell is not higher than the bottom of an overlying cell. This option can be used to specify the tolerance that is used for checking. If top of a cell is above the bottom of an overlying cell by a value less than this tolerance, then the program will not terminate with an error. The default value is zero. This option should generally not be used.
+mf6internal voffsettol
+
+block options
+name export_array_ascii
+type keyword
+reader urword
+optional true
+mf6internal export_ascii
+longname export array variables to layered ascii files.
+description keyword that specifies input griddata arrays should be written to layered ascii output files.
+
+# --------------------- gwe disu dimensions ---------------------
+
+block dimensions
+name nodes
+type integer
+reader urword
+optional false
+longname number of layers
+description is the number of cells in the model grid.
+
+block dimensions
+name nja
+type integer
+reader urword
+optional false
+longname number of columns
+description is the sum of the number of connections and NODES. When calculating the total number of connections, the connection between cell n and cell m is considered to be different from the connection between cell m and cell n. Thus, NJA is equal to the total number of connections, including n to m and m to n, and the total number of cells.
+
+block dimensions
+name nvert
+type integer
+reader urword
+optional true
+longname number of vertices
+description is the total number of (x, y) vertex pairs used to define the plan-view shape of each cell in the model grid. If NVERT is not specified or is specified as zero, then the VERTICES and CELL2D blocks below are not read. NVERT and the accompanying VERTICES and CELL2D blocks should be specified for most simulations. If the XT3D or SAVE\_SPECIFIC\_DISCHARGE options are specified in the NPF Package, then this information is required.
+
+# --------------------- gwe disu griddata ---------------------
+
+block griddata
+name top
+type double precision
+shape (nodes)
+reader readarray
+longname cell top elevation
+description is the top elevation for each cell in the model grid.
+
+block griddata
+name bot
+type double precision
+shape (nodes)
+reader readarray
+longname cell bottom elevation
+description is the bottom elevation for each cell.
+
+block griddata
+name area
+type double precision
+shape (nodes)
+reader readarray
+longname cell surface area
+description is the cell surface area (in plan view).
+
+block griddata
+name idomain
+type integer
+shape (nodes)
+reader readarray
+layered false
+optional true
+longname idomain existence array
+description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1 or greater, the cell exists in the simulation. IDOMAIN values of -1 cannot be specified for the DISU Package.
+
+# --------------------- gwe disu connectiondata ---------------------
+
+block connectiondata
+name iac
+type integer
+shape (nodes)
+reader readarray
+longname number of cell connections
+description is the number of connections (plus 1) for each cell. The sum of all the entries in IAC must be equal to NJA.
+
+block connectiondata
+name ja
+type integer
+shape (nja)
+reader readarray
+longname grid connectivity
+description is a list of cell number (n) followed by its connecting cell numbers (m) for each of the m cells connected to cell n. The number of values to provide for cell n is IAC(n). This list is sequentially provided for the first to the last cell. The first value in the list must be cell n itself, and the remaining cells must be listed in an increasing order (sorted from lowest number to highest). Note that the cell and its connections are only supplied for the GWE cells and their connections to the other GWE cells. Also note that the JA list input may be divided such that every node and its connectivity list can be on a separate line for ease in readability of the file. To further ease readability of the file, the node number of the cell whose connectivity is subsequently listed, may be expressed as a negative number, the sign of which is subsequently converted to positive by the code.
+numeric_index true
+jagged_array iac
+
+block connectiondata
+name ihc
+type integer
+shape (nja)
+reader readarray
+longname connection type
+description is an index array indicating the direction between node n and all of its m connections. If IHC = 0 then cell n and cell m are connected in the vertical direction. Cell n overlies cell m if the cell number for n is less than m; cell m overlies cell n if the cell number for m is less than n. If IHC = 1 then cell n and cell m are connected in the horizontal direction. If IHC = 2 then cell n and cell m are connected in the horizontal direction, and the connection is vertically staggered. A vertically staggered connection is one in which a cell is horizontally connected to more than one cell in a horizontal connection.
+jagged_array iac
+
+block connectiondata
+name cl12
+type double precision
+shape (nja)
+reader readarray
+longname connection lengths
+description is the array containing connection lengths between the center of cell n and the shared face with each adjacent m cell.
+jagged_array iac
+
+block connectiondata
+name hwva
+type double precision
+shape (nja)
+reader readarray
+longname connection lengths
+description is a symmetric array of size NJA. For horizontal connections, entries in HWVA are the horizontal width perpendicular to flow. For vertical connections, entries in HWVA are the vertical area for flow. Thus, values in the HWVA array contain dimensions of both length and area. Entries in the HWVA array have a one-to-one correspondence with the connections specified in the JA array. Likewise, there is a one-to-one correspondence between entries in the HWVA array and entries in the IHC array, which specifies the connection type (horizontal or vertical). Entries in the HWVA array must be symmetric; the program will terminate with an error if the value for HWVA for an n to m connection does not equal the value for HWVA for the corresponding n to m connection.
+jagged_array iac
+
+block connectiondata
+name angldegx
+type double precision
+optional true
+shape (nja)
+reader readarray
+longname angle of face normal to connection
+description is the angle (in degrees) between the horizontal x-axis and the outward normal to the face between a cell and its connecting cells. The angle varies between zero and 360.0 degrees, where zero degrees points in the positive x-axis direction, and 90 degrees points in the positive y-axis direction. ANGLDEGX is only needed if horizontal anisotropy is specified in the NPF Package, if the XT3D option is used in the NPF Package, or if the SAVE\_SPECIFIC\_DISCHARGE option is specified in the NPF Package. ANGLDEGX does not need to be specified if these conditions are not met. ANGLDEGX is of size NJA; values specified for vertical connections and for the diagonal position are not used. Note that ANGLDEGX is read in degrees, which is different from MODFLOW-USG, which reads a similar variable (ANGLEX) in radians.
+jagged_array iac
+
+# --------------------- gwe disu vertices ---------------------
+
+block vertices
+name vertices
+type recarray iv xv yv
+shape (nvert)
+reader urword
+optional false
+longname vertices data
+description
+
+block vertices
+name iv
+type integer
+in_record true
+tagged false
+reader urword
+optional false
+longname vertex number
+description is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT.
+numeric_index true
+
+block vertices
+name xv
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname x-coordinate for vertex
+description is the x-coordinate for the vertex.
+
+block vertices
+name yv
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname y-coordinate for vertex
+description is the y-coordinate for the vertex.
+
+
+# --------------------- gwe disu cell2d ---------------------
+
+block cell2d
+name cell2d
+type recarray icell2d xc yc ncvert icvert
+shape (nodes)
+reader urword
+optional false
+longname cell2d data
+description
+
+block cell2d
+name icell2d
+type integer
+in_record true
+tagged false
+reader urword
+optional false
+longname cell2d number
+description is the cell2d number. Records in the CELL2D block must be listed in consecutive order from 1 to NODES.
+numeric_index true
+
+block cell2d
+name xc
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname x-coordinate for cell center
+description is the x-coordinate for the cell center.
+
+block cell2d
+name yc
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname y-coordinate for cell center
+description is the y-coordinate for the cell center.
+
+block cell2d
+name ncvert
+type integer
+in_record true
+tagged false
+reader urword
+optional false
+longname number of cell vertices
+description is the number of vertices required to define the cell. There may be a different number of vertices for each cell.
+
+block cell2d
+name icvert
+type integer
+shape (ncvert)
+in_record true
+tagged false
+reader urword
+optional false
+longname array of vertex numbers
+description is an array of integer values containing vertex numbers (in the VERTICES block) used to define the cell. Vertices must be listed in clockwise order.
+numeric_index true
diff --git a/flopy/mf6/data/dfn/gwe-disv.dfn b/flopy/mf6/data/dfn/gwe-disv.dfn
new file mode 100644
index 000000000..ff91ef0cf
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-disv.dfn
@@ -0,0 +1,213 @@
+# --------------------- gwe disv options ---------------------
+
+block options
+name length_units
+type string
+reader urword
+optional true
+longname model length units
+description is the length units used for this model. Values can be ``FEET'', ``METERS'', or ``CENTIMETERS''. If not specified, the default is ``UNKNOWN''.
+
+block options
+name nogrb
+type keyword
+reader urword
+optional true
+longname do not write binary grid file
+description keyword to deactivate writing of the binary grid file.
+
+block options
+name xorigin
+type double precision
+reader urword
+optional true
+longname x-position origin of the model grid coordinate system
+description x-position of the origin used for model grid vertices. This value should be provided in a real-world coordinate system. A default value of zero is assigned if not specified. The value for XORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space.
+
+block options
+name yorigin
+type double precision
+reader urword
+optional true
+longname y-position origin of the model grid coordinate system
+description y-position of the origin used for model grid vertices. This value should be provided in a real-world coordinate system. If not specified, then a default value equal to zero is used. The value for YORIGIN does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space.
+
+block options
+name angrot
+type double precision
+reader urword
+optional true
+longname rotation angle
+description counter-clockwise rotation angle (in degrees) of the model grid coordinate system relative to a real-world coordinate system. If not specified, then a default value of 0.0 is assigned. The value for ANGROT does not affect the model simulation, but it is written to the binary grid file so that postprocessors can locate the grid in space.
+
+block options
+name export_array_ascii
+type keyword
+reader urword
+optional true
+mf6internal export_ascii
+longname export array variables to layered ascii files.
+description keyword that specifies input griddata arrays should be written to layered ascii output files.
+
+# --------------------- gwe disv dimensions ---------------------
+
+block dimensions
+name nlay
+type integer
+reader urword
+optional false
+longname number of layers
+description is the number of layers in the model grid.
+
+block dimensions
+name ncpl
+type integer
+reader urword
+optional false
+longname number of cells per layer
+description is the number of cells per layer. This is a constant value for the grid and it applies to all layers.
+
+block dimensions
+name nvert
+type integer
+reader urword
+optional false
+longname number of columns
+description is the total number of (x, y) vertex pairs used to characterize the horizontal configuration of the model grid.
+
+# --------------------- gwe disv griddata ---------------------
+
+block griddata
+name top
+type double precision
+shape (ncpl)
+reader readarray
+longname model top elevation
+description is the top elevation for each cell in the top model layer.
+
+block griddata
+name botm
+type double precision
+shape (ncpl, nlay)
+reader readarray
+layered true
+longname model bottom elevation
+description is the bottom elevation for each cell.
+
+block griddata
+name idomain
+type integer
+shape (ncpl, nlay)
+reader readarray
+layered true
+optional true
+longname idomain existence array
+description is an optional array that characterizes the existence status of a cell. If the IDOMAIN array is not specified, then all model cells exist within the solution. If the IDOMAIN value for a cell is 0, the cell does not exist in the simulation. Input and output values will be read and written for the cell, but internal to the program, the cell is excluded from the solution. If the IDOMAIN value for a cell is 1, the cell exists in the simulation. If the IDOMAIN value for a cell is -1, the cell does not exist in the simulation. Furthermore, the first existing cell above will be connected to the first existing cell below. This type of cell is referred to as a ``vertical pass through'' cell.
+
+
+# --------------------- gwe disv vertices ---------------------
+
+block vertices
+name vertices
+type recarray iv xv yv
+shape (nvert)
+reader urword
+optional false
+longname vertices data
+description
+
+block vertices
+name iv
+type integer
+in_record true
+tagged false
+reader urword
+optional false
+longname vertex number
+description is the vertex number. Records in the VERTICES block must be listed in consecutive order from 1 to NVERT.
+numeric_index true
+
+block vertices
+name xv
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname x-coordinate for vertex
+description is the x-coordinate for the vertex.
+
+block vertices
+name yv
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname y-coordinate for vertex
+description is the y-coordinate for the vertex.
+
+
+# --------------------- gwe disv cell2d ---------------------
+
+block cell2d
+name cell2d
+type recarray icell2d xc yc ncvert icvert
+shape (ncpl)
+reader urword
+optional false
+longname cell2d data
+description
+
+block cell2d
+name icell2d
+type integer
+in_record true
+tagged false
+reader urword
+optional false
+longname cell2d number
+description is the CELL2D number. Records in the CELL2D block must be listed in consecutive order from the first to the last.
+numeric_index true
+
+block cell2d
+name xc
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname x-coordinate for cell center
+description is the x-coordinate for the cell center.
+
+block cell2d
+name yc
+type double precision
+in_record true
+tagged false
+reader urword
+optional false
+longname y-coordinate for cell center
+description is the y-coordinate for the cell center.
+
+block cell2d
+name ncvert
+type integer
+in_record true
+tagged false
+reader urword
+optional false
+longname number of cell vertices
+description is the number of vertices required to define the cell. There may be a different number of vertices for each cell.
+
+block cell2d
+name icvert
+type integer
+shape (ncvert)
+in_record true
+tagged false
+reader urword
+optional false
+longname array of vertex numbers
+description is an array of integer values containing vertex numbers (in the VERTICES block) used to define the cell. Vertices must be listed in clockwise order. Cells that are connected must share vertices.
+numeric_index true
diff --git a/flopy/mf6/data/dfn/gwe-esl.dfn b/flopy/mf6/data/dfn/gwe-esl.dfn
new file mode 100644
index 000000000..534db1b02
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-esl.dfn
@@ -0,0 +1,205 @@
+# --------------------- gwe esl options ---------------------
+
+block options
+name auxiliary
+type string
+shape (naux)
+reader urword
+optional true
+longname keyword to specify aux variables
+description REPLACE auxnames {'{#1}': 'Groundwater Energy Transport'}
+
+block options
+name auxmultname
+type string
+shape
+reader urword
+optional true
+longname name of auxiliary variable for multiplier
+description REPLACE auxmultname {'{#1}': 'energy loading rate'}
+
+block options
+name boundnames
+type keyword
+shape
+reader urword
+optional true
+longname
+description REPLACE boundnames {'{#1}': 'energy source loading'}
+
+block options
+name print_input
+type keyword
+reader urword
+optional true
+longname print input to listing file
+description REPLACE print_input {'{#1}': 'energy source loading'}
+
+block options
+name print_flows
+type keyword
+reader urword
+optional true
+longname print calculated flows to listing file
+description REPLACE print_flows {'{#1}': 'energy source loading'}
+
+block options
+name save_flows
+type keyword
+reader urword
+optional true
+longname save well flows to budget file
+description REPLACE save_flows {'{#1}': 'energy source loading'}
+
+block options
+name ts_filerecord
+type record ts6 filein ts6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ts6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname head keyword
+description keyword to specify that record corresponds to a time-series file.
+
+block options
+name filein
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ts6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of time series information
+description REPLACE timeseriesfile {}
+
+block options
+name obs_filerecord
+type record obs6 filein obs6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name obs6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname obs keyword
+description keyword to specify that record corresponds to an observations file.
+
+block options
+name obs6_filename
+type string
+preserve_case true
+in_record true
+tagged false
+reader urword
+optional false
+longname obs6 input filename
+description REPLACE obs6_filename {'{#1}': 'Energy Source Loading'}
+
+# --------------------- gwe esl dimensions ---------------------
+
+block dimensions
+name maxbound
+type integer
+reader urword
+optional false
+longname maximum number of sources
+description REPLACE maxbound {'{#1}': 'sources'}
+
+
+# --------------------- gwe esl period ---------------------
+
+block period
+name iper
+type integer
+block_variable True
+in_record true
+tagged false
+shape
+valid
+reader urword
+optional false
+longname stress period number
+description REPLACE iper {}
+
+block period
+name stress_period_data
+type recarray cellid senerrate aux boundname
+shape (maxbound)
+reader urword
+longname
+description
+
+block period
+name cellid
+type integer
+shape (ncelldim)
+tagged false
+in_record true
+reader urword
+longname cell identifier
+description REPLACE cellid {}
+
+block period
+name senerrate
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+time_series true
+longname energy source loading rate
+description is the energy source loading rate. A positive value indicates addition of energy and a negative value indicates removal of energy. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+
+block period
+name aux
+type double precision
+in_record true
+tagged false
+shape (naux)
+reader urword
+optional true
+time_series true
+longname auxiliary variables
+description REPLACE aux {'{#1}': 'energy source'}
+
+block period
+name boundname
+type string
+shape
+tagged false
+in_record true
+reader urword
+optional true
+longname well name
+description REPLACE boundname {'{#1}': 'energy source'}
diff --git a/flopy/mf6/data/dfn/gwe-est.dfn b/flopy/mf6/data/dfn/gwe-est.dfn
new file mode 100644
index 000000000..22181237c
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-est.dfn
@@ -0,0 +1,106 @@
+# --------------------- gwe est options ---------------------
+
+block options
+name save_flows
+type keyword
+reader urword
+optional true
+longname save calculated flows to budget file
+description REPLACE save_flows {'{#1}': 'EST'}
+
+block options
+name zero_order_decay
+type keyword
+reader urword
+optional true
+longname activate zero-order decay
+description is a text keyword to indicate that zero-order decay will occur. Use of this keyword requires that DECAY and DECAY\_SORBED (if sorption is active) are specified in the GRIDDATA block.
+
+block options
+name latent_heat_vaporization
+type keyword
+reader urword
+optional true
+longname activate cooling associated with evaporation
+description is a text keyword to indicate that cooling associated with evaporation will occur. Use of this keyword requires that LATHEATVAP are specified in the GRIDDATA block. While the EST package does not simulate evaporation, multiple other packages in a GWE simulation may. For example, evaporation may occur from the surface of streams or lakes. Owing to the energy consumed by the change in phase, the latent heat of vaporization is required.
+
+# --------------------- gwe est griddata ---------------------
+
+block griddata
+name porosity
+type double precision
+shape (nodes)
+reader readarray
+layered true
+longname porosity
+description is the mobile domain porosity, defined as the mobile domain pore volume per mobile domain volume. The GWE model does not support the concept of an immobile domain in the context of heat transport.
+
+block griddata
+name decay
+type double precision
+shape (nodes)
+reader readarray
+layered true
+optional true
+longname aqueous phase decay rate coefficient
+description is the rate coefficient for zero-order decay for the aqueous phase of the mobile domain. A negative value indicates heat (energy) production. The dimensions of decay for zero-order decay is energy per length cubed per time. Zero-order decay will have no effect on simulation results unless zero-order decay is specified in the options block.
+
+block griddata
+name cps
+type double precision
+shape (nodes)
+reader readarray
+layered true
+longname heat capacity of the aquifer material
+description is the mass-based heat capacity of dry solids (aquifer material). For example, units of J/kg/C may be used (or equivalent).
+
+block griddata
+name rhos
+type double precision
+shape (nodes)
+reader readarray
+layered true
+longname density of aquifer material
+description is a user-specified value of the density of aquifer material not considering the voids. Value will remain fixed for the entire simulation. For example, if working in SI units, values may be entered as kilograms per cubic meter.
+
+# --------------------- gwe est packagedata ---------------------
+
+block packagedata
+name packagedata
+type recarray cpw rhow latheatvap
+shape
+reader urword
+longname
+description
+
+block packagedata
+name cpw
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname heat capacity of water
+description is the mass-based heat capacity of the simulated fluid. For example, units of J/kg/C may be used (or equivalent).
+
+block packagedata
+name rhow
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname density of water
+description is a user-specified value of the density of water. Value will remain fixed for the entire simulation. For example, if working in SI units, values may be entered as kilograms per cubic meter.
+
+
+block packagedata
+name latheatvap
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname latent heat of vaporization
+description is the user-specified value for the latent heat of vaporization. For example, if working in SI units, values may be entered as kJ/kg.
+
diff --git a/flopy/mf6/data/dfn/gwe-fmi.dfn b/flopy/mf6/data/dfn/gwe-fmi.dfn
new file mode 100644
index 000000000..fb71131e6
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-fmi.dfn
@@ -0,0 +1,58 @@
+# --------------------- gwe fmi options ---------------------
+
+block options
+name save_flows
+type keyword
+reader urword
+optional true
+longname save calculated flow imbalance correction to budget file
+description REPLACE save_flows {'{#1}': 'FMI'}
+
+block options
+name flow_imbalance_correction
+type keyword
+reader urword
+optional true
+longname correct for flow imbalance
+description correct for an imbalance in flows by assuming that any residual flow error comes in or leaves at the temperature of the cell. When this option is activated, the GWE Model budget written to the listing file will contain two additional entries: FLOW-ERROR and FLOW-CORRECTION. These two entries will be equal but opposite in sign. The FLOW-CORRECTION term is a mass flow that is added to offset the error caused by an imprecise flow balance. If these terms are not relatively small, the flow model should be rerun with stricter convergence tolerances.
+
+# --------------------- gwe fmi packagedata ---------------------
+
+block packagedata
+name packagedata
+type recarray flowtype filein fname
+reader urword
+optional false
+longname flowtype list
+description
+
+block packagedata
+name flowtype
+in_record true
+type string
+tagged false
+reader urword
+longname flow type
+description is the word GWFBUDGET, GWFHEAD, GWFMOVER or the name of an advanced GWF stress package. If GWFBUDGET is specified, then the corresponding file must be a budget file from a previous GWF Model run. If an advanced GWF stress package name appears then the corresponding file must be the budget file saved by a LAK, SFR, MAW or UZF Package.
+
+block packagedata
+name filein
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block packagedata
+name fname
+in_record true
+type string
+preserve_case true
+tagged false
+reader urword
+longname file name
+description is the name of the file containing flows. The path to the file should be included if the file is not located in the folder where the program was run.
+
diff --git a/flopy/mf6/data/dfn/gwe-ic.dfn b/flopy/mf6/data/dfn/gwe-ic.dfn
new file mode 100644
index 000000000..6bd80b3de
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-ic.dfn
@@ -0,0 +1,22 @@
+# --------------------- gwe ic options ---------------------
+
+block options
+name export_array_ascii
+type keyword
+reader urword
+optional true
+mf6internal export_ascii
+longname export array variables to layered ascii files.
+description keyword that specifies input griddata arrays should be written to layered ascii output files.
+
+# --------------------- gwe ic griddata ---------------------
+
+block griddata
+name strt
+type double precision
+shape (nodes)
+reader readarray
+layered true
+longname starting temperature
+description is the initial (starting) temperature---that is, the temperature at the beginning of the GWE Model simulation. STRT must be specified for all GWE Model simulations. One value is read for every model cell.
+default_value 0.0
diff --git a/flopy/mf6/data/dfn/gwe-lke.dfn b/flopy/mf6/data/dfn/gwe-lke.dfn
new file mode 100644
index 000000000..b59b50420
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-lke.dfn
@@ -0,0 +1,481 @@
+# --------------------- gwe lke options ---------------------
+# flopy multi-package
+
+block options
+name flow_package_name
+type string
+shape
+reader urword
+optional true
+longname keyword to specify name of corresponding flow package
+description keyword to specify the name of the corresponding flow package. If not specified, then the corresponding flow package must have the same name as this advanced transport package (the name associated with this package in the GWE name file).
+
+block options
+name auxiliary
+type string
+shape (naux)
+reader urword
+optional true
+longname keyword to specify aux variables
+description REPLACE auxnames {'{#1}': 'Groundwater Energy Transport'}
+
+block options
+name flow_package_auxiliary_name
+type string
+shape
+reader urword
+optional true
+longname keyword to specify name of temperature auxiliary variable in flow package
+description keyword to specify the name of an auxiliary variable in the corresponding flow package. If specified, then the simulated temperatures from this advanced transport package will be copied into the auxiliary variable specified with this name. Note that the flow package must have an auxiliary variable with this name or the program will terminate with an error. If the flows for this advanced transport package are read from a file, then this option will have no effect.
+
+block options
+name boundnames
+type keyword
+shape
+reader urword
+optional true
+longname
+description REPLACE boundnames {'{#1}': 'lake'}
+
+block options
+name print_input
+type keyword
+reader urword
+optional true
+longname print input to listing file
+description REPLACE print_input {'{#1}': 'lake'}
+
+block options
+name print_temperature
+type keyword
+reader urword
+optional true
+longname print calculated temperatures to listing file
+description REPLACE print_temperature {'{#1}': 'lake', '{#2}': 'temperature', '{#3}': 'TEMPERATURE'}
+
+block options
+name print_flows
+type keyword
+reader urword
+optional true
+longname print calculated flows to listing file
+description REPLACE print_flows {'{#1}': 'lake'}
+
+block options
+name save_flows
+type keyword
+reader urword
+optional true
+longname save lake flows to budget file
+description REPLACE save_flows {'{#1}': 'lake'}
+
+block options
+name temperature_filerecord
+type record temperature fileout tempfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name temperature
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname stage keyword
+description keyword to specify that record corresponds to temperature.
+
+block options
+name tempfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the binary output file to write temperature information.
+
+block options
+name budget_filerecord
+type record budget fileout budgetfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name budget
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to the budget.
+
+block options
+name fileout
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an output filename is expected next.
+
+block options
+name budgetfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the binary output file to write budget information.
+
+block options
+name budgetcsv_filerecord
+type record budgetcsv fileout budgetcsvfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name budgetcsv
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to the budget CSV.
+
+block options
+name budgetcsvfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation.
+
+block options
+name ts_filerecord
+type record ts6 filein ts6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ts6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname head keyword
+description keyword to specify that record corresponds to a time-series file.
+
+block options
+name filein
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ts6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of time series information
+description REPLACE timeseriesfile {}
+
+block options
+name obs_filerecord
+type record obs6 filein obs6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name obs6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname obs keyword
+description keyword to specify that record corresponds to an observations file.
+
+block options
+name obs6_filename
+type string
+preserve_case true
+in_record true
+tagged false
+reader urword
+optional false
+longname obs6 input filename
+description REPLACE obs6_filename {'{#1}': 'LKE'}
+
+
+# --------------------- gwe lke packagedata ---------------------
+
+block packagedata
+name packagedata
+type recarray lakeno strt ktf rbthcnd aux boundname
+shape (maxbound)
+reader urword
+longname
+description
+
+block packagedata
+name lakeno
+type integer
+shape
+tagged false
+in_record true
+reader urword
+longname lake number for this entry
+description integer value that defines the lake number associated with the specified PACKAGEDATA data on the line. LAKENO must be greater than zero and less than or equal to NLAKES. Lake information must be specified for every lake or the program will terminate with an error. The program will also terminate with an error if information for a lake is specified more than once.
+numeric_index true
+
+block packagedata
+name strt
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname starting lake temperature
+description real value that defines the starting temperature for the lake.
+
+block packagedata
+name ktf
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname boundary thermal conductivity
+description is the thermal conductivity of the of the interface between the aquifer cell and the lake.
+
+block packagedata
+name rbthcnd
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname streambed thickness
+description real value that defines the thickness of the lakebed material through which conduction occurs. Must be greater than 0.
+
+block packagedata
+name aux
+type double precision
+in_record true
+tagged false
+shape (naux)
+reader urword
+time_series true
+optional true
+longname auxiliary variables
+description REPLACE aux {'{#1}': 'lake'}
+
+block packagedata
+name boundname
+type string
+shape
+tagged false
+in_record true
+reader urword
+optional true
+longname lake name
+description REPLACE boundname {'{#1}': 'lake'}
+
+
+# --------------------- gwe lke period ---------------------
+
+block period
+name iper
+type integer
+block_variable True
+in_record true
+tagged false
+shape
+valid
+reader urword
+optional false
+longname stress period number
+description REPLACE iper {}
+
+block period
+name lakeperioddata
+type recarray lakeno laksetting
+shape
+reader urword
+longname
+description
+
+block period
+name lakeno
+type integer
+shape
+tagged false
+in_record true
+reader urword
+longname lake number for this entry
+description integer value that defines the lake number associated with the specified PERIOD data on the line. LAKENO must be greater than zero and less than or equal to NLAKES.
+numeric_index true
+
+block period
+name laksetting
+type keystring status temperature rainfall evaporation runoff ext-inflow auxiliaryrecord
+shape
+tagged false
+in_record true
+reader urword
+longname
+description line of information that is parsed into a keyword and values. Keyword values that can be used to start the LAKSETTING string include: STATUS, TEMPERATURE, RAINFALL, EVAPORATION, RUNOFF, and AUXILIARY. These settings are used to assign the temperature associated with the corresponding flow terms. Temperatures cannot be specified for all flow terms. For example, the Lake Package supports a ``WITHDRAWAL'' flow term. If this withdrawal term is active, then water will be withdrawn from the lake at the calculated temperature of the lake.
+
+block period
+name status
+type string
+shape
+tagged true
+in_record true
+reader urword
+longname lake temperature status
+description keyword option to define lake status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is ACTIVE, which means that temperature will be calculated for the lake. If a lake is inactive, then there will be no solute mass fluxes into or out of the lake and the inactive value will be written for the lake temperature. If a lake is constant, then the temperature for the lake will be fixed at the user specified value.
+
+block period
+name temperature
+type string
+shape
+tagged true
+in_record true
+time_series true
+reader urword
+longname lake temperature
+description real or character value that defines the temperature for the lake. The specified TEMPERATURE is only applied if the lake is a constant temperature lake. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+
+block period
+name rainfall
+type string
+shape
+tagged true
+in_record true
+reader urword
+time_series true
+longname rainfall temperature
+description real or character value that defines the rainfall temperature for the lake. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+
+block period
+name evaporation
+type string
+shape
+tagged true
+in_record true
+reader urword
+time_series true
+longname evaporation temperature
+description real or character value that defines the temperature of evaporated water $(^{\circ}C)$ for the reach. If this temperature value is larger than the simulated temperature in the reach, then the evaporated water will be removed at the same temperature as the reach. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+
+
+block period
+name runoff
+type string
+shape
+tagged true
+in_record true
+reader urword
+time_series true
+longname runoff temperature
+description real or character value that defines the temperature of runoff for the lake. Value must be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+
+block period
+name ext-inflow
+type string
+shape
+tagged true
+in_record true
+reader urword
+time_series true
+longname ext-inflow temperature
+description real or character value that defines the temperature of external inflow for the lake. Value must be greater than or equal to zero. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+
+block period
+name auxiliaryrecord
+type record auxiliary auxname auxval
+shape
+tagged
+in_record true
+reader urword
+longname
+description
+
+block period
+name auxiliary
+type keyword
+shape
+in_record true
+reader urword
+longname
+description keyword for specifying auxiliary variable.
+
+block period
+name auxname
+type string
+shape
+tagged false
+in_record true
+reader urword
+longname
+description name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable names defined in the OPTIONS block the data are ignored.
+
+block period
+name auxval
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+time_series true
+longname auxiliary variable value
+description value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
diff --git a/flopy/mf6/data/dfn/gwe-mve.dfn b/flopy/mf6/data/dfn/gwe-mve.dfn
new file mode 100644
index 000000000..e67e76ba4
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-mve.dfn
@@ -0,0 +1,106 @@
+# --------------------- gwe mve options ---------------------
+# flopy subpackage mve_filerecord mve perioddata perioddata
+# flopy parent_name_type parent_model_or_package MFModel/MFPackage
+
+block options
+name print_input
+type keyword
+reader urword
+optional true
+longname print input to listing file
+description REPLACE print_input {'{#1}': 'mover'}
+
+block options
+name print_flows
+type keyword
+reader urword
+optional true
+longname print calculated flows to listing file
+description REPLACE print_flows {'{#1}': 'lake'}
+
+block options
+name save_flows
+type keyword
+reader urword
+optional true
+longname save lake flows to budget file
+description REPLACE save_flows {'{#1}': 'lake'}
+
+block options
+name budget_filerecord
+type record budget fileout budgetfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name budget
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to the budget.
+
+block options
+name fileout
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an output filename is expected next.
+
+block options
+name budgetfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the binary output file to write budget information.
+
+block options
+name budgetcsv_filerecord
+type record budgetcsv fileout budgetcsvfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name budgetcsv
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to the budget CSV.
+
+block options
+name budgetcsvfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation.
+
+
diff --git a/flopy/mf6/data/dfn/gwe-mwe.dfn b/flopy/mf6/data/dfn/gwe-mwe.dfn
new file mode 100644
index 000000000..c805b6533
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-mwe.dfn
@@ -0,0 +1,447 @@
+# --------------------- gwe mwe options ---------------------
+# flopy multi-package
+
+block options
+name flow_package_name
+type string
+shape
+reader urword
+optional true
+longname keyword to specify name of corresponding flow package
+description keyword to specify the name of the corresponding flow package. If not specified, then the corresponding flow package must have the same name as this advanced transport package (the name associated with this package in the GWE name file).
+
+block options
+name auxiliary
+type string
+shape (naux)
+reader urword
+optional true
+longname keyword to specify aux variables
+description REPLACE auxnames {'{#1}': 'Groundwater Energy Transport'}
+
+block options
+name flow_package_auxiliary_name
+type string
+shape
+reader urword
+optional true
+longname keyword to specify name of temperature auxiliary variable in flow package
+description keyword to specify the name of an auxiliary variable in the corresponding flow package. If specified, then the simulated temperatures from this advanced transport package will be copied into the auxiliary variable specified with this name. Note that the flow package must have an auxiliary variable with this name or the program will terminate with an error. If the flows for this advanced transport package are read from a file, then this option will have no effect.
+
+block options
+name boundnames
+type keyword
+shape
+reader urword
+optional true
+longname
+description REPLACE boundnames {'{#1}': 'well'}
+
+block options
+name print_input
+type keyword
+reader urword
+optional true
+longname print input to listing file
+description REPLACE print_input {'{#1}': 'well'}
+
+block options
+name print_temperature
+type keyword
+reader urword
+optional true
+longname print calculated temperatures to listing file
+description REPLACE print_temperature {'{#1}': 'well', '{#2}': 'temperature', '{#3}': 'TEMPERATURE'}
+
+block options
+name print_flows
+type keyword
+reader urword
+optional true
+longname print calculated flows to listing file
+description REPLACE print_flows {'{#1}': 'well'}
+
+block options
+name save_flows
+type keyword
+reader urword
+optional true
+longname save well flows to budget file
+description REPLACE save_flows {'{#1}': 'well'}
+
+block options
+name temperature_filerecord
+type record temperature fileout tempfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name temperature
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname stage keyword
+description keyword to specify that record corresponds to temperature.
+
+block options
+name tempfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the binary output file to write temperature information.
+
+block options
+name budget_filerecord
+type record budget fileout budgetfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name budget
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to the budget.
+
+block options
+name fileout
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an output filename is expected next.
+
+block options
+name budgetfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the binary output file to write budget information.
+
+block options
+name budgetcsv_filerecord
+type record budgetcsv fileout budgetcsvfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name budgetcsv
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to the budget CSV.
+
+block options
+name budgetcsvfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation.
+
+block options
+name ts_filerecord
+type record ts6 filein ts6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name ts6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname head keyword
+description keyword to specify that record corresponds to a time-series file.
+
+block options
+name filein
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an input filename is expected next.
+
+block options
+name ts6_filename
+type string
+preserve_case true
+in_record true
+reader urword
+optional false
+tagged false
+longname file name of time series information
+description REPLACE timeseriesfile {}
+
+block options
+name obs_filerecord
+type record obs6 filein obs6_filename
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name obs6
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname obs keyword
+description keyword to specify that record corresponds to an observations file.
+
+block options
+name obs6_filename
+type string
+preserve_case true
+in_record true
+tagged false
+reader urword
+optional false
+longname obs6 input filename
+description REPLACE obs6_filename {'{#1}': 'MWE'}
+
+
+# --------------------- gwe mwe packagedata ---------------------
+
+block packagedata
+name packagedata
+type recarray mawno strt ktf fthk aux boundname
+shape (maxbound)
+reader urword
+longname
+description
+
+block packagedata
+name mawno
+type integer
+shape
+tagged false
+in_record true
+reader urword
+longname well number for this entry
+description integer value that defines the well number associated with the specified PACKAGEDATA data on the line. MAWNO must be greater than zero and less than or equal to NMAWWELLS. Well information must be specified for every well or the program will terminate with an error. The program will also terminate with an error if information for a well is specified more than once.
+numeric_index true
+
+block packagedata
+name strt
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname starting well temperature
+description real value that defines the starting temperature for the well.
+
+block packagedata
+name ktf
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname thermal conductivity of the feature
+description is the thermal conductivity of the of the interface between the aquifer cell and the feature.
+
+block packagedata
+name fthk
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+longname thickness of the well feature
+description real value that defines the thickness of the material through which conduction occurs. Must be greater than 0.
+
+block packagedata
+name aux
+type double precision
+in_record true
+tagged false
+shape (naux)
+reader urword
+time_series true
+optional true
+longname auxiliary variables
+description REPLACE aux {'{#1}': 'well'}
+
+block packagedata
+name boundname
+type string
+shape
+tagged false
+in_record true
+reader urword
+optional true
+longname well name
+description REPLACE boundname {'{#1}': 'well'}
+
+
+# --------------------- gwe mwe period ---------------------
+
+block period
+name iper
+type integer
+block_variable True
+in_record true
+tagged false
+shape
+valid
+reader urword
+optional false
+longname stress period number
+description REPLACE iper {}
+
+block period
+name mweperioddata
+type recarray mawno mwesetting
+shape
+reader urword
+longname
+description
+
+block period
+name mawno
+type integer
+shape
+tagged false
+in_record true
+reader urword
+longname well number for this entry
+description integer value that defines the well number associated with the specified PERIOD data on the line. MAWNO must be greater than zero and less than or equal to NMAWWELLS.
+numeric_index true
+
+block period
+name mwesetting
+type keystring status temperature rate auxiliaryrecord
+shape
+tagged false
+in_record true
+reader urword
+longname
+description line of information that is parsed into a keyword and values. Keyword values that can be used to start the MWESETTING string include: STATUS, TEMPERATURE, RAINFALL, EVAPORATION, RUNOFF, and AUXILIARY. These settings are used to assign the temperature of associated with the corresponding flow terms. Temperatures cannot be specified for all flow terms. For example, the Multi-Aquifer Well Package supports a ``WITHDRAWAL'' flow term. If this withdrawal term is active, then water will be withdrawn from the well at the calculated temperature of the well.
+
+block period
+name status
+type string
+shape
+tagged true
+in_record true
+reader urword
+longname well temperature status
+description keyword option to define well status. STATUS can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is ACTIVE, which means that temperature will be calculated for the well. If a well is inactive, then there will be no solute mass fluxes into or out of the well and the inactive value will be written for the well temperature. If a well is constant, then the temperature for the well will be fixed at the user specified value.
+
+block period
+name temperature
+type string
+shape
+tagged true
+in_record true
+time_series true
+reader urword
+longname well temperature
+description real or character value that defines the temperature for the well. The specified TEMPERATURE is only applied if the well is a constant temperature well. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+
+block period
+name rate
+type string
+shape
+tagged true
+in_record true
+reader urword
+time_series true
+longname well injection temperature
+description real or character value that defines the injection solute temperature $^{\circ}C$ for the well. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
+
+block period
+name auxiliaryrecord
+type record auxiliary auxname auxval
+shape
+tagged
+in_record true
+reader urword
+longname
+description
+
+block period
+name auxiliary
+type keyword
+shape
+in_record true
+reader urword
+longname
+description keyword for specifying auxiliary variable.
+
+block period
+name auxname
+type string
+shape
+tagged false
+in_record true
+reader urword
+longname
+description name for the auxiliary variable to be assigned AUXVAL. AUXNAME must match one of the auxiliary variable names defined in the OPTIONS block. If AUXNAME does not match one of the auxiliary variable names defined in the OPTIONS block the data are ignored.
+
+block period
+name auxval
+type double precision
+shape
+tagged false
+in_record true
+reader urword
+time_series true
+longname auxiliary variable value
+description value for the auxiliary variable. If the Options block includes a TIMESERIESFILE entry (see the ``Time-Variable Input'' section), values can be obtained from a time series by entering the time-series name in place of a numeric value.
diff --git a/flopy/mf6/data/dfn/gwe-nam.dfn b/flopy/mf6/data/dfn/gwe-nam.dfn
new file mode 100644
index 000000000..31aa8fd84
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-nam.dfn
@@ -0,0 +1,74 @@
+# --------------------- gwe nam options ---------------------
+
+block options
+name list
+type string
+reader urword
+optional true
+preserve_case true
+longname name of listing file
+description is name of the listing file to create for this GWE model. If not specified, then the name of the list file will be the basename of the GWE model name file and the ``.lst'' extension. For example, if the GWE name file is called ``my.model.nam'' then the list file will be called ``my.model.lst''.
+
+block options
+name print_input
+type keyword
+reader urword
+optional true
+longname print input to listing file
+description REPLACE print_input {'{#1}': 'all model stress package'}
+
+block options
+name print_flows
+type keyword
+reader urword
+optional true
+longname print calculated flows to listing file
+description REPLACE print_flows {'{#1}': 'all model package'}
+
+block options
+name save_flows
+type keyword
+reader urword
+optional true
+longname save flows for all packages to budget file
+description REPLACE save_flows {'{#1}': 'all model package'}
+
+# --------------------- gwe nam packages ---------------------
+
+block packages
+name packages
+type recarray ftype fname pname
+reader urword
+optional false
+longname package list
+description
+
+block packages
+name ftype
+in_record true
+type string
+tagged false
+reader urword
+longname package type
+description is the file type, which must be one of the following character values shown in table~\ref{table:ftype-gwe}. Ftype may be entered in any combination of uppercase and lowercase.
+
+block packages
+name fname
+in_record true
+type string
+preserve_case true
+tagged false
+reader urword
+longname file name
+description is the name of the file containing the package input. The path to the file should be included if the file is not located in the folder where the program was run.
+
+block packages
+name pname
+in_record true
+type string
+tagged false
+reader urword
+optional true
+longname user name for package
+description is the user-defined name for the package. PNAME is restricted to 16 characters. No spaces are allowed in PNAME. PNAME character values are read and stored by the program for stress packages only. These names may be useful for labeling purposes when multiple stress packages of the same type are located within a single GWE Model. If PNAME is specified for a stress package, then PNAME will be used in the flow budget table in the listing file; it will also be used for the text entry in the cell-by-cell budget file. PNAME is case insensitive and is stored in all upper case letters.
+
diff --git a/flopy/mf6/data/dfn/gwe-oc.dfn b/flopy/mf6/data/dfn/gwe-oc.dfn
new file mode 100644
index 000000000..74020a36b
--- /dev/null
+++ b/flopy/mf6/data/dfn/gwe-oc.dfn
@@ -0,0 +1,313 @@
+# --------------------- gwe oc options ---------------------
+
+block options
+name budget_filerecord
+type record budget fileout budgetfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name budget
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to the budget.
+
+block options
+name fileout
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname file keyword
+description keyword to specify that an output filename is expected next.
+
+block options
+name budgetfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the output file to write budget information.
+
+block options
+name budgetcsv_filerecord
+type record budgetcsv fileout budgetcsvfile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name budgetcsv
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname budget keyword
+description keyword to specify that record corresponds to the budget CSV.
+
+block options
+name budgetcsvfile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the comma-separated value (CSV) output file to write budget summary information. A budget summary record will be written to this file for each time step of the simulation.
+
+block options
+name temperature_filerecord
+type record temperature fileout temperaturefile
+shape
+reader urword
+tagged true
+optional true
+longname
+description
+
+block options
+name temperature
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname temperature keyword
+description keyword to specify that record corresponds to temperature.
+
+block options
+name temperaturefile
+type string
+preserve_case true
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname file keyword
+description name of the output file to write temperature information.
+
+block options
+name temperatureprintrecord
+type record temperature print_format formatrecord
+shape
+reader urword
+optional true
+longname
+description
+
+block options
+name print_format
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname keyword to indicate that a print format follows
+description keyword to specify format for printing to the listing file.
+
+block options
+name formatrecord
+type record columns width digits format
+shape
+in_record true
+reader urword
+tagged
+optional false
+longname
+description
+
+block options
+name columns
+type integer
+shape
+in_record true
+reader urword
+tagged true
+optional
+longname number of columns
+description number of columns for writing data.
+
+block options
+name width
+type integer
+shape
+in_record true
+reader urword
+tagged true
+optional
+longname width for each number
+description width for writing each number.
+
+block options
+name digits
+type integer
+shape
+in_record true
+reader urword
+tagged true
+optional
+longname number of digits
+description number of digits to use for writing a number.
+
+block options
+name format
+type string
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname write format
+description write format can be EXPONENTIAL, FIXED, GENERAL, or SCIENTIFIC.
+
+
+# --------------------- gwe oc period ---------------------
+
+block period
+name iper
+type integer
+block_variable True
+in_record true
+tagged false
+shape
+valid
+reader urword
+optional false
+longname stress period number
+description REPLACE iper {}
+
+block period
+name saverecord
+type record save rtype ocsetting
+shape
+reader urword
+tagged false
+optional true
+longname
+description
+
+block period
+name save
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname keyword to save
+description keyword to indicate that information will be saved this stress period.
+
+block period
+name printrecord
+type record print rtype ocsetting
+shape
+reader urword
+tagged false
+optional true
+longname
+description
+
+block period
+name print
+type keyword
+shape
+in_record true
+reader urword
+tagged true
+optional false
+longname keyword to save
+description keyword to indicate that information will be printed this stress period.
+
+block period
+name rtype
+type string
+shape
+in_record true
+reader urword
+tagged false
+optional false
+longname record type
+description type of information to save or print. Can be BUDGET or TEMPERATURE.
+
+block period
+name ocsetting
+type keystring all first last frequency steps
+shape
+tagged false
+in_record true
+reader urword
+longname
+description specifies the steps for which the data will be saved.
+
+block period
+name all
+type keyword
+shape
+in_record true
+reader urword
+longname
+description keyword to indicate save for all time steps in period.
+
+block period
+name first
+type keyword
+shape
+in_record true
+reader urword
+longname
+description keyword to indicate save for first step in period. This keyword may be used in conjunction with other keywords to print or save results for multiple time steps.
+
+block period
+name last
+type keyword
+shape
+in_record true
+reader urword
+longname
+description keyword to indicate save for last step in period. This keyword may be used in conjunction with other keywords to print or save results for multiple time steps.
+
+block period
+name frequency
+type integer
+shape
+tagged true
+in_record true
+reader urword
+longname
+description save at the specified time step frequency. This keyword may be used in conjunction with other keywords to print or save results for multiple time steps.
+
+block period
+name steps
+type integer
+shape (= VerbosityLevel.verbose.value
):
print(
- "Storing {} layer {} to external file {}.."
- ".".format(
+ "Storing {} layer {} to external file {}.." ".".format(
self.structure.name,
current_layer[0] + 1,
file_path,
@@ -634,8 +635,7 @@ def store_internal(
>= VerbosityLevel.verbose.value
):
print(
- "Storing {} layer {} internally.."
- ".".format(
+ "Storing {} layer {} internally.." ".".format(
self.structure.name,
current_layer[0] + 1,
)
@@ -852,7 +852,7 @@ def _set_record(self, data_record):
self._set_data(record, layer=layer, preserve_record=False)
else:
self._set_data(data_record, preserve_record=False)
- elif type(data_record) == list:
+ elif isinstance(data_record, list):
for layer, record in enumerate(data_record):
self._set_data(record, layer=layer, preserve_record=False)
else:
@@ -1217,8 +1217,9 @@ def _get_file_entry(
# set layer range
if not shape_ml.in_shape(layer):
comment = (
- 'Layer {} for variable "{}" does not exist'
- ".".format(layer, self._data_name)
+ 'Layer {} for variable "{}" does not exist' ".".format(
+ layer, self._data_name
+ )
)
type_, value_, traceback_ = sys.exc_info()
raise MFDataException(
@@ -1293,7 +1294,7 @@ def _new_storage(
data_path=self._path,
)
- def _get_storage_obj(self):
+ def _get_storage_obj(self, first_record=False):
return self._data_storage
def _set_storage_obj(self, storage):
@@ -1787,6 +1788,9 @@ def has_data(self, layer=None):
self.get_data_prep(sto_key)
if super().has_data():
return True
+ for val in self.empty_keys.values():
+ if val:
+ return True
return False
else:
self.get_data_prep(layer)
@@ -1917,7 +1921,11 @@ def _set_data_record(
if list_item is None:
self.remove_transient_key(key)
del_keys.append(key)
+ self.empty_keys[key] = False
+ elif isinstance(list_item, list) and len(list_item) == 0:
+ self.empty_keys[key] = True
else:
+ self.empty_keys[key] = False
self._set_data_prep(list_item, key)
if is_record:
super().set_record(list_item)
@@ -1939,7 +1947,11 @@ def _set_data_record(
key = 0
if data is None:
self.remove_transient_key(key)
+ elif isinstance(data, list) and len(data) == 0:
+ # add empty record
+ self.empty_keys[key] = True
else:
+ self.empty_keys[key] = False
self._set_data_prep(data, key)
super().set_data(data, multiplier, layer)
@@ -1961,6 +1973,8 @@ def get_file_entry(
"""
+ if key in self.empty_keys and self.empty_keys[key]:
+ return ""
self._get_file_entry_prep(key)
return super().get_file_entry(ext_file_action=ext_file_action)
@@ -2020,7 +2034,11 @@ def _new_storage(
def _set_storage_obj(self, storage):
self._data_storage[self._current_key] = storage
- def _get_storage_obj(self):
+ def _get_storage_obj(self, first_record=False):
+ if first_record and isinstance(self._data_storage, dict):
+ for value in self._data_storage.values():
+ return value
+ return None
if (
self._current_key is None
or self._current_key not in self._data_storage
diff --git a/flopy/mf6/data/mfdatalist.py b/flopy/mf6/data/mfdatalist.py
index d1e4e123b..f35147206 100644
--- a/flopy/mf6/data/mfdatalist.py
+++ b/flopy/mf6/data/mfdatalist.py
@@ -133,7 +133,7 @@ def to_array(self, kper=0, mask=False):
MODFLOW zero-based stress period number to return. (default is
zero)
mask : bool
- return array with np.NaN instead of zero
+ return array with np.nan instead of zero
Returns
----------
@@ -221,8 +221,9 @@ def store_as_external_file(
>= VerbosityLevel.verbose.value
):
print(
- "Storing {} to external file {}.."
- ".".format(self.structure.name, external_file_path)
+ "Storing {} to external file {}.." ".".format(
+ self.structure.name, external_file_path
+ )
)
external_data = {
"filename": external_file_path,
@@ -712,7 +713,7 @@ def search_data(self, search_term, col=None):
if (
val is not None
and val.lower() == search_term
- and (col == None or col == col_num)
+ and (col is None or col == col_num)
):
return (row, col)
col_num += 1
@@ -977,7 +978,7 @@ def _get_file_entry_record(
):
data_complete_len = len(data_line)
if data_complete_len <= index:
- if data_item.optional == False:
+ if data_item.optional is False:
message = (
"Not enough data provided "
"for {}. Data for required data "
@@ -1391,7 +1392,7 @@ def _new_storage(self, stress_period=0):
data_path=self._path,
)
- def _get_storage_obj(self):
+ def _get_storage_obj(self, first_record=False):
return self._data_storage
def plot(
@@ -1744,6 +1745,9 @@ def has_data(self, key=None):
self.get_data_prep(sto_key)
if super().has_data():
return True
+ for val in self.empty_keys.values():
+ if val:
+ return True
return False
else:
self.get_data_prep(key)
@@ -2046,7 +2050,11 @@ def update_record(self, record, key_index, key=0):
def _new_storage(self, stress_period=0):
return {}
- def _get_storage_obj(self):
+ def _get_storage_obj(self, first_record=False):
+ if first_record and isinstance(self._data_storage, dict):
+ for value in self._data_storage.values():
+ return value
+ return None
if (
self._current_key is None
or self._current_key not in self._data_storage
diff --git a/flopy/mf6/data/mfdataplist.py b/flopy/mf6/data/mfdataplist.py
index 95460bf28..dd397699d 100644
--- a/flopy/mf6/data/mfdataplist.py
+++ b/flopy/mf6/data/mfdataplist.py
@@ -67,6 +67,55 @@ def __init__(self):
self.data_storage_type = None
self.modified = False
+ def __repr__(self):
+ return self.get_data_str(True)
+
+ def __str__(self):
+ return self.get_data_str(False)
+
+ def _get_header_str(self):
+ header_list = []
+ if self.data_storage_type == DataStorageType.external_file:
+ header_list.append(f"open/close {self.fname}")
+ else:
+ header_list.append("internal")
+ if self.iprn is not None:
+ header_list.append(f"iprn {self.iprn}")
+ if len(header_list) > 0:
+ return ", ".join(header_list)
+ else:
+ return ""
+
+ def get_data_str(self, formal):
+ data_str = ""
+ layer_str = ""
+ if self.data_storage_type == DataStorageType.internal_array:
+ if self.internal_data is not None:
+ header = self._get_header_str()
+ if formal:
+ data_str = "{}{}{{{}}}\n({})\n".format(
+ data_str,
+ layer_str,
+ header,
+ repr(self.internal_data),
+ )
+ else:
+ data_str = "{}{}{{{}}}\n({})\n".format(
+ data_str,
+ layer_str,
+ header,
+ str(self.internal_data),
+ )
+ elif self.data_storage_type == DataStorageType.external_file:
+ header = self._get_header_str()
+ data_str = "{}{}{{{}}}\n({})\n".format(
+ data_str,
+ layer_str,
+ header,
+ "External data not displayed",
+ )
+ return data_str
+
def get_record(self):
rec = {}
if self.internal_data is not None:
@@ -726,7 +775,7 @@ def set_data(self, data, autofill=False, check_data=True, append=False):
self._simulation_data.debug,
)
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
if append:
# append data to existing dataframe
current_data = self._get_dataframe()
@@ -742,7 +791,7 @@ def set_data(self, data, autofill=False, check_data=True, append=False):
def has_modified_ext_data(self):
"""check to see if external data has been modified since last read"""
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
return (
data_storage.data_storage_type == DataStorageType.external_file
and data_storage.internal_data is not None
@@ -750,7 +799,7 @@ def has_modified_ext_data(self):
def binary_ext_data(self):
"""check for binary data"""
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
return data_storage.binary
def to_array(self, kper=0, mask=False):
@@ -763,7 +812,7 @@ def to_array(self, kper=0, mask=False):
MODFLOW zero-based stress period number to return (default is
zero)
mask : bool
- return array with np.NaN instead of zero
+ return array with np.nan instead of zero
Returns
----------
@@ -792,7 +841,7 @@ def set_record(self, record, autofill=False, check_data=True):
"""
if isinstance(record, dict):
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
if "filename" in record:
data_storage.set_external(record["filename"])
if "binary" in record:
@@ -851,9 +900,9 @@ def append_data(self, data):
"""
try:
self._resync()
- if self._get_storage() is None:
+ if self._get_storage_obj() is None:
self._data_storage = self._new_storage()
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
if (
data_storage.data_storage_type
== DataStorageType.internal_array
@@ -952,7 +1001,7 @@ def store_internal(
Verify data prior to storing
"""
- storage = self._get_storage()
+ storage = self._get_storage_obj()
# check if data is already stored external
if (
storage is None
@@ -999,7 +1048,7 @@ def store_as_external_file(
"""
# only store data externally (do not subpackage info)
if self.structure.construct_package is None:
- storage = self._get_storage()
+ storage = self._get_storage_obj()
# check if data is already stored external
if (
replace_existing_external
@@ -1016,8 +1065,9 @@ def store_as_external_file(
>= VerbosityLevel.verbose.value
):
print(
- "Storing {} to external file {}.."
- ".".format(self.structure.name, external_file_path)
+ "Storing {} to external file {}.." ".".format(
+ self.structure.name, external_file_path
+ )
)
external_data = {
"filename": external_file_path,
@@ -1030,7 +1080,7 @@ def store_as_external_file(
def external_file_name(self):
"""Returns external file name, or None if this is not external data."""
- storage = self._get_storage()
+ storage = self._get_storage_obj()
if storage is None:
return None
if (
@@ -1191,15 +1241,15 @@ def _save_binary_data(self, fd_data_file, data):
fd_data_file,
self._model_or_sim.modeldiscrit,
)
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
data_storage.internal_data = None
def has_data(self, key=None):
"""Returns whether this MFList has any data associated with it."""
try:
- if self._get_storage() is None:
+ if self._get_storage_obj() is None:
return False
- return self._get_storage().has_data()
+ return self._get_storage_obj().has_data()
except Exception as ex:
type_, value_, traceback_ = sys.exc_info()
raise MFDataException(
@@ -1281,7 +1331,7 @@ def load(
next data line : str
"""
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
data_storage.modified = False
# parse first line to determine if this is internal or external data
datautil.PyListUtil.reset_delimiter_used()
@@ -1338,7 +1388,7 @@ def load(
def _new_storage(self):
return {"Data": PandasListStorage()}
- def _get_storage(self):
+ def _get_storage_obj(self, first_record=False):
return self._data_storage["Data"]
def _get_id_fields(self, data_frame):
@@ -1484,7 +1534,7 @@ def _get_data(self):
def _get_dataframe(self):
"""get and return dataframe for this list data"""
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
if data_storage is None or data_storage.data_storage_type is None:
block_exists = self._block.header_exists(
self._current_key, self.path
@@ -1551,9 +1601,9 @@ def _get_record(self, data_frame=False):
"""
try:
- if self._get_storage() is None:
+ if self._get_storage_obj() is None:
return None
- record = self._get_storage().get_record()
+ record = self._get_storage_obj().get_record()
except Exception as ex:
type_, value_, traceback_ = sys.exc_info()
raise MFDataException(
@@ -1650,7 +1700,7 @@ def _write_file_entry(
-------
result of pandas to_csv call
"""
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
if data_storage is None:
return ""
if (
@@ -1751,7 +1801,7 @@ def _get_file_path(self):
file_path : file path to data
"""
- data_storage = self._get_storage()
+ data_storage = self._get_storage_obj()
if data_storage.fname is None:
return None
if self._model_or_sim.type == "model":
@@ -1989,11 +2039,11 @@ def store_as_external_file(
self._cache_model_grid = True
for sp in self._data_storage.keys():
self._current_key = sp
- storage = self._get_storage()
+ storage = self._get_storage_obj()
if storage.internal_size == 0:
storage.internal_data = self.get_dataframe(sp)
if storage.internal_size > 0 and (
- self._get_storage().data_storage_type
+ self._get_storage_obj().data_storage_type
!= DataStorageType.external_file
or replace_existing_external
):
@@ -2027,7 +2077,7 @@ def store_internal(
for sp in self._data_storage.keys():
self._current_key = sp
if (
- self._get_storage().data_storage_type
+ self._get_storage_obj().data_storage_type
== DataStorageType.external_file
):
super().store_internal(
@@ -2482,7 +2532,11 @@ def update_record(self, record, key_index, key=0):
def _new_storage(self):
return {}
- def _get_storage(self):
+ def _get_storage_obj(self, first_record=False):
+ if first_record and isinstance(self._data_storage, dict):
+ for value in self._data_storage.values():
+ return value
+ return None
if (
self._current_key is None
or self._current_key not in self._data_storage
diff --git a/flopy/mf6/data/mfdatascalar.py b/flopy/mf6/data/mfdatascalar.py
index ca6e7e63a..8eb482428 100644
--- a/flopy/mf6/data/mfdatascalar.py
+++ b/flopy/mf6/data/mfdatascalar.py
@@ -299,8 +299,7 @@ def add_one(self):
)
else:
message = (
- "{} of type {} does not support add one "
- "operation.".format(
+ "{} of type {} does not support add one " "operation.".format(
self._data_name, self.structure.get_datum_type()
)
)
@@ -385,7 +384,7 @@ def get_file_entry(
ex,
)
if self.structure.type == DatumType.keyword:
- if data is not None and data != False:
+ if data is not None and data is not False:
# keyword appears alone
return "{}{}\n".format(
self._simulation_data.indent_string,
@@ -408,7 +407,8 @@ def get_file_entry(
):
data = data[0]
if len(data) > index and (
- data[index] is not None and data[index] != False
+ data[index] is not None
+ and data[index] is not False
):
text_line.append(data_item.name.upper())
if (
@@ -421,7 +421,7 @@ def get_file_entry(
# assume the keyword was excluded
index -= 1
else:
- if data is not None and data != False:
+ if data is not None and data is not False:
text_line.append(data_item.name.upper())
else:
if data is not None and data != "":
@@ -429,12 +429,12 @@ def get_file_entry(
if len(data) > index:
if (
data[index] is not None
- and data[index] != False
+ and data[index] is not False
):
current_data = data[index]
else:
break
- elif data_item.optional == True:
+ elif data_item.optional is True:
break
else:
message = (
@@ -462,7 +462,7 @@ def get_file_entry(
if data_item.type == DatumType.keyword:
if (
current_data is not None
- and current_data != False
+ and current_data is not False
):
if (
isinstance(data[index], str)
@@ -661,7 +661,7 @@ def _new_storage(self, stress_period=0):
data_path=self._path,
)
- def _get_storage_obj(self):
+ def _get_storage_obj(self, first_record=False):
return self._data_storage
def plot(self, filename_base=None, file_extension=None, **kwargs):
@@ -911,7 +911,11 @@ def load(
def _new_storage(self, stress_period=0):
return {}
- def _get_storage_obj(self):
+ def _get_storage_obj(self, first_record=False):
+ if first_record and isinstance(self._data_storage, dict):
+ for value in self._data_storage.values():
+ return value
+ return None
if (
self._current_key is None
or self._current_key not in self._data_storage
diff --git a/flopy/mf6/data/mfdatastorage.py b/flopy/mf6/data/mfdatastorage.py
index 4285b908e..86fc50e24 100644
--- a/flopy/mf6/data/mfdatastorage.py
+++ b/flopy/mf6/data/mfdatastorage.py
@@ -497,6 +497,22 @@ def get_data_str(self, formal):
layer_str,
self._get_layer_header_str(index),
)
+ elif storage.data_storage_type == DataStorageType.external_file:
+ header = self._get_layer_header_str(index)
+ if self.layered:
+ data_str = "{}{}{{{}}}\n({})\n".format(
+ data_str,
+ layer_str,
+ header,
+ "External data not displayed",
+ )
+ else:
+ data_str = "{}{}{{{}}}\n({})\n".format(
+ data_str,
+ layer_str,
+ header,
+ "External data not displayed",
+ )
return data_str
def _get_layer_header_str(self, layer):
@@ -1372,16 +1388,16 @@ def store_internal(
# convert numbers to be multiplied by the original factor
data = data * adjustment
if const:
- self.layer_storage[layer].data_storage_type = (
- DataStorageType.internal_constant
- )
+ self.layer_storage[
+ layer
+ ].data_storage_type = DataStorageType.internal_constant
self.layer_storage[layer].data_const_value = [
mfdatautil.get_first_val(data)
]
else:
- self.layer_storage[layer].data_storage_type = (
- DataStorageType.internal_array
- )
+ self.layer_storage[
+ layer
+ ].data_storage_type = DataStorageType.internal_array
try:
self.layer_storage[layer].internal_data = np.reshape(
data, dimensions
@@ -1410,11 +1426,11 @@ def store_internal(
data_type = self.data_dimensions.structure.get_datum_type(True)
dt = self.layer_storage[layer].internal_data.dtype
if dt != data_type:
- self.layer_storage[layer].internal_data = (
- self.layer_storage[layer].internal_data.astype(
- data_type
- )
- )
+ self.layer_storage[
+ layer
+ ].internal_data = self.layer_storage[
+ layer
+ ].internal_data.astype(data_type)
if not preserve_record:
self.layer_storage[layer].factor = multiplier
self.layer_storage[layer].iprn = print_format
@@ -1802,9 +1818,9 @@ def store_external(
if self._calc_data_size(data, 2) == 1 and data_size > 1:
# constant data, need to expand
self.layer_storage[layer_new].data_const_value = data
- self.layer_storage[layer_new].data_storage_type = (
- DataStorageType.internal_constant
- )
+ self.layer_storage[
+ layer_new
+ ].data_storage_type = DataStorageType.internal_constant
data = self._fill_const_layer(layer)
elif isinstance(data, list):
data = self._to_ndarray(data, layer)
@@ -1861,9 +1877,9 @@ def set_ext_file_attributes(self, layer, file_path, print_format, binary):
self.layer_storage[layer].fname = file_path
self.layer_storage[layer].iprn = print_format
self.layer_storage[layer].binary = binary
- self.layer_storage[layer].data_storage_type = (
- DataStorageType.external_file
- )
+ self.layer_storage[
+ layer
+ ].data_storage_type = DataStorageType.external_file
def point_to_existing_external_file(self, arr_line, layer):
(
@@ -1996,6 +2012,7 @@ def external_to_internal(
self._data_type,
self.get_data_dimensions(layer),
layer,
+ self.layered,
read_file,
)[0]
if apply_mult and self.layer_storage[layer].factor is not None:
@@ -2090,8 +2107,9 @@ def resolve_shape_list(
)
except Exception as se:
comment = (
- 'Unable to resolve shape for data "{}" field "{}"'
- ".".format(struct.name, data_item.name)
+ 'Unable to resolve shape for data "{}" field "{}"' ".".format(
+ struct.name, data_item.name
+ )
)
type_, value_, traceback_ = sys.exc_info()
raise MFDataException(
@@ -2453,6 +2471,7 @@ def _build_full_data(self, apply_multiplier=False):
np_data_type,
self.get_data_dimensions(layer),
layer,
+ self.layered,
read_file,
)[0]
* mult
diff --git a/flopy/mf6/data/mfdatautil.py b/flopy/mf6/data/mfdatautil.py
index bf9f57174..9a4d6cdbf 100644
--- a/flopy/mf6/data/mfdatautil.py
+++ b/flopy/mf6/data/mfdatautil.py
@@ -78,6 +78,7 @@ def convert_data(data, data_dimensions, data_type, data_item=None, sub_amt=1):
if isinstance(data, str):
# fix any scientific formatting that python can't handle
data = data.replace("d", "e")
+ data = data.replace("D", "e")
return float(data)
except (ValueError, TypeError):
try:
@@ -151,7 +152,7 @@ def list_to_array(sarr, model_grid, kper=0, mask=False):
MODFLOW zero-based stress period number to return. (default is
zero)
mask : bool
- return array with np.NaN instead of zero
+ return array with np.nan instead of zero
Returns
----------
@@ -192,7 +193,7 @@ def list_to_array(sarr, model_grid, kper=0, mask=False):
if sarr[0] == 0:
if mask:
for name, arr in arrays.items():
- arrays[name][:] = np.NaN
+ arrays[name][:] = np.nan
return arrays
else:
raise Exception("MfList: something bad happened")
@@ -210,7 +211,7 @@ def list_to_array(sarr, model_grid, kper=0, mask=False):
arr[idx] /= cnt[idx]
if mask:
arr = np.ma.masked_where(cnt == 0.0, arr)
- arr[cnt == 0.0] = np.NaN
+ arr[cnt == 0.0] = np.nan
arrays[name] = arr.copy()
return arrays
@@ -965,7 +966,7 @@ def dtype(
"Data dimensions can not be determined for "
"{}. Data structure may be jagged or may contain "
"a keystring. Data type information is therefore "
- "dependant on the data and can not be retreived "
+ "dependent on the data and can not be retrieved "
"prior to the data being loaded"
".".format(data_storage.data_dimensions.structure.name)
)
diff --git a/flopy/mf6/data/mffileaccess.py b/flopy/mf6/data/mffileaccess.py
index a68a78a07..73f19f92b 100644
--- a/flopy/mf6/data/mffileaccess.py
+++ b/flopy/mf6/data/mffileaccess.py
@@ -577,10 +577,17 @@ def read_text_data_from_file(
data_type,
data_dim,
layer,
+ layered,
fname=None,
fd=None,
- data_item=None,
):
+ # determine line size
+ line_size = None
+ if layered:
+ # if the array is layered (meaning a control record for
+ # each layer), then limit line size to number of columns
+ if isinstance(data_dim, list):
+ line_size = data_dim[-1]
# load variable data from file
current_size = 0
if layer is None:
@@ -601,6 +608,8 @@ def read_text_data_from_file(
if line == "" or arr_line[0].upper() == "END":
break
if not MFComment.is_comment(arr_line, True):
+ if line_size is not None:
+ arr_line = arr_line[:line_size]
data_raw += arr_line
else:
PyListUtil.reset_delimiter_used()
@@ -609,6 +618,8 @@ def read_text_data_from_file(
line = fd.readline()
arr_line = PyListUtil.split_data_line(line, True)
if not MFComment.is_comment(arr_line, True):
+ if line_size is not None:
+ arr_line = arr_line[:line_size]
data_raw += arr_line
else:
PyListUtil.reset_delimiter_used()
@@ -886,6 +897,7 @@ def _load_layer(
data_type,
storage.get_data_dimensions(layer),
layer,
+ storage.layered,
fd=file_handle,
)
except Exception as ex:
@@ -1469,9 +1481,7 @@ def read_list_data_from_file(
current_key,
self._data_line,
False,
- )[
- 0:2
- ]
+ )[0:2]
elif (
data_item.name == "boundname"
and self._data_dimensions.package_dim.boundnames()
@@ -1720,9 +1730,7 @@ def load_list_line(
for (
key,
record,
- ) in (
- data_item.keystring_dict.items()
- ):
+ ) in data_item.keystring_dict.items():
if (
isinstance(
record,
@@ -2050,9 +2058,7 @@ def _process_aux(
current_key,
data_line,
add_to_last_line,
- )[
- 0:3
- ]
+ )[0:3]
else:
# read in aux variables
(
@@ -2070,9 +2076,7 @@ def _process_aux(
current_key,
data_line,
add_to_last_line,
- )[
- 0:3
- ]
+ )[0:3]
return data_index, data_line, more_data_expected
def _append_data_list(
@@ -2323,7 +2327,7 @@ def load_from_package(
if (
len(arr_line) <= index + 1
or data_item_type[0] != DatumType.keyword
- or (index > 0 and optional == True)
+ or (index > 0 and optional is True)
):
break
index += 1
diff --git a/flopy/mf6/data/mfstructure.py b/flopy/mf6/data/mfstructure.py
index 576cb2148..f45625ed5 100644
--- a/flopy/mf6/data/mfstructure.py
+++ b/flopy/mf6/data/mfstructure.py
@@ -81,7 +81,6 @@ def get_file_list(self):
"gwf-dis", # dfn completed tex updated
"gwf-disv", # dfn completed tex updated
"gwf-disu", # dfn completed tex updated
- "lnf-disl", # dfn completed tex updated
"gwf-ic", # dfn completed tex updated
"gwf-npf", # dfn completed tex updated
"gwf-sto", # dfn completed tex updated
@@ -1176,11 +1175,11 @@ def indicates_file_name(self):
def is_file_name(self):
if (
self.name.lower() in self.file_name_keywords
- and self.file_name_keywords[self.name.lower()] == True
+ and self.file_name_keywords[self.name.lower()] is True
):
return True
for key, item in self.contained_keywords.items():
- if self.name.lower().find(key) != -1 and item == True:
+ if self.name.lower().find(key) != -1 and item is True:
return True
return False
@@ -1557,7 +1556,7 @@ def add_item(self, item, record=False, dfn_list=None):
item.type != DatumType.record
and item.type != DatumType.repeating_record
)
- or record == True
+ or record is True
):
if item.name not in self.expected_data_items:
raise StructException(
@@ -2071,7 +2070,7 @@ def get_all_recarrays(self):
class MFInputFileStructure:
"""
- MODFLOW Input File Stucture class. Loads file
+ MODFLOW Input File Structure class. Loads file
structure information for individual input file
types.
diff --git a/flopy/mf6/mfbase.py b/flopy/mf6/mfbase.py
index 3bdc6eba5..d8ff7c1ff 100644
--- a/flopy/mf6/mfbase.py
+++ b/flopy/mf6/mfbase.py
@@ -1,4 +1,4 @@
-""" Base classes for Modflow 6 """
+"""Base classes for Modflow 6"""
import copy
import inspect
@@ -566,7 +566,8 @@ def _add_package(self, package, path):
self.package_type_dict[package.package_type.lower()].append(package)
def _remove_package(self, package):
- self._packagelist.remove(package)
+ if package in self._packagelist:
+ self._packagelist.remove(package)
if (
package.package_name is not None
and package.package_name.lower() in self.package_name_dict
@@ -577,10 +578,12 @@ def _remove_package(self, package):
and package.filename.lower() in self.package_filename_dict
):
del self.package_filename_dict[package.filename.lower()]
- package_list = self.package_type_dict[package.package_type.lower()]
- package_list.remove(package)
- if len(package_list) == 0:
- del self.package_type_dict[package.package_type.lower()]
+ if package.package_type.lower() in self.package_type_dict:
+ package_list = self.package_type_dict[package.package_type.lower()]
+ if package in package_list:
+ package_list.remove(package)
+ if len(package_list) == 0:
+ del self.package_type_dict[package.package_type.lower()]
# collect keys of items to be removed from main dictionary
items_to_remove = []
@@ -624,7 +627,7 @@ def _rename_package(self, package, new_name):
)
main_dict[new_key] = main_dict.pop(key)
- def get_package(self, name=None):
+ def get_package(self, name=None, type_only=False, name_only=False):
"""
Finds a package by package name, package key, package type, or partial
package name. returns either a single package, a list of packages,
@@ -633,7 +636,11 @@ def get_package(self, name=None):
Parameters
----------
name : str
- Name of the package, 'RIV', 'LPF', etc.
+ Name or type of the package, 'my-riv-1, 'RIV', 'LPF', etc.
+ type_only : bool
+ Search for package by type only
+ name_only : bool
+ Search for package by name only
Returns
-------
@@ -644,11 +651,11 @@ def get_package(self, name=None):
return self._packagelist[:]
# search for full package name
- if name.lower() in self.package_name_dict:
+ if name.lower() in self.package_name_dict and not type_only:
return self.package_name_dict[name.lower()]
# search for package type
- if name.lower() in self.package_type_dict:
+ if name.lower() in self.package_type_dict and not name_only:
if len(self.package_type_dict[name.lower()]) == 0:
return None
elif len(self.package_type_dict[name.lower()]) == 1:
@@ -657,18 +664,19 @@ def get_package(self, name=None):
return self.package_type_dict[name.lower()]
# search for file name
- if name.lower() in self.package_filename_dict:
+ if name.lower() in self.package_filename_dict and not type_only:
return self.package_filename_dict[name.lower()]
# search for partial and case-insensitive package name
- for pp in self._packagelist:
- if pp.package_name is not None:
- # get first package of the type requested
- package_name = pp.package_name.lower()
- if len(package_name) > len(name):
- package_name = package_name[0 : len(name)]
- if package_name.lower() == name.lower():
- return pp
+ if not type_only:
+ for pp in self._packagelist:
+ if pp.package_name is not None:
+ # get first package of the type requested
+ package_name = pp.package_name.lower()
+ if len(package_name) > len(name):
+ package_name = package_name[0 : len(name)]
+ if package_name.lower() == name.lower():
+ return pp
return None
diff --git a/flopy/mf6/mfmodel.py b/flopy/mf6/mfmodel.py
index 9745ec810..62945eec4 100644
--- a/flopy/mf6/mfmodel.py
+++ b/flopy/mf6/mfmodel.py
@@ -264,27 +264,33 @@ def modeltime(self):
simulation.
"""
- tdis = self.simulation.get_package("tdis")
+ tdis = self.simulation.get_package("tdis", type_only=True)
period_data = tdis.perioddata.get_data()
# build steady state data
- sto = self.get_package("sto")
+ sto = self.get_package("sto", type_only=True)
if sto is None:
steady = np.full((len(period_data["perlen"])), True, dtype=bool)
else:
steady = np.full((len(period_data["perlen"])), False, dtype=bool)
ss_periods = sto.steady_state.get_active_key_dict()
+ for period, val in ss_periods.items():
+ if val:
+ ss_periods[period] = sto.steady_state.get_data(period)
tr_periods = sto.transient.get_active_key_dict()
+ for period, val in tr_periods.items():
+ if val:
+ tr_periods[period] = sto.transient.get_data(period)
if ss_periods:
last_ss_value = False
# loop through steady state array
for index, value in enumerate(steady):
# resolve if current index is steady state or transient
- if index in ss_periods:
+ if index in ss_periods and ss_periods[index]:
last_ss_value = True
- elif index in tr_periods:
+ elif index in tr_periods and tr_periods[index]:
last_ss_value = False
- if last_ss_value == True:
+ if last_ss_value is True:
steady[index] = True
# build model time
@@ -487,8 +493,8 @@ def modelgrid(self):
iac=dis.iac.array,
ja=dis.ja.array,
)
- elif self.get_grid_type() == DiscretizationType.DISL:
- dis = self.get_package("disl")
+ elif self.get_grid_type() == DiscretizationType.DISV1D:
+ dis = self.get_package("disv1d")
if not hasattr(dis, "_init_complete"):
if not hasattr(dis, "cell1d"):
# disv package has not yet been initialized
@@ -525,6 +531,44 @@ def modelgrid(self):
yoff=self._modelgrid.yoffset,
angrot=self._modelgrid.angrot,
)
+ elif self.get_grid_type() == DiscretizationType.DISV2D:
+ dis = self.get_package("disv2d")
+ if not hasattr(dis, "_init_complete"):
+ if not hasattr(dis, "cell2d"):
+ # disv package has not yet been initialized
+ return self._modelgrid
+ else:
+ # disv package has been partially initialized
+ self._modelgrid = VertexGrid(
+ vertices=dis.vertices.array,
+ cell2d=dis.cell2d.array,
+ top=None,
+ botm=None,
+ idomain=None,
+ lenuni=None,
+ crs=self._modelgrid.crs,
+ xoff=self._modelgrid.xoffset,
+ yoff=self._modelgrid.yoffset,
+ angrot=self._modelgrid.angrot,
+ )
+ else:
+ botm = dis.botm.array
+ idomain = dis.idomain.array
+ if idomain is None:
+ force_resync = True
+ idomain = self._resolve_idomain(idomain, botm)
+ self._modelgrid = VertexGrid(
+ vertices=dis.vertices.array,
+ cell2d=dis.cell2d.array,
+ top=dis.top.array,
+ botm=botm,
+ idomain=idomain,
+ lenuni=dis.length_units.array,
+ crs=self._modelgrid.crs,
+ xoff=self._modelgrid.xoffset,
+ yoff=self._modelgrid.yoffset,
+ angrot=self._modelgrid.angrot,
+ )
else:
return self._modelgrid
@@ -638,10 +682,13 @@ def laycbd(self):
@property
def output(self):
+ budgetkey = None
+ if self.model_type == "gwt6":
+ budgetkey = "MASS BUDGET FOR ENTIRE MODEL"
try:
- return self.oc.output
+ return MF6Output(self.oc, budgetkey=budgetkey)
except AttributeError:
- return MF6Output(self)
+ return MF6Output(self, budgetkey=budgetkey)
def export(self, f, **kwargs):
"""Method to export a model to a shapefile or netcdf file
@@ -653,7 +700,7 @@ def export(self, f, **kwargs):
or dictionary of ....
**kwargs : keyword arguments
modelgrid: flopy.discretization.Grid
- User supplied modelgrid object which will supercede the built
+ User supplied modelgrid object which will supersede the built
in modelgrid object
if fmt is set to 'vtk', parameters of Vtk initializer
@@ -787,6 +834,9 @@ def load_base(
package_recarray = instance.simulation_data.mfdata[
(modelname, "nam", "packages", "packages")
]
+ if package_recarray.array is None:
+ return instance
+
for item in package_recarray.get_data():
if item[0] in priority_packages:
packages_ordered.insert(0, (item[0], item[1], item[2]))
@@ -830,7 +880,7 @@ def load_base(
sim_data = simulation.simulation_data
if ftype == "dis" and not sim_data.max_columns_user_set:
# set column wrap to ncol
- dis = instance.get_package("dis")
+ dis = instance.get_package("dis", type_only=True)
if dis is not None and hasattr(dis, "ncol"):
sim_data.max_columns_of_data = dis.ncol.get_data()
sim_data.max_columns_user_set = False
@@ -1036,7 +1086,7 @@ def inspect_cells(
h_columns = ",".join(search_output.data_header)
fd.write(f",{h_columns}\n")
else:
- fd.write(f",cellid,data\n")
+ fd.write(",cellid,data\n")
# write data found
for index, data_entry in enumerate(
search_output.data_entries
@@ -1068,7 +1118,7 @@ def inspect_cells(
)
fd.write(f",{output}")
fd.write(self._format_data_entry(data_entry))
- fd.write(f"\n")
+ fd.write("\n")
return output_by_package
def match_array_cells(
@@ -1203,11 +1253,18 @@ def get_grid_type(self):
return DiscretizationType.DISU
elif (
package_recarray.search_data(
- f"disl{structure.get_version_string()}", 0
+ f"disv1d{structure.get_version_string()}", 0
+ )
+ is not None
+ ):
+ return DiscretizationType.DISV1D
+ elif (
+ package_recarray.search_data(
+ f"disv2d{structure.get_version_string()}", 0
)
is not None
):
- return DiscretizationType.DISL
+ return DiscretizationType.DISV2D
return DiscretizationType.UNDEFINED
@@ -1242,7 +1299,7 @@ def get_steadystate_list(self):
ss_list.append(True)
index += 1
- storage = self.get_package("sto")
+ storage = self.get_package("sto", type_only=True)
if storage is not None:
tr_keys = storage.transient.get_keys(True)
ss_keys = storage.steady_state.get_keys(True)
@@ -1278,7 +1335,7 @@ def is_valid(self):
for package_struct in self.structure.package_struct_objs.values():
if (
not package_struct.optional
- and not package_struct.file_type in self.package_type_dict
+ and package_struct.file_type not in self.package_type_dict
):
return False
diff --git a/flopy/mf6/mfpackage.py b/flopy/mf6/mfpackage.py
index 004a8ed77..43a49e5c3 100644
--- a/flopy/mf6/mfpackage.py
+++ b/flopy/mf6/mfpackage.py
@@ -1031,6 +1031,13 @@ def load(self, block_header, fd, strict=True):
and result[1][:3].upper() == "END"
):
break
+ else:
+ # block empty, store empty array in block variables
+ empty_arr = []
+ for ds in self.datasets.values():
+ if isinstance(ds, mfdata.MFTransient):
+ transient_key = block_header.get_transient_key()
+ ds.set_data(empty_arr, key=transient_key)
self.loaded = True
self.is_valid()
@@ -1109,7 +1116,7 @@ def _find_data_by_keyword(self, line, fd, initial_comment):
elif (
arr_line[0].lower() == "readasarrays"
and self.path[-1].lower() == "options"
- and self._container_package.structure.read_as_arrays == False
+ and self._container_package.structure.read_as_arrays is False
):
error_msg = (
"ERROR: Attempting to read a ReadAsArrays "
@@ -1243,7 +1250,7 @@ def _add_to_info_list(
def _save_comments(self, arr_line, line, key, comments):
# FIX: Save these comments somewhere in the data set
- if not key in self.datasets_keyword:
+ if key not in self.datasets_keyword:
if MFComment.is_comment(key, True):
if comments:
comments.append("\n")
@@ -1489,8 +1496,9 @@ def _write_block(self, fd, block_header, ext_file_action):
>= VerbosityLevel.verbose.value
):
print(
- " writing data {} ({}).."
- ".".format(dataset.structure.name, transient_key)
+ " writing data {} ({}).." ".".format(
+ dataset.structure.name, transient_key
+ )
)
if basic_list:
ext_fname = dataset.external_file_name(transient_key)
@@ -1583,7 +1591,7 @@ def _write_block(self, fd, block_header, ext_file_action):
fd.write("\n")
def is_allowed(self):
- """Determine if block is valid based on the values of dependant
+ """Determine if block is valid based on the values of dependent
MODFLOW variables."""
if self.structure.variable_dependant_path:
# fill in empty part of the path with the current path
@@ -2096,8 +2104,8 @@ def check(self, f=None, verbose=True, level=1, checktype=None):
not datautil.DatumUtil.is_float(
row[data_index]
)
- and not row[data_index]
- in time_series_name_dict
+ and row[data_index]
+ not in time_series_name_dict
):
desc = (
f"Invalid non-numeric "
@@ -2120,8 +2128,8 @@ def check(self, f=None, verbose=True, level=1, checktype=None):
val = np.isnan(np.sum(data))
if val:
desc = (
- f"One or more nan values were "
- f"found in auxiliary data."
+ "One or more nan values were "
+ "found in auxiliary data."
)
chk._add_to_summary(
"Warning",
@@ -2165,8 +2173,7 @@ def _get_data_str(self, formal, show_data=True):
bl_repr = repr(block)
if len(bl_repr.strip()) > 0:
data_str = (
- "{}Block {}\n--------------------\n{}"
- "\n".format(
+ "{}Block {}\n--------------------\n{}" "\n".format(
data_str, block.structure.name, repr(block)
)
)
@@ -2174,8 +2181,7 @@ def _get_data_str(self, formal, show_data=True):
bl_str = str(block)
if len(bl_str.strip()) > 0:
data_str = (
- "{}Block {}\n--------------------\n{}"
- "\n".format(
+ "{}Block {}\n--------------------\n{}" "\n".format(
data_str, block.structure.name, str(block)
)
)
@@ -2575,7 +2581,7 @@ def build_child_package(self, pkg_type, data, parameter_name, filerecord):
if data is not None:
package_group = getattr(self, pkg_type)
# build child package file name
- child_path = package_group._next_default_file_path()
+ child_path = package_group.next_default_file_path()
# create new empty child package
package_obj = self.package_factory(
pkg_type, self.model_or_sim.model_type
@@ -2977,7 +2983,7 @@ def _load_blocks(self, fd_input_file, strict=True, max_blocks=sys.maxsize):
block_header_info, fd_input_file, strict
)
- # write post block comment comment
+ # write post block comment
self._simulation_data.mfdata[
cur_block.block_headers[-1].blk_post_comment_path
] = self.post_block_comments
@@ -3381,7 +3387,7 @@ def __file_path_taken(self, possible_path):
return True
return False
- def _next_default_file_path(self):
+ def next_default_file_path(self):
possible_path = self.__default_file_path_base(self._cpparent.filename)
suffix = 0
while self.__file_path_taken(possible_path):
@@ -3399,7 +3405,7 @@ def init_package(self, package, fname, remove_packages=True):
self._remove_packages(fname)
if fname is None:
# build a file name
- fname = self._next_default_file_path()
+ fname = self.next_default_file_path()
package._filename = fname
# check file record variable
found = False
@@ -3437,7 +3443,7 @@ def _update_filename(self, old_fname, new_fname):
def _append_package(self, package, fname, update_frecord=True):
if fname is None:
# build a file name
- fname = self._next_default_file_path()
+ fname = self.next_default_file_path()
package._filename = fname
if update_frecord:
@@ -3457,11 +3463,12 @@ def _append_package(self, package, fname, update_frecord=True):
# add the package to the list
self._packages.append(package)
- def _remove_packages(self, fname=None):
+ def _remove_packages(self, fname=None, only_pop_from_list=False):
rp_list = []
for idx, package in enumerate(self._packages):
if fname is None or package.filename == fname:
- self._model_or_sim.remove_package(package)
+ if not only_pop_from_list:
+ self._model_or_sim.remove_package(package)
rp_list.append(idx)
for idx in reversed(rp_list):
self._packages.pop(idx)
diff --git a/flopy/mf6/mfsimbase.py b/flopy/mf6/mfsimbase.py
index 898e42836..e924bfebf 100644
--- a/flopy/mf6/mfsimbase.py
+++ b/flopy/mf6/mfsimbase.py
@@ -254,7 +254,7 @@ def __init__(self, path: Union[str, os.PathLike], mfsim):
self.verify_data = True
self.debug = False
self.verbose = True
- self.verbosity_level = VerbosityLevel.normal
+ self._verbosity_level = VerbosityLevel.normal
self.max_columns_user_set = False
self.max_columns_auto_set = False
self.use_pandas = True
@@ -275,6 +275,17 @@ def __init__(self, path: Union[str, os.PathLike], mfsim):
# other external files referenced
self.referenced_files = {}
+ @property
+ def verbosity_level(self):
+ return self._verbosity_level
+
+ @verbosity_level.setter
+ def verbosity_level(self, val):
+ if isinstance(val, VerbosityLevel):
+ self._verbosity_level = val
+ elif isinstance(val, int):
+ self._verbosity_level = VerbosityLevel(val)
+
@property
def lazy_io(self):
if not self.auto_set_sizes and not self.verify_data:
@@ -614,9 +625,9 @@ def __str__(self):
def _get_data_str(self, formal):
file_mgt = self.simulation_data.mfpath
data_str = (
- "sim_name = {}\nsim_path = {}\nexe_name = "
- "{}\n"
- "\n".format(self.name, file_mgt.get_sim_path(), self.exe_name)
+ "sim_name = {}\nsim_path = {}\nexe_name = " "{}\n" "\n".format(
+ self.name, file_mgt.get_sim_path(), self.exe_name
+ )
)
for package in self._packagelist:
@@ -805,6 +816,9 @@ def load(
package="nam",
message=message,
)
+ if models is None:
+ return instance
+
for item in models:
# resolve model working folder and name file
path, name_file = os.path.split(item[1])
@@ -1306,6 +1320,26 @@ def register_solution_package(
mfdata_except=mfde, package="nam", message=message
)
+ def _create_package(self, package_type, package_data):
+ if package_data is None:
+ return None
+ if not isinstance(package_data, dict):
+ message = (
+ "Error occurred while creating the solution package "
+ f"{package_type}. Package data must be provided in a "
+ f"dictionary. User provided type {type(package_data)}."
+ )
+ raise MFDataException(package=package_type, message=message)
+ # find package - only supporting utl packages for now
+ package_obj = self.package_factory(package_type, "utl")
+ if package_obj is not None:
+ # determine file name
+ if "filename" not in package_data:
+ package_data["filename"] = f"{self.name}.{package_type}"
+ # create package which should automatically register with the
+ # simulation
+ pkg = package_obj(self, **package_data)
+
@staticmethod
def _rename_package_group(group_dict, name):
package_type_count = {}
@@ -1535,7 +1569,7 @@ def write_simulation(
if not sim_data.max_columns_user_set:
# search for dis packages
for model in self._models.values():
- dis = model.get_package("dis")
+ dis = model.get_package("dis", type_only=True)
if dis is not None and hasattr(dis, "ncol"):
sim_data.max_columns_of_data = dis.ncol.get_data()
sim_data.max_columns_user_set = False
@@ -1631,6 +1665,7 @@ def run_simulation(
normal_msg="normal termination",
use_async=False,
cargs=None,
+ custom_print=None,
):
"""
Run the simulation.
@@ -1657,6 +1692,11 @@ def run_simulation(
cargs : str or list of strings
Additional command line arguments to pass to the executable.
default is None
+ custom_print: callable
+ Optional callbale for printing. It will replace the builtin
+ print function. This is useful for shorter prints or integration
+ into other systems such as GUIs.
+ default is None, i.e. use the builtion print
Returns
--------
@@ -1683,6 +1723,7 @@ def run_simulation(
normal_msg=normal_msg,
use_async=use_async,
cargs=cargs,
+ custom_print=custom_print,
)
def delete_output_files(self):
@@ -1728,6 +1769,17 @@ def remove_package(self, package_name):
self._remove_package(package)
+ # if this is a package referenced from a filerecord, remove filerecord
+ # from name file
+ file_record_name = f"_{package.package_type}_filerecord"
+ if hasattr(self.name_file, file_record_name):
+ file_record = getattr(self.name_file, file_record_name)
+ if isinstance(file_record, mfdata.MFData):
+ file_record.set_data(None)
+ if hasattr(self.name_file, package.package_type):
+ child_pkgs = getattr(self.name_file, package.package_type)
+ child_pkgs._remove_packages(package.filename, True)
+
@property
def model_dict(self):
"""
@@ -2101,6 +2153,13 @@ def register_package(
package.filename = file_name
self._other_files[file_name] = package
+ # If this package is declared in the namefile options block,
+ # update namefile
+ file_record = f"_{package.package_type}_filerecord"
+ if hasattr(self.name_file, file_record):
+ fr_obj = getattr(self.name_file, file_record)
+ fr_obj.set_data(package.filename)
+
if package.package_type.lower() in self.structure.package_struct_objs:
return (
path,
diff --git a/flopy/mf6/modflow/__init__.py b/flopy/mf6/modflow/__init__.py
index e5a5ce166..8748cf995 100644
--- a/flopy/mf6/modflow/__init__.py
+++ b/flopy/mf6/modflow/__init__.py
@@ -1,6 +1,26 @@
from .mfsimulation import MFSimulation # isort:skip
from .mfems import ModflowEms
from .mfgnc import ModflowGnc
+from .mfgwe import ModflowGwe
+from .mfgweadv import ModflowGweadv
+from .mfgwecnd import ModflowGwecnd
+from .mfgwectp import ModflowGwectp
+from .mfgwedis import ModflowGwedis
+from .mfgwedisu import ModflowGwedisu
+from .mfgwedisv import ModflowGwedisv
+from .mfgweesl import ModflowGweesl
+from .mfgweest import ModflowGweest
+from .mfgwefmi import ModflowGwefmi
+from .mfgwegwe import ModflowGwegwe
+from .mfgweic import ModflowGweic
+from .mfgwelke import ModflowGwelke
+from .mfgwemve import ModflowGwemve
+from .mfgwemwe import ModflowGwemwe
+from .mfgwenam import ModflowGwenam
+from .mfgweoc import ModflowGweoc
+from .mfgwesfe import ModflowGwesfe
+from .mfgwessm import ModflowGwessm
+from .mfgweuze import ModflowGweuze
from .mfgwf import ModflowGwf
from .mfgwfapi import ModflowGwfapi
from .mfgwfbuy import ModflowGwfbuy
@@ -14,6 +34,7 @@
from .mfgwfevta import ModflowGwfevta
from .mfgwfghb import ModflowGwfghb
from .mfgwfgnc import ModflowGwfgnc
+from .mfgwfgwe import ModflowGwfgwe
from .mfgwfgwf import ModflowGwfgwf
from .mfgwfgwt import ModflowGwfgwt
from .mfgwfhfb import ModflowGwfhfb
@@ -24,6 +45,7 @@
from .mfgwfnam import ModflowGwfnam
from .mfgwfnpf import ModflowGwfnpf
from .mfgwfoc import ModflowGwfoc
+from .mfgwfprt import ModflowGwfprt
from .mfgwfrch import ModflowGwfrch
from .mfgwfrcha import ModflowGwfrcha
from .mfgwfriv import ModflowGwfriv
@@ -58,14 +80,26 @@
from .mfmvr import ModflowMvr
from .mfmvt import ModflowMvt
from .mfnam import ModflowNam
+from .mfprt import ModflowPrt
+from .mfprtdis import ModflowPrtdis
+from .mfprtdisv import ModflowPrtdisv
+from .mfprtfmi import ModflowPrtfmi
+from .mfprtmip import ModflowPrtmip
+from .mfprtnam import ModflowPrtnam
+from .mfprtoc import ModflowPrtoc
+from .mfprtprp import ModflowPrtprp
+from .mfpts import ModflowPts
from .mfsimulation import MFSimulation
from .mftdis import ModflowTdis
from .mfutlats import ModflowUtlats
+from .mfutlhpc import ModflowUtlhpc
from .mfutllaktab import ModflowUtllaktab
from .mfutlobs import ModflowUtlobs
from .mfutlsfrtab import ModflowUtlsfrtab
from .mfutlspc import ModflowUtlspc
from .mfutlspca import ModflowUtlspca
+from .mfutlspt import ModflowUtlspt
+from .mfutlspta import ModflowUtlspta
from .mfutltas import ModflowUtltas
from .mfutlts import ModflowUtlts
from .mfutltvk import ModflowUtltvk
diff --git a/flopy/mf6/modflow/mfems.py b/flopy/mf6/modflow/mfems.py
index 5e1f0c05d..93dcce544 100644
--- a/flopy/mf6/modflow/mfems.py
+++ b/flopy/mf6/modflow/mfems.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
diff --git a/flopy/mf6/modflow/mfgnc.py b/flopy/mf6/modflow/mfgnc.py
index 9b7ddd997..434f39752 100644
--- a/flopy/mf6/modflow/mfgnc.py
+++ b/flopy/mf6/modflow/mfgnc.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -11,9 +11,9 @@ class ModflowGnc(mfpackage.MFPackage):
Parameters
----------
- simulation : MFSimulation
- Simulation that this package is a part of. Package is automatically
- added to simulation when it is initialized.
+ parent_model_or_package : MFModel/MFPackage
+ Parent_model_or_package that this package is a part of. Package is automatically
+ added to parent_model_or_package when it is initialized.
loading_package : bool
Do not set this parameter. It is intended for debugging and internal
processing purposes only.
@@ -193,7 +193,7 @@ class ModflowGnc(mfpackage.MFPackage):
def __init__(
self,
- simulation,
+ parent_model_or_package,
loading_package=False,
print_input=None,
print_flows=None,
@@ -206,7 +206,12 @@ def __init__(
**kwargs,
):
super().__init__(
- simulation, "gnc", filename, pname, loading_package, **kwargs
+ parent_model_or_package,
+ "gnc",
+ filename,
+ pname,
+ loading_package,
+ **kwargs,
)
# set up variables
diff --git a/flopy/mf6/modflow/mfgwe.py b/flopy/mf6/modflow/mfgwe.py
new file mode 100644
index 000000000..b49806347
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwe.py
@@ -0,0 +1,135 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfmodel
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
+
+
+class ModflowGwe(mfmodel.MFModel):
+ """
+ Modflowgwe defines a gwe model
+
+ Parameters
+ ----------
+ modelname : string
+ name of the model
+ model_nam_file : string
+ relative path to the model name file from model working folder
+ version : string
+ version of modflow
+ exe_name : string
+ model executable name
+ model_ws : string
+ model working folder path
+ sim : MFSimulation
+ Simulation that this model is a part of. Model is automatically
+ added to simulation when it is initialized.
+ list : string
+ * list (string) is name of the listing file to create for this GWE
+ model. If not specified, then the name of the list file will be the
+ basename of the GWE model name file and the ".lst" extension. For
+ example, if the GWE name file is called "my.model.nam" then the list
+ file will be called "my.model.lst".
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of all model
+ stress package information will be written to the listing file
+ immediately after it is read.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of all model
+ package flow rates will be printed to the listing file for every
+ stress period time step in which "BUDGET PRINT" is specified in
+ Output Control. If there is no Output Control option and
+ "PRINT_FLOWS" is specified, then flow rates are printed for the last
+ time step of each stress period.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that all model package flow
+ terms will be written to the file specified with "BUDGET FILEOUT" in
+ Output Control.
+ packages : [ftype, fname, pname]
+ * ftype (string) is the file type, which must be one of the following
+ character values shown in table ref{table:ftype-gwe}. Ftype may be
+ entered in any combination of uppercase and lowercase.
+ * fname (string) is the name of the file containing the package input.
+ The path to the file should be included if the file is not located in
+ the folder where the program was run.
+ * pname (string) is the user-defined name for the package. PNAME is
+ restricted to 16 characters. No spaces are allowed in PNAME. PNAME
+ character values are read and stored by the program for stress
+ packages only. These names may be useful for labeling purposes when
+ multiple stress packages of the same type are located within a single
+ GWE Model. If PNAME is specified for a stress package, then PNAME
+ will be used in the flow budget table in the listing file; it will
+ also be used for the text entry in the cell-by-cell budget file.
+ PNAME is case insensitive and is stored in all upper case letters.
+
+ Methods
+ -------
+ load : (simulation : MFSimulationData, model_name : string,
+ namfile : string, version : string, exe_name : string,
+ model_ws : string, strict : boolean) : MFSimulation
+ a class method that loads a model from files
+ """
+
+ model_type = "gwe"
+
+ def __init__(
+ self,
+ simulation,
+ modelname="model",
+ model_nam_file=None,
+ version="mf6",
+ exe_name="mf6",
+ model_rel_path=".",
+ list=None,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ **kwargs,
+ ):
+ super().__init__(
+ simulation,
+ model_type="gwe6",
+ modelname=modelname,
+ model_nam_file=model_nam_file,
+ version=version,
+ exe_name=exe_name,
+ model_rel_path=model_rel_path,
+ **kwargs,
+ )
+
+ self.name_file.list.set_data(list)
+ self.name_file.print_input.set_data(print_input)
+ self.name_file.print_flows.set_data(print_flows)
+ self.name_file.save_flows.set_data(save_flows)
+
+ self.list = self.name_file.list
+ self.print_input = self.name_file.print_input
+ self.print_flows = self.name_file.print_flows
+ self.save_flows = self.name_file.save_flows
+
+ @classmethod
+ def load(
+ cls,
+ simulation,
+ structure,
+ modelname="NewModel",
+ model_nam_file="modflowtest.nam",
+ version="mf6",
+ exe_name="mf6",
+ strict=True,
+ model_rel_path=".",
+ load_only=None,
+ ):
+ return mfmodel.MFModel.load_base(
+ cls,
+ simulation,
+ structure,
+ modelname,
+ model_nam_file,
+ "gwe6",
+ version,
+ exe_name,
+ strict,
+ model_rel_path,
+ load_only,
+ )
diff --git a/flopy/mf6/modflow/mfgweadv.py b/flopy/mf6/modflow/mfgweadv.py
new file mode 100644
index 000000000..bc1f70bb4
--- /dev/null
+++ b/flopy/mf6/modflow/mfgweadv.py
@@ -0,0 +1,67 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+
+
+class ModflowGweadv(mfpackage.MFPackage):
+ """
+ ModflowGweadv defines a adv package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ scheme : string
+ * scheme (string) scheme used to solve the advection term. Can be
+ upstream, central, or TVD. If not specified, upstream weighting is
+ the default weighting scheme.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ package_abbr = "gweadv"
+ _package_type = "adv"
+ dfn_file_name = "gwe-adv.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name scheme",
+ "type string",
+ "valid central upstream tvd",
+ "reader urword",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ scheme=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "adv", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.scheme = self.build_mfdata("scheme", scheme)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwecnd.py b/flopy/mf6/modflow/mfgwecnd.py
new file mode 100644
index 000000000..f8954199d
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwecnd.py
@@ -0,0 +1,226 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator
+
+
+class ModflowGwecnd(mfpackage.MFPackage):
+ """
+ ModflowGwecnd defines a cnd package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ xt3d_off : boolean
+ * xt3d_off (boolean) deactivate the xt3d method and use the faster and
+ less accurate approximation. This option may provide a fast and
+ accurate solution under some circumstances, such as when flow aligns
+ with the model grid, there is no mechanical dispersion, or when the
+ longitudinal and transverse dispersivities are equal. This option may
+ also be used to assess the computational demand of the XT3D approach
+ by noting the run time differences with and without this option on.
+ xt3d_rhs : boolean
+ * xt3d_rhs (boolean) add xt3d terms to right-hand side, when possible.
+ This option uses less memory, but may require more iterations.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
+ alh : [double]
+ * alh (double) longitudinal dispersivity in horizontal direction. If
+ flow is strictly horizontal, then this is the longitudinal
+ dispersivity that will be used. If flow is not strictly horizontal or
+ strictly vertical, then the longitudinal dispersivity is a function
+ of both ALH and ALV. If mechanical dispersion is represented (by
+ specifying any dispersivity values) then this array is required.
+ alv : [double]
+ * alv (double) longitudinal dispersivity in vertical direction. If flow
+ is strictly vertical, then this is the longitudinal dispsersivity
+ value that will be used. If flow is not strictly horizontal or
+ strictly vertical, then the longitudinal dispersivity is a function
+ of both ALH and ALV. If this value is not specified and mechanical
+ dispersion is represented, then this array is set equal to ALH.
+ ath1 : [double]
+ * ath1 (double) transverse dispersivity in horizontal direction. This
+ is the transverse dispersivity value for the second ellipsoid axis.
+ If flow is strictly horizontal and directed in the x direction (along
+ a row for a regular grid), then this value controls spreading in the
+ y direction. If mechanical dispersion is represented (by specifying
+ any dispersivity values) then this array is required.
+ ath2 : [double]
+ * ath2 (double) transverse dispersivity in horizontal direction. This
+ is the transverse dispersivity value for the third ellipsoid axis. If
+ flow is strictly horizontal and directed in the x direction (along a
+ row for a regular grid), then this value controls spreading in the z
+ direction. If this value is not specified and mechanical dispersion
+ is represented, then this array is set equal to ATH1.
+ atv : [double]
+ * atv (double) transverse dispersivity when flow is in vertical
+ direction. If flow is strictly vertical and directed in the z
+ direction, then this value controls spreading in the x and y
+ directions. If this value is not specified and mechanical dispersion
+ is represented, then this array is set equal to ATH2.
+ ktw : [double]
+ * ktw (double) thermal conductivity of the simulated fluid. Note that
+ the CND Package does not account for the tortuosity of the flow paths
+ when solving for the conductive spread of heat. If tortuosity plays
+ an important role in the thermal conductivity calculation, its effect
+ should be reflected in the value specified for KTW.
+ kts : [double]
+ * kts (double) thermal conductivity of the aquifer material
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ alh = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "alh"))
+ alv = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "alv"))
+ ath1 = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "ath1"))
+ ath2 = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "ath2"))
+ atv = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "atv"))
+ ktw = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "ktw"))
+ kts = ArrayTemplateGenerator(("gwe6", "cnd", "griddata", "kts"))
+ package_abbr = "gwecnd"
+ _package_type = "cnd"
+ dfn_file_name = "gwe-cnd.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name xt3d_off",
+ "type keyword",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name xt3d_rhs",
+ "type keyword",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
+ [
+ "block griddata",
+ "name alh",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name alv",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name ath1",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name ath2",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name atv",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name ktw",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name kts",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ xt3d_off=None,
+ xt3d_rhs=None,
+ export_array_ascii=None,
+ alh=None,
+ alv=None,
+ ath1=None,
+ ath2=None,
+ atv=None,
+ ktw=None,
+ kts=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "cnd", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.xt3d_off = self.build_mfdata("xt3d_off", xt3d_off)
+ self.xt3d_rhs = self.build_mfdata("xt3d_rhs", xt3d_rhs)
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
+ self.alh = self.build_mfdata("alh", alh)
+ self.alv = self.build_mfdata("alv", alv)
+ self.ath1 = self.build_mfdata("ath1", ath1)
+ self.ath2 = self.build_mfdata("ath2", ath2)
+ self.atv = self.build_mfdata("atv", atv)
+ self.ktw = self.build_mfdata("ktw", ktw)
+ self.kts = self.build_mfdata("kts", kts)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwectp.py b/flopy/mf6/modflow/mfgwectp.py
new file mode 100644
index 000000000..c6193dcad
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwectp.py
@@ -0,0 +1,358 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowGwectp(mfpackage.MFPackage):
+ """
+ ModflowGwectp defines a ctp package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ auxiliary : [string]
+ * auxiliary (string) defines an array of one or more auxiliary variable
+ names. There is no limit on the number of auxiliary variables that
+ can be provided on this line; however, lists of information provided
+ in subsequent blocks must have a column of data for each auxiliary
+ variable name defined here. The number of auxiliary variables
+ detected on this line determines the value for naux. Comments cannot
+ be provided anywhere on this line as they will be interpreted as
+ auxiliary variable names. Auxiliary variables may not be used by the
+ package, but they will be available for use by other parts of the
+ program. The program will terminate with an error if auxiliary
+ variables are specified on more than one line in the options block.
+ auxmultname : string
+ * auxmultname (string) name of auxiliary variable to be used as
+ multiplier of temperature value.
+ boundnames : boolean
+ * boundnames (boolean) keyword to indicate that boundary names may be
+ provided with the list of constant temperature cells.
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of constant
+ temperature information will be written to the listing file
+ immediately after it is read.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of constant
+ temperature flow rates will be printed to the listing file for every
+ stress period time step in which "BUDGET PRINT" is specified in
+ Output Control. If there is no Output Control option and
+ "PRINT_FLOWS" is specified, then flow rates are printed for the last
+ time step of each stress period.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that constant temperature
+ flow terms will be written to the file specified with "BUDGET
+ FILEOUT" in Output Control.
+ timeseries : {varname:data} or timeseries data
+ * Contains data for the ts package. Data can be stored in a dictionary
+ containing data for the ts package with variable names as keys and
+ package data as values. Data just for the timeseries variable is also
+ acceptable. See ts package documentation for more information.
+ observations : {varname:data} or continuous data
+ * Contains data for the obs package. Data can be stored in a dictionary
+ containing data for the obs package with variable names as keys and
+ package data as values. Data just for the observations variable is
+ also acceptable. See obs package documentation for more information.
+ maxbound : integer
+ * maxbound (integer) integer value specifying the maximum number of
+ constant temperatures cells that will be specified for use during any
+ stress period.
+ stress_period_data : [cellid, temp, aux, boundname]
+ * cellid ((integer, ...)) is the cell identifier, and depends on the
+ type of grid that is used for the simulation. For a structured grid
+ that uses the DIS input file, CELLID is the layer, row, and column.
+ For a grid that uses the DISV input file, CELLID is the layer and
+ CELL2D number. If the model uses the unstructured discretization
+ (DISU) input file, CELLID is the node number for the cell. This
+ argument is an index variable, which means that it should be treated
+ as zero-based when working with FloPy and Python. Flopy will
+ automatically subtract one when loading index variables and add one
+ when writing index variables.
+ * temp (double) is the constant temperature value. If the Options block
+ includes a TIMESERIESFILE entry (see the "Time-Variable Input"
+ section), values can be obtained from a time series by entering the
+ time-series name in place of a numeric value.
+ * aux (double) represents the values of the auxiliary variables for
+ each constant temperature. The values of auxiliary variables must be
+ present for each constant temperature. The values must be specified
+ in the order of the auxiliary variables specified in the OPTIONS
+ block. If the package supports time series and the Options block
+ includes a TIMESERIESFILE entry (see the "Time-Variable Input"
+ section), values can be obtained from a time series by entering the
+ time-series name in place of a numeric value.
+ * boundname (string) name of the constant temperature cell. BOUNDNAME
+ is an ASCII character variable that can contain as many as 40
+ characters. If BOUNDNAME contains spaces in it, then the entire name
+ must be enclosed within single quotes.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ auxiliary = ListTemplateGenerator(("gwe6", "ctp", "options", "auxiliary"))
+ ts_filerecord = ListTemplateGenerator(
+ ("gwe6", "ctp", "options", "ts_filerecord")
+ )
+ obs_filerecord = ListTemplateGenerator(
+ ("gwe6", "ctp", "options", "obs_filerecord")
+ )
+ stress_period_data = ListTemplateGenerator(
+ ("gwe6", "ctp", "period", "stress_period_data")
+ )
+ package_abbr = "gwectp"
+ _package_type = "ctp"
+ dfn_file_name = "gwe-ctp.dfn"
+
+ dfn = [
+ [
+ "header",
+ "multi-package",
+ ],
+ [
+ "block options",
+ "name auxiliary",
+ "type string",
+ "shape (naux)",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name auxmultname",
+ "type string",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name boundnames",
+ "type keyword",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_input",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal iprflow",
+ ],
+ [
+ "block options",
+ "name print_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal ipakcb",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal iprpak",
+ ],
+ [
+ "block options",
+ "name ts_filerecord",
+ "type record ts6 filein ts6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package ts",
+ "construct_data timeseries",
+ "parameter_name timeseries",
+ ],
+ [
+ "block options",
+ "name ts6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name filein",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name ts6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "reader urword",
+ "optional false",
+ "tagged false",
+ ],
+ [
+ "block options",
+ "name obs_filerecord",
+ "type record obs6 filein obs6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package obs",
+ "construct_data continuous",
+ "parameter_name observations",
+ ],
+ [
+ "block options",
+ "name obs6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name obs6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block dimensions",
+ "name maxbound",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name iper",
+ "type integer",
+ "block_variable True",
+ "in_record true",
+ "tagged false",
+ "shape",
+ "valid",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name stress_period_data",
+ "type recarray cellid temp aux boundname",
+ "shape (maxbound)",
+ "reader urword",
+ "mf6internal spd",
+ ],
+ [
+ "block period",
+ "name cellid",
+ "type integer",
+ "shape (ncelldim)",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name temp",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ "mf6internal tspvar",
+ ],
+ [
+ "block period",
+ "name aux",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "shape (naux)",
+ "reader urword",
+ "optional true",
+ "time_series true",
+ "mf6internal auxvar",
+ ],
+ [
+ "block period",
+ "name boundname",
+ "type string",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ auxiliary=None,
+ auxmultname=None,
+ boundnames=None,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ timeseries=None,
+ observations=None,
+ maxbound=None,
+ stress_period_data=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "ctp", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
+ self.auxmultname = self.build_mfdata("auxmultname", auxmultname)
+ self.boundnames = self.build_mfdata("boundnames", boundnames)
+ self.print_input = self.build_mfdata("print_input", print_input)
+ self.print_flows = self.build_mfdata("print_flows", print_flows)
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
+ self._ts_package = self.build_child_package(
+ "ts", timeseries, "timeseries", self._ts_filerecord
+ )
+ self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
+ self._obs_package = self.build_child_package(
+ "obs", observations, "continuous", self._obs_filerecord
+ )
+ self.maxbound = self.build_mfdata("maxbound", maxbound)
+ self.stress_period_data = self.build_mfdata(
+ "stress_period_data", stress_period_data
+ )
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwedis.py b/flopy/mf6/modflow/mfgwedis.py
new file mode 100644
index 000000000..c2908e593
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwedis.py
@@ -0,0 +1,253 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator
+
+
+class ModflowGwedis(mfpackage.MFPackage):
+ """
+ ModflowGwedis defines a dis package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ length_units : string
+ * length_units (string) is the length units used for this model. Values
+ can be "FEET", "METERS", or "CENTIMETERS". If not specified, the
+ default is "UNKNOWN".
+ nogrb : boolean
+ * nogrb (boolean) keyword to deactivate writing of the binary grid
+ file.
+ xorigin : double
+ * xorigin (double) x-position of the lower-left corner of the model
+ grid. A default value of zero is assigned if not specified. The value
+ for XORIGIN does not affect the model simulation, but it is written
+ to the binary grid file so that postprocessors can locate the grid in
+ space.
+ yorigin : double
+ * yorigin (double) y-position of the lower-left corner of the model
+ grid. If not specified, then a default value equal to zero is used.
+ The value for YORIGIN does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ angrot : double
+ * angrot (double) counter-clockwise rotation angle (in degrees) of the
+ lower-left corner of the model grid. If not specified, then a default
+ value of 0.0 is assigned. The value for ANGROT does not affect the
+ model simulation, but it is written to the binary grid file so that
+ postprocessors can locate the grid in space.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
+ nlay : integer
+ * nlay (integer) is the number of layers in the model grid.
+ nrow : integer
+ * nrow (integer) is the number of rows in the model grid.
+ ncol : integer
+ * ncol (integer) is the number of columns in the model grid.
+ delr : [double]
+ * delr (double) is the column spacing in the row direction.
+ delc : [double]
+ * delc (double) is the row spacing in the column direction.
+ top : [double]
+ * top (double) is the top elevation for each cell in the top model
+ layer.
+ botm : [double]
+ * botm (double) is the bottom elevation for each cell.
+ idomain : [integer]
+ * idomain (integer) is an optional array that characterizes the
+ existence status of a cell. If the IDOMAIN array is not specified,
+ then all model cells exist within the solution. If the IDOMAIN value
+ for a cell is 0, the cell does not exist in the simulation. Input and
+ output values will be read and written for the cell, but internal to
+ the program, the cell is excluded from the solution. If the IDOMAIN
+ value for a cell is 1, the cell exists in the simulation. If the
+ IDOMAIN value for a cell is -1, the cell does not exist in the
+ simulation. Furthermore, the first existing cell above will be
+ connected to the first existing cell below. This type of cell is
+ referred to as a "vertical pass through" cell.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ delr = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "delr"))
+ delc = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "delc"))
+ top = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "top"))
+ botm = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "botm"))
+ idomain = ArrayTemplateGenerator(("gwe6", "dis", "griddata", "idomain"))
+ package_abbr = "gwedis"
+ _package_type = "dis"
+ dfn_file_name = "gwe-dis.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name length_units",
+ "type string",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name nogrb",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name xorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name yorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name angrot",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
+ [
+ "block dimensions",
+ "name nlay",
+ "type integer",
+ "reader urword",
+ "optional false",
+ "default_value 1",
+ ],
+ [
+ "block dimensions",
+ "name nrow",
+ "type integer",
+ "reader urword",
+ "optional false",
+ "default_value 2",
+ ],
+ [
+ "block dimensions",
+ "name ncol",
+ "type integer",
+ "reader urword",
+ "optional false",
+ "default_value 2",
+ ],
+ [
+ "block griddata",
+ "name delr",
+ "type double precision",
+ "shape (ncol)",
+ "reader readarray",
+ "default_value 1.0",
+ ],
+ [
+ "block griddata",
+ "name delc",
+ "type double precision",
+ "shape (nrow)",
+ "reader readarray",
+ "default_value 1.0",
+ ],
+ [
+ "block griddata",
+ "name top",
+ "type double precision",
+ "shape (ncol, nrow)",
+ "reader readarray",
+ "default_value 1.0",
+ ],
+ [
+ "block griddata",
+ "name botm",
+ "type double precision",
+ "shape (ncol, nrow, nlay)",
+ "reader readarray",
+ "layered true",
+ "default_value 0.",
+ ],
+ [
+ "block griddata",
+ "name idomain",
+ "type integer",
+ "shape (ncol, nrow, nlay)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ length_units=None,
+ nogrb=None,
+ xorigin=None,
+ yorigin=None,
+ angrot=None,
+ export_array_ascii=None,
+ nlay=1,
+ nrow=2,
+ ncol=2,
+ delr=1.0,
+ delc=1.0,
+ top=1.0,
+ botm=0.0,
+ idomain=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "dis", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.length_units = self.build_mfdata("length_units", length_units)
+ self.nogrb = self.build_mfdata("nogrb", nogrb)
+ self.xorigin = self.build_mfdata("xorigin", xorigin)
+ self.yorigin = self.build_mfdata("yorigin", yorigin)
+ self.angrot = self.build_mfdata("angrot", angrot)
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
+ self.nlay = self.build_mfdata("nlay", nlay)
+ self.nrow = self.build_mfdata("nrow", nrow)
+ self.ncol = self.build_mfdata("ncol", ncol)
+ self.delr = self.build_mfdata("delr", delr)
+ self.delc = self.build_mfdata("delc", delc)
+ self.top = self.build_mfdata("top", top)
+ self.botm = self.build_mfdata("botm", botm)
+ self.idomain = self.build_mfdata("idomain", idomain)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwedisu.py b/flopy/mf6/modflow/mfgwedisu.py
new file mode 100644
index 000000000..2d21804ab
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwedisu.py
@@ -0,0 +1,521 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
+
+
+class ModflowGwedisu(mfpackage.MFPackage):
+ """
+ ModflowGwedisu defines a disu package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ length_units : string
+ * length_units (string) is the length units used for this model. Values
+ can be "FEET", "METERS", or "CENTIMETERS". If not specified, the
+ default is "UNKNOWN".
+ nogrb : boolean
+ * nogrb (boolean) keyword to deactivate writing of the binary grid
+ file.
+ xorigin : double
+ * xorigin (double) x-position of the origin used for model grid
+ vertices. This value should be provided in a real-world coordinate
+ system. A default value of zero is assigned if not specified. The
+ value for XORIGIN does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ yorigin : double
+ * yorigin (double) y-position of the origin used for model grid
+ vertices. This value should be provided in a real-world coordinate
+ system. If not specified, then a default value equal to zero is used.
+ The value for YORIGIN does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ angrot : double
+ * angrot (double) counter-clockwise rotation angle (in degrees) of the
+ model grid coordinate system relative to a real-world coordinate
+ system. If not specified, then a default value of 0.0 is assigned.
+ The value for ANGROT does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ vertical_offset_tolerance : double
+ * vertical_offset_tolerance (double) checks are performed to ensure
+ that the top of a cell is not higher than the bottom of an overlying
+ cell. This option can be used to specify the tolerance that is used
+ for checking. If top of a cell is above the bottom of an overlying
+ cell by a value less than this tolerance, then the program will not
+ terminate with an error. The default value is zero. This option
+ should generally not be used.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
+ nodes : integer
+ * nodes (integer) is the number of cells in the model grid.
+ nja : integer
+ * nja (integer) is the sum of the number of connections and NODES. When
+ calculating the total number of connections, the connection between
+ cell n and cell m is considered to be different from the connection
+ between cell m and cell n. Thus, NJA is equal to the total number of
+ connections, including n to m and m to n, and the total number of
+ cells.
+ nvert : integer
+ * nvert (integer) is the total number of (x, y) vertex pairs used to
+ define the plan-view shape of each cell in the model grid. If NVERT
+ is not specified or is specified as zero, then the VERTICES and
+ CELL2D blocks below are not read. NVERT and the accompanying VERTICES
+ and CELL2D blocks should be specified for most simulations. If the
+ XT3D or SAVE_SPECIFIC_DISCHARGE options are specified in the NPF
+ Package, then this information is required.
+ top : [double]
+ * top (double) is the top elevation for each cell in the model grid.
+ bot : [double]
+ * bot (double) is the bottom elevation for each cell.
+ area : [double]
+ * area (double) is the cell surface area (in plan view).
+ idomain : [integer]
+ * idomain (integer) is an optional array that characterizes the
+ existence status of a cell. If the IDOMAIN array is not specified,
+ then all model cells exist within the solution. If the IDOMAIN value
+ for a cell is 0, the cell does not exist in the simulation. Input and
+ output values will be read and written for the cell, but internal to
+ the program, the cell is excluded from the solution. If the IDOMAIN
+ value for a cell is 1 or greater, the cell exists in the simulation.
+ IDOMAIN values of -1 cannot be specified for the DISU Package.
+ iac : [integer]
+ * iac (integer) is the number of connections (plus 1) for each cell.
+ The sum of all the entries in IAC must be equal to NJA.
+ ja : [integer]
+ * ja (integer) is a list of cell number (n) followed by its connecting
+ cell numbers (m) for each of the m cells connected to cell n. The
+ number of values to provide for cell n is IAC(n). This list is
+ sequentially provided for the first to the last cell. The first value
+ in the list must be cell n itself, and the remaining cells must be
+ listed in an increasing order (sorted from lowest number to highest).
+ Note that the cell and its connections are only supplied for the GWE
+ cells and their connections to the other GWE cells. Also note that
+ the JA list input may be divided such that every node and its
+ connectivity list can be on a separate line for ease in readability
+ of the file. To further ease readability of the file, the node number
+ of the cell whose connectivity is subsequently listed, may be
+ expressed as a negative number, the sign of which is subsequently
+ converted to positive by the code. This argument is an index
+ variable, which means that it should be treated as zero-based when
+ working with FloPy and Python. Flopy will automatically subtract one
+ when loading index variables and add one when writing index
+ variables.
+ ihc : [integer]
+ * ihc (integer) is an index array indicating the direction between node
+ n and all of its m connections. If IHC = 0 then cell n and cell m are
+ connected in the vertical direction. Cell n overlies cell m if the
+ cell number for n is less than m; cell m overlies cell n if the cell
+ number for m is less than n. If IHC = 1 then cell n and cell m are
+ connected in the horizontal direction. If IHC = 2 then cell n and
+ cell m are connected in the horizontal direction, and the connection
+ is vertically staggered. A vertically staggered connection is one in
+ which a cell is horizontally connected to more than one cell in a
+ horizontal connection.
+ cl12 : [double]
+ * cl12 (double) is the array containing connection lengths between the
+ center of cell n and the shared face with each adjacent m cell.
+ hwva : [double]
+ * hwva (double) is a symmetric array of size NJA. For horizontal
+ connections, entries in HWVA are the horizontal width perpendicular
+ to flow. For vertical connections, entries in HWVA are the vertical
+ area for flow. Thus, values in the HWVA array contain dimensions of
+ both length and area. Entries in the HWVA array have a one-to-one
+ correspondence with the connections specified in the JA array.
+ Likewise, there is a one-to-one correspondence between entries in the
+ HWVA array and entries in the IHC array, which specifies the
+ connection type (horizontal or vertical). Entries in the HWVA array
+ must be symmetric; the program will terminate with an error if the
+ value for HWVA for an n to m connection does not equal the value for
+ HWVA for the corresponding n to m connection.
+ angldegx : [double]
+ * angldegx (double) is the angle (in degrees) between the horizontal
+ x-axis and the outward normal to the face between a cell and its
+ connecting cells. The angle varies between zero and 360.0 degrees,
+ where zero degrees points in the positive x-axis direction, and 90
+ degrees points in the positive y-axis direction. ANGLDEGX is only
+ needed if horizontal anisotropy is specified in the NPF Package, if
+ the XT3D option is used in the NPF Package, or if the
+ SAVE_SPECIFIC_DISCHARGE option is specified in the NPF Package.
+ ANGLDEGX does not need to be specified if these conditions are not
+ met. ANGLDEGX is of size NJA; values specified for vertical
+ connections and for the diagonal position are not used. Note that
+ ANGLDEGX is read in degrees, which is different from MODFLOW-USG,
+ which reads a similar variable (ANGLEX) in radians.
+ vertices : [iv, xv, yv]
+ * iv (integer) is the vertex number. Records in the VERTICES block must
+ be listed in consecutive order from 1 to NVERT. This argument is an
+ index variable, which means that it should be treated as zero-based
+ when working with FloPy and Python. Flopy will automatically subtract
+ one when loading index variables and add one when writing index
+ variables.
+ * xv (double) is the x-coordinate for the vertex.
+ * yv (double) is the y-coordinate for the vertex.
+ cell2d : [icell2d, xc, yc, ncvert, icvert]
+ * icell2d (integer) is the cell2d number. Records in the CELL2D block
+ must be listed in consecutive order from 1 to NODES. This argument is
+ an index variable, which means that it should be treated as zero-
+ based when working with FloPy and Python. Flopy will automatically
+ subtract one when loading index variables and add one when writing
+ index variables.
+ * xc (double) is the x-coordinate for the cell center.
+ * yc (double) is the y-coordinate for the cell center.
+ * ncvert (integer) is the number of vertices required to define the
+ cell. There may be a different number of vertices for each cell.
+ * icvert (integer) is an array of integer values containing vertex
+ numbers (in the VERTICES block) used to define the cell. Vertices
+ must be listed in clockwise order. This argument is an index
+ variable, which means that it should be treated as zero-based when
+ working with FloPy and Python. Flopy will automatically subtract one
+ when loading index variables and add one when writing index
+ variables.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ top = ArrayTemplateGenerator(("gwe6", "disu", "griddata", "top"))
+ bot = ArrayTemplateGenerator(("gwe6", "disu", "griddata", "bot"))
+ area = ArrayTemplateGenerator(("gwe6", "disu", "griddata", "area"))
+ idomain = ArrayTemplateGenerator(("gwe6", "disu", "griddata", "idomain"))
+ iac = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "iac"))
+ ja = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "ja"))
+ ihc = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "ihc"))
+ cl12 = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "cl12"))
+ hwva = ArrayTemplateGenerator(("gwe6", "disu", "connectiondata", "hwva"))
+ angldegx = ArrayTemplateGenerator(
+ ("gwe6", "disu", "connectiondata", "angldegx")
+ )
+ vertices = ListTemplateGenerator(("gwe6", "disu", "vertices", "vertices"))
+ cell2d = ListTemplateGenerator(("gwe6", "disu", "cell2d", "cell2d"))
+ package_abbr = "gwedisu"
+ _package_type = "disu"
+ dfn_file_name = "gwe-disu.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name length_units",
+ "type string",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name nogrb",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name xorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name yorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name angrot",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name vertical_offset_tolerance",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ "default_value 0.0",
+ "mf6internal voffsettol",
+ ],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
+ [
+ "block dimensions",
+ "name nodes",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block dimensions",
+ "name nja",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block dimensions",
+ "name nvert",
+ "type integer",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name top",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ ],
+ [
+ "block griddata",
+ "name bot",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ ],
+ [
+ "block griddata",
+ "name area",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ ],
+ [
+ "block griddata",
+ "name idomain",
+ "type integer",
+ "shape (nodes)",
+ "reader readarray",
+ "layered false",
+ "optional true",
+ ],
+ [
+ "block connectiondata",
+ "name iac",
+ "type integer",
+ "shape (nodes)",
+ "reader readarray",
+ ],
+ [
+ "block connectiondata",
+ "name ja",
+ "type integer",
+ "shape (nja)",
+ "reader readarray",
+ "numeric_index true",
+ "jagged_array iac",
+ ],
+ [
+ "block connectiondata",
+ "name ihc",
+ "type integer",
+ "shape (nja)",
+ "reader readarray",
+ "jagged_array iac",
+ ],
+ [
+ "block connectiondata",
+ "name cl12",
+ "type double precision",
+ "shape (nja)",
+ "reader readarray",
+ "jagged_array iac",
+ ],
+ [
+ "block connectiondata",
+ "name hwva",
+ "type double precision",
+ "shape (nja)",
+ "reader readarray",
+ "jagged_array iac",
+ ],
+ [
+ "block connectiondata",
+ "name angldegx",
+ "type double precision",
+ "optional true",
+ "shape (nja)",
+ "reader readarray",
+ "jagged_array iac",
+ ],
+ [
+ "block vertices",
+ "name vertices",
+ "type recarray iv xv yv",
+ "shape (nvert)",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block vertices",
+ "name iv",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ [
+ "block vertices",
+ "name xv",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block vertices",
+ "name yv",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name cell2d",
+ "type recarray icell2d xc yc ncvert icvert",
+ "shape (nodes)",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name icell2d",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ [
+ "block cell2d",
+ "name xc",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name yc",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name ncvert",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name icvert",
+ "type integer",
+ "shape (ncvert)",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ length_units=None,
+ nogrb=None,
+ xorigin=None,
+ yorigin=None,
+ angrot=None,
+ vertical_offset_tolerance=0.0,
+ export_array_ascii=None,
+ nodes=None,
+ nja=None,
+ nvert=None,
+ top=None,
+ bot=None,
+ area=None,
+ idomain=None,
+ iac=None,
+ ja=None,
+ ihc=None,
+ cl12=None,
+ hwva=None,
+ angldegx=None,
+ vertices=None,
+ cell2d=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "disu", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.length_units = self.build_mfdata("length_units", length_units)
+ self.nogrb = self.build_mfdata("nogrb", nogrb)
+ self.xorigin = self.build_mfdata("xorigin", xorigin)
+ self.yorigin = self.build_mfdata("yorigin", yorigin)
+ self.angrot = self.build_mfdata("angrot", angrot)
+ self.vertical_offset_tolerance = self.build_mfdata(
+ "vertical_offset_tolerance", vertical_offset_tolerance
+ )
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
+ self.nodes = self.build_mfdata("nodes", nodes)
+ self.nja = self.build_mfdata("nja", nja)
+ self.nvert = self.build_mfdata("nvert", nvert)
+ self.top = self.build_mfdata("top", top)
+ self.bot = self.build_mfdata("bot", bot)
+ self.area = self.build_mfdata("area", area)
+ self.idomain = self.build_mfdata("idomain", idomain)
+ self.iac = self.build_mfdata("iac", iac)
+ self.ja = self.build_mfdata("ja", ja)
+ self.ihc = self.build_mfdata("ihc", ihc)
+ self.cl12 = self.build_mfdata("cl12", cl12)
+ self.hwva = self.build_mfdata("hwva", hwva)
+ self.angldegx = self.build_mfdata("angldegx", angldegx)
+ self.vertices = self.build_mfdata("vertices", vertices)
+ self.cell2d = self.build_mfdata("cell2d", cell2d)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwedisv.py b/flopy/mf6/modflow/mfgwedisv.py
new file mode 100644
index 000000000..8824727b3
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwedisv.py
@@ -0,0 +1,352 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
+
+
+class ModflowGwedisv(mfpackage.MFPackage):
+ """
+ ModflowGwedisv defines a disv package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ length_units : string
+ * length_units (string) is the length units used for this model. Values
+ can be "FEET", "METERS", or "CENTIMETERS". If not specified, the
+ default is "UNKNOWN".
+ nogrb : boolean
+ * nogrb (boolean) keyword to deactivate writing of the binary grid
+ file.
+ xorigin : double
+ * xorigin (double) x-position of the origin used for model grid
+ vertices. This value should be provided in a real-world coordinate
+ system. A default value of zero is assigned if not specified. The
+ value for XORIGIN does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ yorigin : double
+ * yorigin (double) y-position of the origin used for model grid
+ vertices. This value should be provided in a real-world coordinate
+ system. If not specified, then a default value equal to zero is used.
+ The value for YORIGIN does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ angrot : double
+ * angrot (double) counter-clockwise rotation angle (in degrees) of the
+ model grid coordinate system relative to a real-world coordinate
+ system. If not specified, then a default value of 0.0 is assigned.
+ The value for ANGROT does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
+ nlay : integer
+ * nlay (integer) is the number of layers in the model grid.
+ ncpl : integer
+ * ncpl (integer) is the number of cells per layer. This is a constant
+ value for the grid and it applies to all layers.
+ nvert : integer
+ * nvert (integer) is the total number of (x, y) vertex pairs used to
+ characterize the horizontal configuration of the model grid.
+ top : [double]
+ * top (double) is the top elevation for each cell in the top model
+ layer.
+ botm : [double]
+ * botm (double) is the bottom elevation for each cell.
+ idomain : [integer]
+ * idomain (integer) is an optional array that characterizes the
+ existence status of a cell. If the IDOMAIN array is not specified,
+ then all model cells exist within the solution. If the IDOMAIN value
+ for a cell is 0, the cell does not exist in the simulation. Input and
+ output values will be read and written for the cell, but internal to
+ the program, the cell is excluded from the solution. If the IDOMAIN
+ value for a cell is 1, the cell exists in the simulation. If the
+ IDOMAIN value for a cell is -1, the cell does not exist in the
+ simulation. Furthermore, the first existing cell above will be
+ connected to the first existing cell below. This type of cell is
+ referred to as a "vertical pass through" cell.
+ vertices : [iv, xv, yv]
+ * iv (integer) is the vertex number. Records in the VERTICES block must
+ be listed in consecutive order from 1 to NVERT. This argument is an
+ index variable, which means that it should be treated as zero-based
+ when working with FloPy and Python. Flopy will automatically subtract
+ one when loading index variables and add one when writing index
+ variables.
+ * xv (double) is the x-coordinate for the vertex.
+ * yv (double) is the y-coordinate for the vertex.
+ cell2d : [icell2d, xc, yc, ncvert, icvert]
+ * icell2d (integer) is the CELL2D number. Records in the CELL2D block
+ must be listed in consecutive order from the first to the last. This
+ argument is an index variable, which means that it should be treated
+ as zero-based when working with FloPy and Python. Flopy will
+ automatically subtract one when loading index variables and add one
+ when writing index variables.
+ * xc (double) is the x-coordinate for the cell center.
+ * yc (double) is the y-coordinate for the cell center.
+ * ncvert (integer) is the number of vertices required to define the
+ cell. There may be a different number of vertices for each cell.
+ * icvert (integer) is an array of integer values containing vertex
+ numbers (in the VERTICES block) used to define the cell. Vertices
+ must be listed in clockwise order. Cells that are connected must
+ share vertices. This argument is an index variable, which means that
+ it should be treated as zero-based when working with FloPy and
+ Python. Flopy will automatically subtract one when loading index
+ variables and add one when writing index variables.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ top = ArrayTemplateGenerator(("gwe6", "disv", "griddata", "top"))
+ botm = ArrayTemplateGenerator(("gwe6", "disv", "griddata", "botm"))
+ idomain = ArrayTemplateGenerator(("gwe6", "disv", "griddata", "idomain"))
+ vertices = ListTemplateGenerator(("gwe6", "disv", "vertices", "vertices"))
+ cell2d = ListTemplateGenerator(("gwe6", "disv", "cell2d", "cell2d"))
+ package_abbr = "gwedisv"
+ _package_type = "disv"
+ dfn_file_name = "gwe-disv.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name length_units",
+ "type string",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name nogrb",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name xorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name yorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name angrot",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
+ [
+ "block dimensions",
+ "name nlay",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block dimensions",
+ "name ncpl",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block dimensions",
+ "name nvert",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block griddata",
+ "name top",
+ "type double precision",
+ "shape (ncpl)",
+ "reader readarray",
+ ],
+ [
+ "block griddata",
+ "name botm",
+ "type double precision",
+ "shape (ncpl, nlay)",
+ "reader readarray",
+ "layered true",
+ ],
+ [
+ "block griddata",
+ "name idomain",
+ "type integer",
+ "shape (ncpl, nlay)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block vertices",
+ "name vertices",
+ "type recarray iv xv yv",
+ "shape (nvert)",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block vertices",
+ "name iv",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ [
+ "block vertices",
+ "name xv",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block vertices",
+ "name yv",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name cell2d",
+ "type recarray icell2d xc yc ncvert icvert",
+ "shape (ncpl)",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name icell2d",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ [
+ "block cell2d",
+ "name xc",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name yc",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name ncvert",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name icvert",
+ "type integer",
+ "shape (ncvert)",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ length_units=None,
+ nogrb=None,
+ xorigin=None,
+ yorigin=None,
+ angrot=None,
+ export_array_ascii=None,
+ nlay=None,
+ ncpl=None,
+ nvert=None,
+ top=None,
+ botm=None,
+ idomain=None,
+ vertices=None,
+ cell2d=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "disv", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.length_units = self.build_mfdata("length_units", length_units)
+ self.nogrb = self.build_mfdata("nogrb", nogrb)
+ self.xorigin = self.build_mfdata("xorigin", xorigin)
+ self.yorigin = self.build_mfdata("yorigin", yorigin)
+ self.angrot = self.build_mfdata("angrot", angrot)
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
+ self.nlay = self.build_mfdata("nlay", nlay)
+ self.ncpl = self.build_mfdata("ncpl", ncpl)
+ self.nvert = self.build_mfdata("nvert", nvert)
+ self.top = self.build_mfdata("top", top)
+ self.botm = self.build_mfdata("botm", botm)
+ self.idomain = self.build_mfdata("idomain", idomain)
+ self.vertices = self.build_mfdata("vertices", vertices)
+ self.cell2d = self.build_mfdata("cell2d", cell2d)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgweesl.py b/flopy/mf6/modflow/mfgweesl.py
new file mode 100644
index 000000000..09f650242
--- /dev/null
+++ b/flopy/mf6/modflow/mfgweesl.py
@@ -0,0 +1,353 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowGweesl(mfpackage.MFPackage):
+ """
+ ModflowGweesl defines a esl package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ auxiliary : [string]
+ * auxiliary (string) defines an array of one or more auxiliary variable
+ names. There is no limit on the number of auxiliary variables that
+ can be provided on this line; however, lists of information provided
+ in subsequent blocks must have a column of data for each auxiliary
+ variable name defined here. The number of auxiliary variables
+ detected on this line determines the value for naux. Comments cannot
+ be provided anywhere on this line as they will be interpreted as
+ auxiliary variable names. Auxiliary variables may not be used by the
+ package, but they will be available for use by other parts of the
+ program. The program will terminate with an error if auxiliary
+ variables are specified on more than one line in the options block.
+ auxmultname : string
+ * auxmultname (string) name of auxiliary variable to be used as
+ multiplier of energy loading rate.
+ boundnames : boolean
+ * boundnames (boolean) keyword to indicate that boundary names may be
+ provided with the list of energy source loading cells.
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of energy
+ source loading information will be written to the listing file
+ immediately after it is read.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of energy
+ source loading flow rates will be printed to the listing file for
+ every stress period time step in which "BUDGET PRINT" is specified in
+ Output Control. If there is no Output Control option and
+ "PRINT_FLOWS" is specified, then flow rates are printed for the last
+ time step of each stress period.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that energy source loading
+ flow terms will be written to the file specified with "BUDGET
+ FILEOUT" in Output Control.
+ timeseries : {varname:data} or timeseries data
+ * Contains data for the ts package. Data can be stored in a dictionary
+ containing data for the ts package with variable names as keys and
+ package data as values. Data just for the timeseries variable is also
+ acceptable. See ts package documentation for more information.
+ observations : {varname:data} or continuous data
+ * Contains data for the obs package. Data can be stored in a dictionary
+ containing data for the obs package with variable names as keys and
+ package data as values. Data just for the observations variable is
+ also acceptable. See obs package documentation for more information.
+ maxbound : integer
+ * maxbound (integer) integer value specifying the maximum number of
+ sources cells that will be specified for use during any stress
+ period.
+ stress_period_data : [cellid, senerrate, aux, boundname]
+ * cellid ((integer, ...)) is the cell identifier, and depends on the
+ type of grid that is used for the simulation. For a structured grid
+ that uses the DIS input file, CELLID is the layer, row, and column.
+ For a grid that uses the DISV input file, CELLID is the layer and
+ CELL2D number. If the model uses the unstructured discretization
+ (DISU) input file, CELLID is the node number for the cell. This
+ argument is an index variable, which means that it should be treated
+ as zero-based when working with FloPy and Python. Flopy will
+ automatically subtract one when loading index variables and add one
+ when writing index variables.
+ * senerrate (double) is the energy source loading rate. A positive
+ value indicates addition of energy and a negative value indicates
+ removal of energy. If the Options block includes a TIMESERIESFILE
+ entry (see the "Time-Variable Input" section), values can be obtained
+ from a time series by entering the time-series name in place of a
+ numeric value.
+ * aux (double) represents the values of the auxiliary variables for
+ each energy source. The values of auxiliary variables must be present
+ for each energy source. The values must be specified in the order of
+ the auxiliary variables specified in the OPTIONS block. If the
+ package supports time series and the Options block includes a
+ TIMESERIESFILE entry (see the "Time-Variable Input" section), values
+ can be obtained from a time series by entering the time-series name
+ in place of a numeric value.
+ * boundname (string) name of the energy source cell. BOUNDNAME is an
+ ASCII character variable that can contain as many as 40 characters.
+ If BOUNDNAME contains spaces in it, then the entire name must be
+ enclosed within single quotes.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ auxiliary = ListTemplateGenerator(("gwe6", "esl", "options", "auxiliary"))
+ ts_filerecord = ListTemplateGenerator(
+ ("gwe6", "esl", "options", "ts_filerecord")
+ )
+ obs_filerecord = ListTemplateGenerator(
+ ("gwe6", "esl", "options", "obs_filerecord")
+ )
+ stress_period_data = ListTemplateGenerator(
+ ("gwe6", "esl", "period", "stress_period_data")
+ )
+ package_abbr = "gweesl"
+ _package_type = "esl"
+ dfn_file_name = "gwe-esl.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name auxiliary",
+ "type string",
+ "shape (naux)",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name auxmultname",
+ "type string",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name boundnames",
+ "type keyword",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_input",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name ts_filerecord",
+ "type record ts6 filein ts6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package ts",
+ "construct_data timeseries",
+ "parameter_name timeseries",
+ ],
+ [
+ "block options",
+ "name ts6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name filein",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name ts6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "reader urword",
+ "optional false",
+ "tagged false",
+ ],
+ [
+ "block options",
+ "name obs_filerecord",
+ "type record obs6 filein obs6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package obs",
+ "construct_data continuous",
+ "parameter_name observations",
+ ],
+ [
+ "block options",
+ "name obs6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name obs6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block dimensions",
+ "name maxbound",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name iper",
+ "type integer",
+ "block_variable True",
+ "in_record true",
+ "tagged false",
+ "shape",
+ "valid",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name stress_period_data",
+ "type recarray cellid senerrate aux boundname",
+ "shape (maxbound)",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name cellid",
+ "type integer",
+ "shape (ncelldim)",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name senerrate",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ ],
+ [
+ "block period",
+ "name aux",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "shape (naux)",
+ "reader urword",
+ "optional true",
+ "time_series true",
+ ],
+ [
+ "block period",
+ "name boundname",
+ "type string",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ auxiliary=None,
+ auxmultname=None,
+ boundnames=None,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ timeseries=None,
+ observations=None,
+ maxbound=None,
+ stress_period_data=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "esl", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
+ self.auxmultname = self.build_mfdata("auxmultname", auxmultname)
+ self.boundnames = self.build_mfdata("boundnames", boundnames)
+ self.print_input = self.build_mfdata("print_input", print_input)
+ self.print_flows = self.build_mfdata("print_flows", print_flows)
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
+ self._ts_package = self.build_child_package(
+ "ts", timeseries, "timeseries", self._ts_filerecord
+ )
+ self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
+ self._obs_package = self.build_child_package(
+ "obs", observations, "continuous", self._obs_filerecord
+ )
+ self.maxbound = self.build_mfdata("maxbound", maxbound)
+ self.stress_period_data = self.build_mfdata(
+ "stress_period_data", stress_period_data
+ )
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgweest.py b/flopy/mf6/modflow/mfgweest.py
new file mode 100644
index 000000000..633605027
--- /dev/null
+++ b/flopy/mf6/modflow/mfgweest.py
@@ -0,0 +1,216 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
+
+
+class ModflowGweest(mfpackage.MFPackage):
+ """
+ ModflowGweest defines a est package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that EST flow terms will be
+ written to the file specified with "BUDGET FILEOUT" in Output
+ Control.
+ zero_order_decay : boolean
+ * zero_order_decay (boolean) is a text keyword to indicate that zero-
+ order decay will occur. Use of this keyword requires that DECAY and
+ DECAY_SORBED (if sorption is active) are specified in the GRIDDATA
+ block.
+ latent_heat_vaporization : boolean
+ * latent_heat_vaporization (boolean) is a text keyword to indicate that
+ cooling associated with evaporation will occur. Use of this keyword
+ requires that LATHEATVAP are specified in the GRIDDATA block. While
+ the EST package does not simulate evaporation, multiple other
+ packages in a GWE simulation may. For example, evaporation may occur
+ from the surface of streams or lakes. Owing to the energy consumed by
+ the change in phase, the latent heat of vaporization is required.
+ porosity : [double]
+ * porosity (double) is the mobile domain porosity, defined as the
+ mobile domain pore volume per mobile domain volume. The GWE model
+ does not support the concept of an immobile domain in the context of
+ heat transport.
+ decay : [double]
+ * decay (double) is the rate coefficient for zero-order decay for the
+ aqueous phase of the mobile domain. A negative value indicates heat
+ (energy) production. The dimensions of decay for zero-order decay is
+ energy per length cubed per time. Zero-order decay will have no
+ effect on simulation results unless zero-order decay is specified in
+ the options block.
+ cps : [double]
+ * cps (double) is the mass-based heat capacity of dry solids (aquifer
+ material). For example, units of J/kg/C may be used (or equivalent).
+ rhos : [double]
+ * rhos (double) is a user-specified value of the density of aquifer
+ material not considering the voids. Value will remain fixed for the
+ entire simulation. For example, if working in SI units, values may be
+ entered as kilograms per cubic meter.
+ packagedata : [cpw, rhow, latheatvap]
+ * cpw (double) is the mass-based heat capacity of the simulated fluid.
+ For example, units of J/kg/C may be used (or equivalent).
+ * rhow (double) is a user-specified value of the density of water.
+ Value will remain fixed for the entire simulation. For example, if
+ working in SI units, values may be entered as kilograms per cubic
+ meter.
+ * latheatvap (double) is the user-specified value for the latent heat
+ of vaporization. For example, if working in SI units, values may be
+ entered as kJ/kg.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ porosity = ArrayTemplateGenerator(("gwe6", "est", "griddata", "porosity"))
+ decay = ArrayTemplateGenerator(("gwe6", "est", "griddata", "decay"))
+ cps = ArrayTemplateGenerator(("gwe6", "est", "griddata", "cps"))
+ rhos = ArrayTemplateGenerator(("gwe6", "est", "griddata", "rhos"))
+ packagedata = ListTemplateGenerator(
+ ("gwe6", "est", "packagedata", "packagedata")
+ )
+ package_abbr = "gweest"
+ _package_type = "est"
+ dfn_file_name = "gwe-est.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name zero_order_decay",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name latent_heat_vaporization",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name porosity",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ ],
+ [
+ "block griddata",
+ "name decay",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name cps",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ ],
+ [
+ "block griddata",
+ "name rhos",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ ],
+ [
+ "block packagedata",
+ "name packagedata",
+ "type recarray cpw rhow latheatvap",
+ "shape",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name cpw",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name rhow",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name latheatvap",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ save_flows=None,
+ zero_order_decay=None,
+ latent_heat_vaporization=None,
+ porosity=None,
+ decay=None,
+ cps=None,
+ rhos=None,
+ packagedata=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "est", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self.zero_order_decay = self.build_mfdata(
+ "zero_order_decay", zero_order_decay
+ )
+ self.latent_heat_vaporization = self.build_mfdata(
+ "latent_heat_vaporization", latent_heat_vaporization
+ )
+ self.porosity = self.build_mfdata("porosity", porosity)
+ self.decay = self.build_mfdata("decay", decay)
+ self.cps = self.build_mfdata("cps", cps)
+ self.rhos = self.build_mfdata("rhos", rhos)
+ self.packagedata = self.build_mfdata("packagedata", packagedata)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwefmi.py b/flopy/mf6/modflow/mfgwefmi.py
new file mode 100644
index 000000000..bea457970
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwefmi.py
@@ -0,0 +1,137 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowGwefmi(mfpackage.MFPackage):
+ """
+ ModflowGwefmi defines a fmi package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that FMI flow terms will be
+ written to the file specified with "BUDGET FILEOUT" in Output
+ Control.
+ flow_imbalance_correction : boolean
+ * flow_imbalance_correction (boolean) correct for an imbalance in flows
+ by assuming that any residual flow error comes in or leaves at the
+ temperature of the cell. When this option is activated, the GWE Model
+ budget written to the listing file will contain two additional
+ entries: FLOW-ERROR and FLOW-CORRECTION. These two entries will be
+ equal but opposite in sign. The FLOW-CORRECTION term is a mass flow
+ that is added to offset the error caused by an imprecise flow
+ balance. If these terms are not relatively small, the flow model
+ should be rerun with stricter convergence tolerances.
+ packagedata : [flowtype, fname]
+ * flowtype (string) is the word GWFBUDGET, GWFHEAD, GWFMOVER or the
+ name of an advanced GWF stress package. If GWFBUDGET is specified,
+ then the corresponding file must be a budget file from a previous GWF
+ Model run. If an advanced GWF stress package name appears then the
+ corresponding file must be the budget file saved by a LAK, SFR, MAW
+ or UZF Package.
+ * fname (string) is the name of the file containing flows. The path to
+ the file should be included if the file is not located in the folder
+ where the program was run.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ packagedata = ListTemplateGenerator(
+ ("gwe6", "fmi", "packagedata", "packagedata")
+ )
+ package_abbr = "gwefmi"
+ _package_type = "fmi"
+ dfn_file_name = "gwe-fmi.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name flow_imbalance_correction",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block packagedata",
+ "name packagedata",
+ "type recarray flowtype filein fname",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block packagedata",
+ "name flowtype",
+ "in_record true",
+ "type string",
+ "tagged false",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name filein",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block packagedata",
+ "name fname",
+ "in_record true",
+ "type string",
+ "preserve_case true",
+ "tagged false",
+ "reader urword",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ save_flows=None,
+ flow_imbalance_correction=None,
+ packagedata=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "fmi", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self.flow_imbalance_correction = self.build_mfdata(
+ "flow_imbalance_correction", flow_imbalance_correction
+ )
+ self.packagedata = self.build_mfdata("packagedata", packagedata)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwegwe.py b/flopy/mf6/modflow/mfgwegwe.py
new file mode 100644
index 000000000..675a866d0
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwegwe.py
@@ -0,0 +1,493 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowGwegwe(mfpackage.MFPackage):
+ """
+ ModflowGwegwe defines a gwegwe package.
+
+ Parameters
+ ----------
+ simulation : MFSimulation
+ Simulation that this package is a part of. Package is automatically
+ added to simulation when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ exgtype :
+ * is the exchange type (GWF-GWF or GWF-GWT).
+ exgmnamea :
+ * is the name of the first model that is part of this exchange.
+ exgmnameb :
+ * is the name of the second model that is part of this exchange.
+ gwfmodelname1 : string
+ * gwfmodelname1 (string) keyword to specify name of first corresponding
+ GWF Model. In the simulation name file, the GWE6-GWE6 entry contains
+ names for GWE Models (exgmnamea and exgmnameb). The GWE Model with
+ the name exgmnamea must correspond to the GWF Model with the name
+ gwfmodelname1.
+ gwfmodelname2 : string
+ * gwfmodelname2 (string) keyword to specify name of second
+ corresponding GWF Model. In the simulation name file, the GWE6-GWE6
+ entry contains names for GWE Models (exgmnamea and exgmnameb). The
+ GWE Model with the name exgmnameb must correspond to the GWF Model
+ with the name gwfmodelname2.
+ auxiliary : [string]
+ * auxiliary (string) an array of auxiliary variable names. There is no
+ limit on the number of auxiliary variables that can be provided. Most
+ auxiliary variables will not be used by the GWF-GWF Exchange, but
+ they will be available for use by other parts of the program. If an
+ auxiliary variable with the name "ANGLDEGX" is found, then this
+ information will be used as the angle (provided in degrees) between
+ the connection face normal and the x axis, where a value of zero
+ indicates that a normal vector points directly along the positive x
+ axis. The connection face normal is a normal vector on the cell face
+ shared between the cell in model 1 and the cell in model 2 pointing
+ away from the model 1 cell. Additional information on "ANGLDEGX" is
+ provided in the description of the DISU Package. If an auxiliary
+ variable with the name "CDIST" is found, then this information will
+ be used as the straight-line connection distance, including the
+ vertical component, between the two cell centers. Both ANGLDEGX and
+ CDIST are required if specific discharge is calculated for either of
+ the groundwater models.
+ boundnames : boolean
+ * boundnames (boolean) keyword to indicate that boundary names may be
+ provided with the list of GWE Exchange cells.
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of exchange
+ entries will be echoed to the listing file immediately after it is
+ read.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of exchange
+ flow rates will be printed to the listing file for every stress
+ period in which "SAVE BUDGET" is specified in Output Control.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that cell-by-cell flow terms
+ will be written to the budget file for each model provided that the
+ Output Control for the models are set up with the "BUDGET SAVE FILE"
+ option.
+ adv_scheme : string
+ * adv_scheme (string) scheme used to solve the advection term. Can be
+ upstream, central, or TVD. If not specified, upstream weighting is
+ the default weighting scheme.
+ cnd_xt3d_off : boolean
+ * cnd_xt3d_off (boolean) deactivate the xt3d method for the dispersive
+ flux and use the faster and less accurate approximation for this
+ exchange.
+ cnd_xt3d_rhs : boolean
+ * cnd_xt3d_rhs (boolean) add xt3d dispersion terms to right-hand side,
+ when possible, for this exchange.
+ filein : boolean
+ * filein (boolean) keyword to specify that an input filename is
+ expected next.
+ perioddata : {varname:data} or perioddata data
+ * Contains data for the mve package. Data can be stored in a dictionary
+ containing data for the mve package with variable names as keys and
+ package data as values. Data just for the perioddata variable is also
+ acceptable. See mve package documentation for more information.
+ observations : {varname:data} or continuous data
+ * Contains data for the obs package. Data can be stored in a dictionary
+ containing data for the obs package with variable names as keys and
+ package data as values. Data just for the observations variable is
+ also acceptable. See obs package documentation for more information.
+ dev_interfacemodel_on : boolean
+ * dev_interfacemodel_on (boolean) activates the interface model
+ mechanism for calculating the coefficients at (and possibly near) the
+ exchange. This keyword should only be used for development purposes.
+ nexg : integer
+ * nexg (integer) keyword and integer value specifying the number of
+ GWE-GWE exchanges.
+ exchangedata : [cellidm1, cellidm2, ihc, cl1, cl2, hwva, aux, boundname]
+ * cellidm1 ((integer, ...)) is the cellid of the cell in model 1 as
+ specified in the simulation name file. For a structured grid that
+ uses the DIS input file, CELLIDM1 is the layer, row, and column
+ numbers of the cell. For a grid that uses the DISV input file,
+ CELLIDM1 is the layer number and CELL2D number for the two cells. If
+ the model uses the unstructured discretization (DISU) input file,
+ then CELLIDM1 is the node number for the cell. This argument is an
+ index variable, which means that it should be treated as zero-based
+ when working with FloPy and Python. Flopy will automatically subtract
+ one when loading index variables and add one when writing index
+ variables.
+ * cellidm2 ((integer, ...)) is the cellid of the cell in model 2 as
+ specified in the simulation name file. For a structured grid that
+ uses the DIS input file, CELLIDM2 is the layer, row, and column
+ numbers of the cell. For a grid that uses the DISV input file,
+ CELLIDM2 is the layer number and CELL2D number for the two cells. If
+ the model uses the unstructured discretization (DISU) input file,
+ then CELLIDM2 is the node number for the cell. This argument is an
+ index variable, which means that it should be treated as zero-based
+ when working with FloPy and Python. Flopy will automatically subtract
+ one when loading index variables and add one when writing index
+ variables.
+ * ihc (integer) is an integer flag indicating the direction between
+ node n and all of its m connections. If IHC = 0 then the connection
+ is vertical. If IHC = 1 then the connection is horizontal. If IHC = 2
+ then the connection is horizontal for a vertically staggered grid.
+ * cl1 (double) is the distance between the center of cell 1 and the its
+ shared face with cell 2.
+ * cl2 (double) is the distance between the center of cell 2 and the its
+ shared face with cell 1.
+ * hwva (double) is the horizontal width of the flow connection between
+ cell 1 and cell 2 if IHC > 0, or it is the area perpendicular to flow
+ of the vertical connection between cell 1 and cell 2 if IHC = 0.
+ * aux (double) represents the values of the auxiliary variables for
+ each GWEGWE Exchange. The values of auxiliary variables must be
+ present for each exchange. The values must be specified in the order
+ of the auxiliary variables specified in the OPTIONS block.
+ * boundname (string) name of the GWE Exchange cell. BOUNDNAME is an
+ ASCII character variable that can contain as many as 40 characters.
+ If BOUNDNAME contains spaces in it, then the entire name must be
+ enclosed within single quotes.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ auxiliary = ListTemplateGenerator(("gwegwe", "options", "auxiliary"))
+ mve_filerecord = ListTemplateGenerator(
+ ("gwegwe", "options", "mve_filerecord")
+ )
+ obs_filerecord = ListTemplateGenerator(
+ ("gwegwe", "options", "obs_filerecord")
+ )
+ exchangedata = ListTemplateGenerator(
+ ("gwegwe", "exchangedata", "exchangedata")
+ )
+ package_abbr = "gwegwe"
+ _package_type = "gwegwe"
+ dfn_file_name = "exg-gwegwe.dfn"
+
+ dfn = [
+ [
+ "header",
+ "multi-package",
+ ],
+ [
+ "block options",
+ "name gwfmodelname1",
+ "type string",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name gwfmodelname2",
+ "type string",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name auxiliary",
+ "type string",
+ "shape (naux)",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name boundnames",
+ "type keyword",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_input",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal iprpak",
+ ],
+ [
+ "block options",
+ "name print_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal iprflow",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal ipakcb",
+ ],
+ [
+ "block options",
+ "name adv_scheme",
+ "type string",
+ "valid upstream central tvd",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name cnd_xt3d_off",
+ "type keyword",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name cnd_xt3d_rhs",
+ "type keyword",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name filein",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name mve_filerecord",
+ "type record mve6 filein mve6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package mve",
+ "construct_data perioddata",
+ "parameter_name perioddata",
+ ],
+ [
+ "block options",
+ "name mve6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name mve6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name obs_filerecord",
+ "type record obs6 filein obs6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package obs",
+ "construct_data continuous",
+ "parameter_name observations",
+ ],
+ [
+ "block options",
+ "name obs6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name obs6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name dev_interfacemodel_on",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal dev_ifmod_on",
+ ],
+ [
+ "block dimensions",
+ "name nexg",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block exchangedata",
+ "name exchangedata",
+ "type recarray cellidm1 cellidm2 ihc cl1 cl2 hwva aux boundname",
+ "shape (nexg)",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block exchangedata",
+ "name cellidm1",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ [
+ "block exchangedata",
+ "name cellidm2",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ [
+ "block exchangedata",
+ "name ihc",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block exchangedata",
+ "name cl1",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block exchangedata",
+ "name cl2",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block exchangedata",
+ "name hwva",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block exchangedata",
+ "name aux",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "shape (naux)",
+ "reader urword",
+ "optional true",
+ "mf6internal auxvar",
+ ],
+ [
+ "block exchangedata",
+ "name boundname",
+ "type string",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ simulation,
+ loading_package=False,
+ exgtype="GWE6-GWE6",
+ exgmnamea=None,
+ exgmnameb=None,
+ gwfmodelname1=None,
+ gwfmodelname2=None,
+ auxiliary=None,
+ boundnames=None,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ adv_scheme=None,
+ cnd_xt3d_off=None,
+ cnd_xt3d_rhs=None,
+ filein=None,
+ perioddata=None,
+ observations=None,
+ dev_interfacemodel_on=None,
+ nexg=None,
+ exchangedata=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ simulation, "gwegwe", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.exgtype = exgtype
+
+ self.exgmnamea = exgmnamea
+
+ self.exgmnameb = exgmnameb
+
+ simulation.register_exchange_file(self)
+
+ self.gwfmodelname1 = self.build_mfdata("gwfmodelname1", gwfmodelname1)
+ self.gwfmodelname2 = self.build_mfdata("gwfmodelname2", gwfmodelname2)
+ self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
+ self.boundnames = self.build_mfdata("boundnames", boundnames)
+ self.print_input = self.build_mfdata("print_input", print_input)
+ self.print_flows = self.build_mfdata("print_flows", print_flows)
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self.adv_scheme = self.build_mfdata("adv_scheme", adv_scheme)
+ self.cnd_xt3d_off = self.build_mfdata("cnd_xt3d_off", cnd_xt3d_off)
+ self.cnd_xt3d_rhs = self.build_mfdata("cnd_xt3d_rhs", cnd_xt3d_rhs)
+ self.filein = self.build_mfdata("filein", filein)
+ self._mve_filerecord = self.build_mfdata("mve_filerecord", None)
+ self._mve_package = self.build_child_package(
+ "mve", perioddata, "perioddata", self._mve_filerecord
+ )
+ self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
+ self._obs_package = self.build_child_package(
+ "obs", observations, "continuous", self._obs_filerecord
+ )
+ self.dev_interfacemodel_on = self.build_mfdata(
+ "dev_interfacemodel_on", dev_interfacemodel_on
+ )
+ self.nexg = self.build_mfdata("nexg", nexg)
+ self.exchangedata = self.build_mfdata("exchangedata", exchangedata)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgweic.py b/flopy/mf6/modflow/mfgweic.py
new file mode 100644
index 000000000..24fcfd4cb
--- /dev/null
+++ b/flopy/mf6/modflow/mfgweic.py
@@ -0,0 +1,86 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator
+
+
+class ModflowGweic(mfpackage.MFPackage):
+ """
+ ModflowGweic defines a ic package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
+ strt : [double]
+ * strt (double) is the initial (starting) temperature---that is, the
+ temperature at the beginning of the GWE Model simulation. STRT must
+ be specified for all GWE Model simulations. One value is read for
+ every model cell.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ strt = ArrayTemplateGenerator(("gwe6", "ic", "griddata", "strt"))
+ package_abbr = "gweic"
+ _package_type = "ic"
+ dfn_file_name = "gwe-ic.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
+ [
+ "block griddata",
+ "name strt",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "default_value 0.0",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ export_array_ascii=None,
+ strt=0.0,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "ic", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
+ self.strt = self.build_mfdata("strt", strt)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwelke.py b/flopy/mf6/modflow/mfgwelke.py
new file mode 100644
index 000000000..b0b96d659
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwelke.py
@@ -0,0 +1,734 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowGwelke(mfpackage.MFPackage):
+ """
+ ModflowGwelke defines a lke package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ flow_package_name : string
+ * flow_package_name (string) keyword to specify the name of the
+ corresponding flow package. If not specified, then the corresponding
+ flow package must have the same name as this advanced transport
+ package (the name associated with this package in the GWE name file).
+ auxiliary : [string]
+ * auxiliary (string) defines an array of one or more auxiliary variable
+ names. There is no limit on the number of auxiliary variables that
+ can be provided on this line; however, lists of information provided
+ in subsequent blocks must have a column of data for each auxiliary
+ variable name defined here. The number of auxiliary variables
+ detected on this line determines the value for naux. Comments cannot
+ be provided anywhere on this line as they will be interpreted as
+ auxiliary variable names. Auxiliary variables may not be used by the
+ package, but they will be available for use by other parts of the
+ program. The program will terminate with an error if auxiliary
+ variables are specified on more than one line in the options block.
+ flow_package_auxiliary_name : string
+ * flow_package_auxiliary_name (string) keyword to specify the name of
+ an auxiliary variable in the corresponding flow package. If
+ specified, then the simulated temperatures from this advanced
+ transport package will be copied into the auxiliary variable
+ specified with this name. Note that the flow package must have an
+ auxiliary variable with this name or the program will terminate with
+ an error. If the flows for this advanced transport package are read
+ from a file, then this option will have no effect.
+ boundnames : boolean
+ * boundnames (boolean) keyword to indicate that boundary names may be
+ provided with the list of lake cells.
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of lake
+ information will be written to the listing file immediately after it
+ is read.
+ print_temperature : boolean
+ * print_temperature (boolean) keyword to indicate that the list of lake
+ temperature will be printed to the listing file for every stress
+ period in which "TEMPERATURE PRINT" is specified in Output Control.
+ If there is no Output Control option and PRINT_TEMPERATURE is
+ specified, then temperature are printed for the last time step of
+ each stress period.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of lake flow
+ rates will be printed to the listing file for every stress period
+ time step in which "BUDGET PRINT" is specified in Output Control. If
+ there is no Output Control option and "PRINT_FLOWS" is specified,
+ then flow rates are printed for the last time step of each stress
+ period.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that lake flow terms will be
+ written to the file specified with "BUDGET FILEOUT" in Output
+ Control.
+ temperature_filerecord : [tempfile]
+ * tempfile (string) name of the binary output file to write temperature
+ information.
+ budget_filerecord : [budgetfile]
+ * budgetfile (string) name of the binary output file to write budget
+ information.
+ budgetcsv_filerecord : [budgetcsvfile]
+ * budgetcsvfile (string) name of the comma-separated value (CSV) output
+ file to write budget summary information. A budget summary record
+ will be written to this file for each time step of the simulation.
+ timeseries : {varname:data} or timeseries data
+ * Contains data for the ts package. Data can be stored in a dictionary
+ containing data for the ts package with variable names as keys and
+ package data as values. Data just for the timeseries variable is also
+ acceptable. See ts package documentation for more information.
+ observations : {varname:data} or continuous data
+ * Contains data for the obs package. Data can be stored in a dictionary
+ containing data for the obs package with variable names as keys and
+ package data as values. Data just for the observations variable is
+ also acceptable. See obs package documentation for more information.
+ packagedata : [lakeno, strt, ktf, rbthcnd, aux, boundname]
+ * lakeno (integer) integer value that defines the lake number
+ associated with the specified PACKAGEDATA data on the line. LAKENO
+ must be greater than zero and less than or equal to NLAKES. Lake
+ information must be specified for every lake or the program will
+ terminate with an error. The program will also terminate with an
+ error if information for a lake is specified more than once. This
+ argument is an index variable, which means that it should be treated
+ as zero-based when working with FloPy and Python. Flopy will
+ automatically subtract one when loading index variables and add one
+ when writing index variables.
+ * strt (double) real value that defines the starting temperature for
+ the lake.
+ * ktf (double) is the thermal conductivity of the of the interface
+ between the aquifer cell and the lake.
+ * rbthcnd (double) real value that defines the thickness of the lakebed
+ material through which conduction occurs. Must be greater than 0.
+ * aux (double) represents the values of the auxiliary variables for
+ each lake. The values of auxiliary variables must be present for each
+ lake. The values must be specified in the order of the auxiliary
+ variables specified in the OPTIONS block. If the package supports
+ time series and the Options block includes a TIMESERIESFILE entry
+ (see the "Time-Variable Input" section), values can be obtained from
+ a time series by entering the time-series name in place of a numeric
+ value.
+ * boundname (string) name of the lake cell. BOUNDNAME is an ASCII
+ character variable that can contain as many as 40 characters. If
+ BOUNDNAME contains spaces in it, then the entire name must be
+ enclosed within single quotes.
+ lakeperioddata : [lakeno, laksetting]
+ * lakeno (integer) integer value that defines the lake number
+ associated with the specified PERIOD data on the line. LAKENO must be
+ greater than zero and less than or equal to NLAKES. This argument is
+ an index variable, which means that it should be treated as zero-
+ based when working with FloPy and Python. Flopy will automatically
+ subtract one when loading index variables and add one when writing
+ index variables.
+ * laksetting (keystring) line of information that is parsed into a
+ keyword and values. Keyword values that can be used to start the
+ LAKSETTING string include: STATUS, TEMPERATURE, RAINFALL,
+ EVAPORATION, RUNOFF, and AUXILIARY. These settings are used to assign
+ the temperature associated with the corresponding flow terms.
+ Temperatures cannot be specified for all flow terms. For example, the
+ Lake Package supports a "WITHDRAWAL" flow term. If this withdrawal
+ term is active, then water will be withdrawn from the lake at the
+ calculated temperature of the lake.
+ status : [string]
+ * status (string) keyword option to define lake status. STATUS
+ can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is
+ ACTIVE, which means that temperature will be calculated for
+ the lake. If a lake is inactive, then there will be no solute
+ mass fluxes into or out of the lake and the inactive value
+ will be written for the lake temperature. If a lake is
+ constant, then the temperature for the lake will be fixed at
+ the user specified value.
+ temperature : [string]
+ * temperature (string) real or character value that defines the
+ temperature for the lake. The specified TEMPERATURE is only
+ applied if the lake is a constant temperature lake. If the
+ Options block includes a TIMESERIESFILE entry (see the "Time-
+ Variable Input" section), values can be obtained from a time
+ series by entering the time-series name in place of a numeric
+ value.
+ rainfall : [string]
+ * rainfall (string) real or character value that defines the
+ rainfall temperature for the lake. If the Options block
+ includes a TIMESERIESFILE entry (see the "Time-Variable
+ Input" section), values can be obtained from a time series by
+ entering the time-series name in place of a numeric value.
+ evaporation : [string]
+ * evaporation (string) real or character value that defines the
+ temperature of evaporated water :math:`(^{\\circ}C)` for the
+ reach. If this temperature value is larger than the simulated
+ temperature in the reach, then the evaporated water will be
+ removed at the same temperature as the reach. If the Options
+ block includes a TIMESERIESFILE entry (see the "Time-Variable
+ Input" section), values can be obtained from a time series by
+ entering the time-series name in place of a numeric value.
+ runoff : [string]
+ * runoff (string) real or character value that defines the
+ temperature of runoff for the lake. Value must be greater
+ than or equal to zero. If the Options block includes a
+ TIMESERIESFILE entry (see the "Time-Variable Input" section),
+ values can be obtained from a time series by entering the
+ time-series name in place of a numeric value.
+ ext_inflow : [string]
+ * ext-inflow (string) real or character value that defines the
+ temperature of external inflow for the lake. Value must be
+ greater than or equal to zero. If the Options block includes
+ a TIMESERIESFILE entry (see the "Time-Variable Input"
+ section), values can be obtained from a time series by
+ entering the time-series name in place of a numeric value.
+ auxiliaryrecord : [auxname, auxval]
+ * auxname (string) name for the auxiliary variable to be
+ assigned AUXVAL. AUXNAME must match one of the auxiliary
+ variable names defined in the OPTIONS block. If AUXNAME does
+ not match one of the auxiliary variable names defined in the
+ OPTIONS block the data are ignored.
+ * auxval (double) value for the auxiliary variable. If the
+ Options block includes a TIMESERIESFILE entry (see the "Time-
+ Variable Input" section), values can be obtained from a time
+ series by entering the time-series name in place of a numeric
+ value.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ auxiliary = ListTemplateGenerator(("gwe6", "lke", "options", "auxiliary"))
+ temperature_filerecord = ListTemplateGenerator(
+ ("gwe6", "lke", "options", "temperature_filerecord")
+ )
+ budget_filerecord = ListTemplateGenerator(
+ ("gwe6", "lke", "options", "budget_filerecord")
+ )
+ budgetcsv_filerecord = ListTemplateGenerator(
+ ("gwe6", "lke", "options", "budgetcsv_filerecord")
+ )
+ ts_filerecord = ListTemplateGenerator(
+ ("gwe6", "lke", "options", "ts_filerecord")
+ )
+ obs_filerecord = ListTemplateGenerator(
+ ("gwe6", "lke", "options", "obs_filerecord")
+ )
+ packagedata = ListTemplateGenerator(
+ ("gwe6", "lke", "packagedata", "packagedata")
+ )
+ lakeperioddata = ListTemplateGenerator(
+ ("gwe6", "lke", "period", "lakeperioddata")
+ )
+ package_abbr = "gwelke"
+ _package_type = "lke"
+ dfn_file_name = "gwe-lke.dfn"
+
+ dfn = [
+ [
+ "header",
+ "multi-package",
+ ],
+ [
+ "block options",
+ "name flow_package_name",
+ "type string",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name auxiliary",
+ "type string",
+ "shape (naux)",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name flow_package_auxiliary_name",
+ "type string",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name boundnames",
+ "type keyword",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_input",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_temperature",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name temperature_filerecord",
+ "type record temperature fileout tempfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name temperature",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name tempfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budget_filerecord",
+ "type record budget fileout budgetfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budget",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name fileout",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsv_filerecord",
+ "type record budgetcsv fileout budgetcsvfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budgetcsv",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsvfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name ts_filerecord",
+ "type record ts6 filein ts6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package ts",
+ "construct_data timeseries",
+ "parameter_name timeseries",
+ ],
+ [
+ "block options",
+ "name ts6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name filein",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name ts6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "reader urword",
+ "optional false",
+ "tagged false",
+ ],
+ [
+ "block options",
+ "name obs_filerecord",
+ "type record obs6 filein obs6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package obs",
+ "construct_data continuous",
+ "parameter_name observations",
+ ],
+ [
+ "block options",
+ "name obs6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name obs6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block packagedata",
+ "name packagedata",
+ "type recarray lakeno strt ktf rbthcnd aux boundname",
+ "shape (maxbound)",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name lakeno",
+ "type integer",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "numeric_index true",
+ ],
+ [
+ "block packagedata",
+ "name strt",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name ktf",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name rbthcnd",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name aux",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "shape (naux)",
+ "reader urword",
+ "time_series true",
+ "optional true",
+ ],
+ [
+ "block packagedata",
+ "name boundname",
+ "type string",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block period",
+ "name iper",
+ "type integer",
+ "block_variable True",
+ "in_record true",
+ "tagged false",
+ "shape",
+ "valid",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name lakeperioddata",
+ "type recarray lakeno laksetting",
+ "shape",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name lakeno",
+ "type integer",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "numeric_index true",
+ ],
+ [
+ "block period",
+ "name laksetting",
+ "type keystring status temperature rainfall evaporation runoff "
+ "ext-inflow auxiliaryrecord",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name status",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name temperature",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "time_series true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name rainfall",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ ],
+ [
+ "block period",
+ "name evaporation",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ ],
+ [
+ "block period",
+ "name runoff",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ ],
+ [
+ "block period",
+ "name ext-inflow",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ ],
+ [
+ "block period",
+ "name auxiliaryrecord",
+ "type record auxiliary auxname auxval",
+ "shape",
+ "tagged",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name auxiliary",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name auxname",
+ "type string",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name auxval",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ flow_package_name=None,
+ auxiliary=None,
+ flow_package_auxiliary_name=None,
+ boundnames=None,
+ print_input=None,
+ print_temperature=None,
+ print_flows=None,
+ save_flows=None,
+ temperature_filerecord=None,
+ budget_filerecord=None,
+ budgetcsv_filerecord=None,
+ timeseries=None,
+ observations=None,
+ packagedata=None,
+ lakeperioddata=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "lke", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.flow_package_name = self.build_mfdata(
+ "flow_package_name", flow_package_name
+ )
+ self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
+ self.flow_package_auxiliary_name = self.build_mfdata(
+ "flow_package_auxiliary_name", flow_package_auxiliary_name
+ )
+ self.boundnames = self.build_mfdata("boundnames", boundnames)
+ self.print_input = self.build_mfdata("print_input", print_input)
+ self.print_temperature = self.build_mfdata(
+ "print_temperature", print_temperature
+ )
+ self.print_flows = self.build_mfdata("print_flows", print_flows)
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self.temperature_filerecord = self.build_mfdata(
+ "temperature_filerecord", temperature_filerecord
+ )
+ self.budget_filerecord = self.build_mfdata(
+ "budget_filerecord", budget_filerecord
+ )
+ self.budgetcsv_filerecord = self.build_mfdata(
+ "budgetcsv_filerecord", budgetcsv_filerecord
+ )
+ self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
+ self._ts_package = self.build_child_package(
+ "ts", timeseries, "timeseries", self._ts_filerecord
+ )
+ self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
+ self._obs_package = self.build_child_package(
+ "obs", observations, "continuous", self._obs_filerecord
+ )
+ self.packagedata = self.build_mfdata("packagedata", packagedata)
+ self.lakeperioddata = self.build_mfdata(
+ "lakeperioddata", lakeperioddata
+ )
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwemve.py b/flopy/mf6/modflow/mfgwemve.py
new file mode 100644
index 000000000..e57ef4646
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwemve.py
@@ -0,0 +1,256 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowGwemve(mfpackage.MFPackage):
+ """
+ ModflowGwemve defines a mve package within a gwe6 model.
+
+ Parameters
+ ----------
+ parent_model_or_package : MFModel/MFPackage
+ Parent_model_or_package that this package is a part of. Package is automatically
+ added to parent_model_or_package when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of mover
+ information will be written to the listing file immediately after it
+ is read.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of lake flow
+ rates will be printed to the listing file for every stress period
+ time step in which "BUDGET PRINT" is specified in Output Control. If
+ there is no Output Control option and "PRINT_FLOWS" is specified,
+ then flow rates are printed for the last time step of each stress
+ period.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that lake flow terms will be
+ written to the file specified with "BUDGET FILEOUT" in Output
+ Control.
+ budget_filerecord : [budgetfile]
+ * budgetfile (string) name of the binary output file to write budget
+ information.
+ budgetcsv_filerecord : [budgetcsvfile]
+ * budgetcsvfile (string) name of the comma-separated value (CSV) output
+ file to write budget summary information. A budget summary record
+ will be written to this file for each time step of the simulation.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ budget_filerecord = ListTemplateGenerator(
+ ("gwe6", "mve", "options", "budget_filerecord")
+ )
+ budgetcsv_filerecord = ListTemplateGenerator(
+ ("gwe6", "mve", "options", "budgetcsv_filerecord")
+ )
+ package_abbr = "gwemve"
+ _package_type = "mve"
+ dfn_file_name = "gwe-mve.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name print_input",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budget_filerecord",
+ "type record budget fileout budgetfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budget",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name fileout",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsv_filerecord",
+ "type record budgetcsv fileout budgetcsvfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budgetcsv",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsvfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ ]
+
+ def __init__(
+ self,
+ parent_model_or_package,
+ loading_package=False,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ budget_filerecord=None,
+ budgetcsv_filerecord=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ parent_model_or_package,
+ "mve",
+ filename,
+ pname,
+ loading_package,
+ **kwargs,
+ )
+
+ # set up variables
+ self.print_input = self.build_mfdata("print_input", print_input)
+ self.print_flows = self.build_mfdata("print_flows", print_flows)
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self.budget_filerecord = self.build_mfdata(
+ "budget_filerecord", budget_filerecord
+ )
+ self.budgetcsv_filerecord = self.build_mfdata(
+ "budgetcsv_filerecord", budgetcsv_filerecord
+ )
+ self._init_complete = True
+
+
+class GwemvePackages(mfpackage.MFChildPackages):
+ """
+ GwemvePackages is a container class for the ModflowGwemve class.
+
+ Methods
+ ----------
+ initialize
+ Initializes a new ModflowGwemve package removing any sibling child
+ packages attached to the same parent package. See ModflowGwemve init
+ documentation for definition of parameters.
+ append_package
+ Adds a new ModflowGwemve package to the container. See ModflowGwemve
+ init documentation for definition of parameters.
+ """
+
+ package_abbr = "gwemvepackages"
+
+ def initialize(
+ self,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ budget_filerecord=None,
+ budgetcsv_filerecord=None,
+ filename=None,
+ pname=None,
+ ):
+ new_package = ModflowGwemve(
+ self._cpparent,
+ print_input=print_input,
+ print_flows=print_flows,
+ save_flows=save_flows,
+ budget_filerecord=budget_filerecord,
+ budgetcsv_filerecord=budgetcsv_filerecord,
+ filename=filename,
+ pname=pname,
+ child_builder_call=True,
+ )
+ self.init_package(new_package, filename)
+
+ def append_package(
+ self,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ budget_filerecord=None,
+ budgetcsv_filerecord=None,
+ filename=None,
+ pname=None,
+ ):
+ new_package = ModflowGwemve(
+ self._cpparent,
+ print_input=print_input,
+ print_flows=print_flows,
+ save_flows=save_flows,
+ budget_filerecord=budget_filerecord,
+ budgetcsv_filerecord=budgetcsv_filerecord,
+ filename=filename,
+ pname=pname,
+ child_builder_call=True,
+ )
+ self._append_package(new_package, filename)
diff --git a/flopy/mf6/modflow/mfgwemwe.py b/flopy/mf6/modflow/mfgwemwe.py
new file mode 100644
index 000000000..e38b85064
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwemwe.py
@@ -0,0 +1,679 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowGwemwe(mfpackage.MFPackage):
+ """
+ ModflowGwemwe defines a mwe package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ flow_package_name : string
+ * flow_package_name (string) keyword to specify the name of the
+ corresponding flow package. If not specified, then the corresponding
+ flow package must have the same name as this advanced transport
+ package (the name associated with this package in the GWE name file).
+ auxiliary : [string]
+ * auxiliary (string) defines an array of one or more auxiliary variable
+ names. There is no limit on the number of auxiliary variables that
+ can be provided on this line; however, lists of information provided
+ in subsequent blocks must have a column of data for each auxiliary
+ variable name defined here. The number of auxiliary variables
+ detected on this line determines the value for naux. Comments cannot
+ be provided anywhere on this line as they will be interpreted as
+ auxiliary variable names. Auxiliary variables may not be used by the
+ package, but they will be available for use by other parts of the
+ program. The program will terminate with an error if auxiliary
+ variables are specified on more than one line in the options block.
+ flow_package_auxiliary_name : string
+ * flow_package_auxiliary_name (string) keyword to specify the name of
+ an auxiliary variable in the corresponding flow package. If
+ specified, then the simulated temperatures from this advanced
+ transport package will be copied into the auxiliary variable
+ specified with this name. Note that the flow package must have an
+ auxiliary variable with this name or the program will terminate with
+ an error. If the flows for this advanced transport package are read
+ from a file, then this option will have no effect.
+ boundnames : boolean
+ * boundnames (boolean) keyword to indicate that boundary names may be
+ provided with the list of well cells.
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of well
+ information will be written to the listing file immediately after it
+ is read.
+ print_temperature : boolean
+ * print_temperature (boolean) keyword to indicate that the list of well
+ temperature will be printed to the listing file for every stress
+ period in which "TEMPERATURE PRINT" is specified in Output Control.
+ If there is no Output Control option and PRINT_TEMPERATURE is
+ specified, then temperature are printed for the last time step of
+ each stress period.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of well flow
+ rates will be printed to the listing file for every stress period
+ time step in which "BUDGET PRINT" is specified in Output Control. If
+ there is no Output Control option and "PRINT_FLOWS" is specified,
+ then flow rates are printed for the last time step of each stress
+ period.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that well flow terms will be
+ written to the file specified with "BUDGET FILEOUT" in Output
+ Control.
+ temperature_filerecord : [tempfile]
+ * tempfile (string) name of the binary output file to write temperature
+ information.
+ budget_filerecord : [budgetfile]
+ * budgetfile (string) name of the binary output file to write budget
+ information.
+ budgetcsv_filerecord : [budgetcsvfile]
+ * budgetcsvfile (string) name of the comma-separated value (CSV) output
+ file to write budget summary information. A budget summary record
+ will be written to this file for each time step of the simulation.
+ timeseries : {varname:data} or timeseries data
+ * Contains data for the ts package. Data can be stored in a dictionary
+ containing data for the ts package with variable names as keys and
+ package data as values. Data just for the timeseries variable is also
+ acceptable. See ts package documentation for more information.
+ observations : {varname:data} or continuous data
+ * Contains data for the obs package. Data can be stored in a dictionary
+ containing data for the obs package with variable names as keys and
+ package data as values. Data just for the observations variable is
+ also acceptable. See obs package documentation for more information.
+ packagedata : [mawno, strt, ktf, fthk, aux, boundname]
+ * mawno (integer) integer value that defines the well number associated
+ with the specified PACKAGEDATA data on the line. MAWNO must be
+ greater than zero and less than or equal to NMAWWELLS. Well
+ information must be specified for every well or the program will
+ terminate with an error. The program will also terminate with an
+ error if information for a well is specified more than once. This
+ argument is an index variable, which means that it should be treated
+ as zero-based when working with FloPy and Python. Flopy will
+ automatically subtract one when loading index variables and add one
+ when writing index variables.
+ * strt (double) real value that defines the starting temperature for
+ the well.
+ * ktf (double) is the thermal conductivity of the of the interface
+ between the aquifer cell and the feature.
+ * fthk (double) real value that defines the thickness of the material
+ through which conduction occurs. Must be greater than 0.
+ * aux (double) represents the values of the auxiliary variables for
+ each well. The values of auxiliary variables must be present for each
+ well. The values must be specified in the order of the auxiliary
+ variables specified in the OPTIONS block. If the package supports
+ time series and the Options block includes a TIMESERIESFILE entry
+ (see the "Time-Variable Input" section), values can be obtained from
+ a time series by entering the time-series name in place of a numeric
+ value.
+ * boundname (string) name of the well cell. BOUNDNAME is an ASCII
+ character variable that can contain as many as 40 characters. If
+ BOUNDNAME contains spaces in it, then the entire name must be
+ enclosed within single quotes.
+ mweperioddata : [mawno, mwesetting]
+ * mawno (integer) integer value that defines the well number associated
+ with the specified PERIOD data on the line. MAWNO must be greater
+ than zero and less than or equal to NMAWWELLS. This argument is an
+ index variable, which means that it should be treated as zero-based
+ when working with FloPy and Python. Flopy will automatically subtract
+ one when loading index variables and add one when writing index
+ variables.
+ * mwesetting (keystring) line of information that is parsed into a
+ keyword and values. Keyword values that can be used to start the
+ MWESETTING string include: STATUS, TEMPERATURE, RAINFALL,
+ EVAPORATION, RUNOFF, and AUXILIARY. These settings are used to assign
+ the temperature of associated with the corresponding flow terms.
+ Temperatures cannot be specified for all flow terms. For example, the
+ Multi-Aquifer Well Package supports a "WITHDRAWAL" flow term. If this
+ withdrawal term is active, then water will be withdrawn from the well
+ at the calculated temperature of the well.
+ status : [string]
+ * status (string) keyword option to define well status. STATUS
+ can be ACTIVE, INACTIVE, or CONSTANT. By default, STATUS is
+ ACTIVE, which means that temperature will be calculated for
+ the well. If a well is inactive, then there will be no solute
+ mass fluxes into or out of the well and the inactive value
+ will be written for the well temperature. If a well is
+ constant, then the temperature for the well will be fixed at
+ the user specified value.
+ temperature : [string]
+ * temperature (string) real or character value that defines the
+ temperature for the well. The specified TEMPERATURE is only
+ applied if the well is a constant temperature well. If the
+ Options block includes a TIMESERIESFILE entry (see the "Time-
+ Variable Input" section), values can be obtained from a time
+ series by entering the time-series name in place of a numeric
+ value.
+ rate : [string]
+ * rate (string) real or character value that defines the
+ injection solute temperature :math:`^{\\circ}C` for the well.
+ If the Options block includes a TIMESERIESFILE entry (see the
+ "Time-Variable Input" section), values can be obtained from a
+ time series by entering the time-series name in place of a
+ numeric value.
+ auxiliaryrecord : [auxname, auxval]
+ * auxname (string) name for the auxiliary variable to be
+ assigned AUXVAL. AUXNAME must match one of the auxiliary
+ variable names defined in the OPTIONS block. If AUXNAME does
+ not match one of the auxiliary variable names defined in the
+ OPTIONS block the data are ignored.
+ * auxval (double) value for the auxiliary variable. If the
+ Options block includes a TIMESERIESFILE entry (see the "Time-
+ Variable Input" section), values can be obtained from a time
+ series by entering the time-series name in place of a numeric
+ value.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ auxiliary = ListTemplateGenerator(("gwe6", "mwe", "options", "auxiliary"))
+ temperature_filerecord = ListTemplateGenerator(
+ ("gwe6", "mwe", "options", "temperature_filerecord")
+ )
+ budget_filerecord = ListTemplateGenerator(
+ ("gwe6", "mwe", "options", "budget_filerecord")
+ )
+ budgetcsv_filerecord = ListTemplateGenerator(
+ ("gwe6", "mwe", "options", "budgetcsv_filerecord")
+ )
+ ts_filerecord = ListTemplateGenerator(
+ ("gwe6", "mwe", "options", "ts_filerecord")
+ )
+ obs_filerecord = ListTemplateGenerator(
+ ("gwe6", "mwe", "options", "obs_filerecord")
+ )
+ packagedata = ListTemplateGenerator(
+ ("gwe6", "mwe", "packagedata", "packagedata")
+ )
+ mweperioddata = ListTemplateGenerator(
+ ("gwe6", "mwe", "period", "mweperioddata")
+ )
+ package_abbr = "gwemwe"
+ _package_type = "mwe"
+ dfn_file_name = "gwe-mwe.dfn"
+
+ dfn = [
+ [
+ "header",
+ "multi-package",
+ ],
+ [
+ "block options",
+ "name flow_package_name",
+ "type string",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name auxiliary",
+ "type string",
+ "shape (naux)",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name flow_package_auxiliary_name",
+ "type string",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name boundnames",
+ "type keyword",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_input",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_temperature",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name temperature_filerecord",
+ "type record temperature fileout tempfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name temperature",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name tempfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budget_filerecord",
+ "type record budget fileout budgetfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budget",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name fileout",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsv_filerecord",
+ "type record budgetcsv fileout budgetcsvfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budgetcsv",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsvfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name ts_filerecord",
+ "type record ts6 filein ts6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package ts",
+ "construct_data timeseries",
+ "parameter_name timeseries",
+ ],
+ [
+ "block options",
+ "name ts6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name filein",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name ts6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "reader urword",
+ "optional false",
+ "tagged false",
+ ],
+ [
+ "block options",
+ "name obs_filerecord",
+ "type record obs6 filein obs6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package obs",
+ "construct_data continuous",
+ "parameter_name observations",
+ ],
+ [
+ "block options",
+ "name obs6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name obs6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block packagedata",
+ "name packagedata",
+ "type recarray mawno strt ktf fthk aux boundname",
+ "shape (maxbound)",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name mawno",
+ "type integer",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "numeric_index true",
+ ],
+ [
+ "block packagedata",
+ "name strt",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name ktf",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name fthk",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name aux",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "shape (naux)",
+ "reader urword",
+ "time_series true",
+ "optional true",
+ ],
+ [
+ "block packagedata",
+ "name boundname",
+ "type string",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block period",
+ "name iper",
+ "type integer",
+ "block_variable True",
+ "in_record true",
+ "tagged false",
+ "shape",
+ "valid",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name mweperioddata",
+ "type recarray mawno mwesetting",
+ "shape",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name mawno",
+ "type integer",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "numeric_index true",
+ ],
+ [
+ "block period",
+ "name mwesetting",
+ "type keystring status temperature rate auxiliaryrecord",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name status",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name temperature",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "time_series true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name rate",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ ],
+ [
+ "block period",
+ "name auxiliaryrecord",
+ "type record auxiliary auxname auxval",
+ "shape",
+ "tagged",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name auxiliary",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name auxname",
+ "type string",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name auxval",
+ "type double precision",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ flow_package_name=None,
+ auxiliary=None,
+ flow_package_auxiliary_name=None,
+ boundnames=None,
+ print_input=None,
+ print_temperature=None,
+ print_flows=None,
+ save_flows=None,
+ temperature_filerecord=None,
+ budget_filerecord=None,
+ budgetcsv_filerecord=None,
+ timeseries=None,
+ observations=None,
+ packagedata=None,
+ mweperioddata=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "mwe", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.flow_package_name = self.build_mfdata(
+ "flow_package_name", flow_package_name
+ )
+ self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
+ self.flow_package_auxiliary_name = self.build_mfdata(
+ "flow_package_auxiliary_name", flow_package_auxiliary_name
+ )
+ self.boundnames = self.build_mfdata("boundnames", boundnames)
+ self.print_input = self.build_mfdata("print_input", print_input)
+ self.print_temperature = self.build_mfdata(
+ "print_temperature", print_temperature
+ )
+ self.print_flows = self.build_mfdata("print_flows", print_flows)
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self.temperature_filerecord = self.build_mfdata(
+ "temperature_filerecord", temperature_filerecord
+ )
+ self.budget_filerecord = self.build_mfdata(
+ "budget_filerecord", budget_filerecord
+ )
+ self.budgetcsv_filerecord = self.build_mfdata(
+ "budgetcsv_filerecord", budgetcsv_filerecord
+ )
+ self._ts_filerecord = self.build_mfdata("ts_filerecord", None)
+ self._ts_package = self.build_child_package(
+ "ts", timeseries, "timeseries", self._ts_filerecord
+ )
+ self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
+ self._obs_package = self.build_child_package(
+ "obs", observations, "continuous", self._obs_filerecord
+ )
+ self.packagedata = self.build_mfdata("packagedata", packagedata)
+ self.mweperioddata = self.build_mfdata("mweperioddata", mweperioddata)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwenam.py b/flopy/mf6/modflow/mfgwenam.py
new file mode 100644
index 000000000..a012c6d9c
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwenam.py
@@ -0,0 +1,164 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowGwenam(mfpackage.MFPackage):
+ """
+ ModflowGwenam defines a nam package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ list : string
+ * list (string) is name of the listing file to create for this GWE
+ model. If not specified, then the name of the list file will be the
+ basename of the GWE model name file and the ".lst" extension. For
+ example, if the GWE name file is called "my.model.nam" then the list
+ file will be called "my.model.lst".
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of all model
+ stress package information will be written to the listing file
+ immediately after it is read.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of all model
+ package flow rates will be printed to the listing file for every
+ stress period time step in which "BUDGET PRINT" is specified in
+ Output Control. If there is no Output Control option and
+ "PRINT_FLOWS" is specified, then flow rates are printed for the last
+ time step of each stress period.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that all model package flow
+ terms will be written to the file specified with "BUDGET FILEOUT" in
+ Output Control.
+ packages : [ftype, fname, pname]
+ * ftype (string) is the file type, which must be one of the following
+ character values shown in table ref{table:ftype-gwe}. Ftype may be
+ entered in any combination of uppercase and lowercase.
+ * fname (string) is the name of the file containing the package input.
+ The path to the file should be included if the file is not located in
+ the folder where the program was run.
+ * pname (string) is the user-defined name for the package. PNAME is
+ restricted to 16 characters. No spaces are allowed in PNAME. PNAME
+ character values are read and stored by the program for stress
+ packages only. These names may be useful for labeling purposes when
+ multiple stress packages of the same type are located within a single
+ GWE Model. If PNAME is specified for a stress package, then PNAME
+ will be used in the flow budget table in the listing file; it will
+ also be used for the text entry in the cell-by-cell budget file.
+ PNAME is case insensitive and is stored in all upper case letters.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ packages = ListTemplateGenerator(("gwe6", "nam", "packages", "packages"))
+ package_abbr = "gwenam"
+ _package_type = "nam"
+ dfn_file_name = "gwe-nam.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name list",
+ "type string",
+ "reader urword",
+ "optional true",
+ "preserve_case true",
+ ],
+ [
+ "block options",
+ "name print_input",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block packages",
+ "name packages",
+ "type recarray ftype fname pname",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block packages",
+ "name ftype",
+ "in_record true",
+ "type string",
+ "tagged false",
+ "reader urword",
+ ],
+ [
+ "block packages",
+ "name fname",
+ "in_record true",
+ "type string",
+ "preserve_case true",
+ "tagged false",
+ "reader urword",
+ ],
+ [
+ "block packages",
+ "name pname",
+ "in_record true",
+ "type string",
+ "tagged false",
+ "reader urword",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ list=None,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ packages=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "nam", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.list = self.build_mfdata("list", list)
+ self.print_input = self.build_mfdata("print_input", print_input)
+ self.print_flows = self.build_mfdata("print_flows", print_flows)
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self.packages = self.build_mfdata("packages", packages)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgweoc.py b/flopy/mf6/modflow/mfgweoc.py
new file mode 100644
index 000000000..f188f4b29
--- /dev/null
+++ b/flopy/mf6/modflow/mfgweoc.py
@@ -0,0 +1,433 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowGweoc(mfpackage.MFPackage):
+ """
+ ModflowGweoc defines a oc package within a gwe6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ budget_filerecord : [budgetfile]
+ * budgetfile (string) name of the output file to write budget
+ information.
+ budgetcsv_filerecord : [budgetcsvfile]
+ * budgetcsvfile (string) name of the comma-separated value (CSV) output
+ file to write budget summary information. A budget summary record
+ will be written to this file for each time step of the simulation.
+ temperature_filerecord : [temperaturefile]
+ * temperaturefile (string) name of the output file to write temperature
+ information.
+ temperatureprintrecord : [columns, width, digits, format]
+ * columns (integer) number of columns for writing data.
+ * width (integer) width for writing each number.
+ * digits (integer) number of digits to use for writing a number.
+ * format (string) write format can be EXPONENTIAL, FIXED, GENERAL, or
+ SCIENTIFIC.
+ saverecord : [rtype, ocsetting]
+ * rtype (string) type of information to save or print. Can be BUDGET or
+ TEMPERATURE.
+ * ocsetting (keystring) specifies the steps for which the data will be
+ saved.
+ all : [keyword]
+ * all (keyword) keyword to indicate save for all time steps in
+ period.
+ first : [keyword]
+ * first (keyword) keyword to indicate save for first step in
+ period. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ last : [keyword]
+ * last (keyword) keyword to indicate save for last step in
+ period. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ frequency : [integer]
+ * frequency (integer) save at the specified time step
+ frequency. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ steps : [integer]
+ * steps (integer) save for each step specified in STEPS. This
+ keyword may be used in conjunction with other keywords to
+ print or save results for multiple time steps.
+ printrecord : [rtype, ocsetting]
+ * rtype (string) type of information to save or print. Can be BUDGET or
+ TEMPERATURE.
+ * ocsetting (keystring) specifies the steps for which the data will be
+ saved.
+ all : [keyword]
+ * all (keyword) keyword to indicate save for all time steps in
+ period.
+ first : [keyword]
+ * first (keyword) keyword to indicate save for first step in
+ period. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ last : [keyword]
+ * last (keyword) keyword to indicate save for last step in
+ period. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ frequency : [integer]
+ * frequency (integer) save at the specified time step
+ frequency. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ steps : [integer]
+ * steps (integer) save for each step specified in STEPS. This
+ keyword may be used in conjunction with other keywords to
+ print or save results for multiple time steps.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ budget_filerecord = ListTemplateGenerator(
+ ("gwe6", "oc", "options", "budget_filerecord")
+ )
+ budgetcsv_filerecord = ListTemplateGenerator(
+ ("gwe6", "oc", "options", "budgetcsv_filerecord")
+ )
+ temperature_filerecord = ListTemplateGenerator(
+ ("gwe6", "oc", "options", "temperature_filerecord")
+ )
+ temperatureprintrecord = ListTemplateGenerator(
+ ("gwe6", "oc", "options", "temperatureprintrecord")
+ )
+ saverecord = ListTemplateGenerator(("gwe6", "oc", "period", "saverecord"))
+ printrecord = ListTemplateGenerator(
+ ("gwe6", "oc", "period", "printrecord")
+ )
+ package_abbr = "gweoc"
+ _package_type = "oc"
+ dfn_file_name = "gwe-oc.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name budget_filerecord",
+ "type record budget fileout budgetfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budget",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name fileout",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsv_filerecord",
+ "type record budgetcsv fileout budgetcsvfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budgetcsv",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsvfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name temperature_filerecord",
+ "type record temperature fileout temperaturefile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name temperature",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name temperaturefile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name temperatureprintrecord",
+ "type record temperature print_format formatrecord",
+ "shape",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_format",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name formatrecord",
+ "type record columns width digits format",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name columns",
+ "type integer",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional",
+ ],
+ [
+ "block options",
+ "name width",
+ "type integer",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional",
+ ],
+ [
+ "block options",
+ "name digits",
+ "type integer",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional",
+ ],
+ [
+ "block options",
+ "name format",
+ "type string",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name iper",
+ "type integer",
+ "block_variable True",
+ "in_record true",
+ "tagged false",
+ "shape",
+ "valid",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name saverecord",
+ "type record save rtype ocsetting",
+ "shape",
+ "reader urword",
+ "tagged false",
+ "optional true",
+ ],
+ [
+ "block period",
+ "name save",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name printrecord",
+ "type record print rtype ocsetting",
+ "shape",
+ "reader urword",
+ "tagged false",
+ "optional true",
+ ],
+ [
+ "block period",
+ "name print",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name rtype",
+ "type string",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name ocsetting",
+ "type keystring all first last frequency steps",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name all",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name first",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name last",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name frequency",
+ "type integer",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name steps",
+ "type integer",
+ "shape (
+ * is the exchange type (GWF-GWF or GWF-GWT).
+ exgmnamea :
+ * is the name of the first model that is part of this exchange.
+ exgmnameb :
+ * is the name of the second model that is part of this exchange.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ package_abbr = "gwfgwe"
+ _package_type = "gwfgwe"
+ dfn_file_name = "exg-gwfgwe.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ ]
+
+ def __init__(
+ self,
+ simulation,
+ loading_package=False,
+ exgtype="GWF6-GWE6",
+ exgmnamea=None,
+ exgmnameb=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ simulation, "gwfgwe", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.exgtype = exgtype
+
+ self.exgmnamea = exgmnamea
+
+ self.exgmnameb = exgmnameb
+
+ simulation.register_exchange_file(self)
+
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfgwf.py b/flopy/mf6/modflow/mfgwfgwf.py
index f01443068..f3cc9d867 100644
--- a/flopy/mf6/modflow/mfgwfgwf.py
+++ b/flopy/mf6/modflow/mfgwfgwf.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -34,13 +34,17 @@ class ModflowGwfgwf(mfpackage.MFPackage):
indicates that a normal vector points directly along the positive x
axis. The connection face normal is a normal vector on the cell face
shared between the cell in model 1 and the cell in model 2 pointing
- away from the model 1 cell. Additional information on "ANGLDEGX" is
- provided in the description of the DISU Package. If an auxiliary
- variable with the name "CDIST" is found, then this information will
- be used as the straight-line connection distance, including the
- vertical component, between the two cell centers. Both ANGLDEGX and
- CDIST are required if specific discharge is calculated for either of
- the groundwater models.
+ away from the model 1 cell. Additional information on "ANGLDEGX" and
+ when it is required is provided in the description of the DISU
+ Package. If an auxiliary variable with the name "CDIST" is found,
+ then this information will be used in the calculation of specific
+ discharge within model cells connected by the exchange. For a
+ horizontal connection, CDIST should be specified as the horizontal
+ distance between the cell centers, and should not include the
+ vertical component. For vertical connections, CDIST should be
+ specified as the difference in elevation between the two cell
+ centers. Both ANGLDEGX and CDIST are required if specific discharge
+ is calculated for either of the groundwater models.
boundnames : boolean
* boundnames (boolean) keyword to indicate that boundary names may be
provided with the list of GWF Exchange cells.
@@ -452,6 +456,7 @@ class ModflowGwfgwf(mfpackage.MFPackage):
"shape (naux)",
"reader urword",
"optional true",
+ "mf6internal auxvar",
],
[
"block exchangedata",
diff --git a/flopy/mf6/modflow/mfgwfgwt.py b/flopy/mf6/modflow/mfgwfgwt.py
index 917ceb14d..0ae8b9735 100644
--- a/flopy/mf6/modflow/mfgwfgwt.py
+++ b/flopy/mf6/modflow/mfgwfgwt.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
diff --git a/flopy/mf6/modflow/mfgwfhfb.py b/flopy/mf6/modflow/mfgwfhfb.py
index 97f4e510b..ea5c894bd 100644
--- a/flopy/mf6/modflow/mfgwfhfb.py
+++ b/flopy/mf6/modflow/mfgwfhfb.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwfic.py b/flopy/mf6/modflow/mfgwfic.py
index 7c81d99bc..65efa5ab8 100644
--- a/flopy/mf6/modflow/mfgwfic.py
+++ b/flopy/mf6/modflow/mfgwfic.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator
@@ -17,6 +17,9 @@ class ModflowGwfic(mfpackage.MFPackage):
loading_package : bool
Do not set this parameter. It is intended for debugging and internal
processing purposes only.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
strt : [double]
* strt (double) is the initial (starting) head---that is, head at the
beginning of the GWF Model simulation. STRT must be specified for all
@@ -48,6 +51,14 @@ class ModflowGwfic(mfpackage.MFPackage):
[
"header",
],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
[
"block griddata",
"name strt",
@@ -63,6 +74,7 @@ def __init__(
self,
model,
loading_package=False,
+ export_array_ascii=None,
strt=1.0,
filename=None,
pname=None,
@@ -73,5 +85,8 @@ def __init__(
)
# set up variables
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
self.strt = self.build_mfdata("strt", strt)
self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwflak.py b/flopy/mf6/modflow/mfgwflak.py
index 759e4a65f..06ea7e5c4 100644
--- a/flopy/mf6/modflow/mfgwflak.py
+++ b/flopy/mf6/modflow/mfgwflak.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwfmaw.py b/flopy/mf6/modflow/mfgwfmaw.py
index 9e72fa1d0..b0fd0fe12 100644
--- a/flopy/mf6/modflow/mfgwfmaw.py
+++ b/flopy/mf6/modflow/mfgwfmaw.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwfmvr.py b/flopy/mf6/modflow/mfgwfmvr.py
index 1916be736..73949339d 100644
--- a/flopy/mf6/modflow/mfgwfmvr.py
+++ b/flopy/mf6/modflow/mfgwfmvr.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwfnam.py b/flopy/mf6/modflow/mfgwfnam.py
index 574df2652..ffbca4beb 100644
--- a/flopy/mf6/modflow/mfgwfnam.py
+++ b/flopy/mf6/modflow/mfgwfnam.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -45,8 +45,8 @@ class ModflowGwfnam(mfpackage.MFPackage):
Newton-Raphson UNDER_RELAXATION is not applied.
packages : [ftype, fname, pname]
* ftype (string) is the file type, which must be one of the following
- character values shown in table in mf6io.pdf. Ftype may be entered in
- any combination of uppercase and lowercase.
+ character values shown in table ref{table:ftype-gwf}. Ftype may be
+ entered in any combination of uppercase and lowercase.
* fname (string) is the name of the file containing the package input.
The path to the file should be included if the file is not located in
the folder where the program was run.
diff --git a/flopy/mf6/modflow/mfgwfnpf.py b/flopy/mf6/modflow/mfgwfnpf.py
index db25596f2..ad3798a87 100644
--- a/flopy/mf6/modflow/mfgwfnpf.py
+++ b/flopy/mf6/modflow/mfgwfnpf.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
@@ -108,17 +108,11 @@ class ModflowGwfnpf(mfpackage.MFPackage):
containing data for the tvk package with variable names as keys and
package data as values. Data just for the perioddata variable is also
acceptable. See tvk package documentation for more information.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
dev_no_newton : boolean
* dev_no_newton (boolean) turn off Newton for unconfined cells
- dev_modflowusg_upstream_weighted_saturation : boolean
- * dev_modflowusg_upstream_weighted_saturation (boolean) use MODFLOW-USG
- upstream-weighted saturation approach
- dev_modflownwt_upstream_weighting : boolean
- * dev_modflownwt_upstream_weighting (boolean) use MODFLOW-NWT approach
- for upstream weighting
- dev_minimum_saturated_thickness : double
- * dev_minimum_saturated_thickness (double) set minimum allowed
- saturated thickness
dev_omega : double
* dev_omega (double) set saturation omega value
icelltype : [integer]
@@ -455,35 +449,19 @@ class ModflowGwfnpf(mfpackage.MFPackage):
],
[
"block options",
- "name dev_no_newton",
- "type keyword",
- "reader urword",
- "optional true",
- "mf6internal inewton",
- ],
- [
- "block options",
- "name dev_modflowusg_upstream_weighted_saturation",
+ "name export_array_ascii",
"type keyword",
"reader urword",
"optional true",
- "mf6internal iusgnrhc",
+ "mf6internal export_ascii",
],
[
"block options",
- "name dev_modflownwt_upstream_weighting",
+ "name dev_no_newton",
"type keyword",
"reader urword",
"optional true",
- "mf6internal inwtupw",
- ],
- [
- "block options",
- "name dev_minimum_saturated_thickness",
- "type double precision",
- "reader urword",
- "optional true",
- "mf6internal satmin",
+ "mf6internal inewton",
],
[
"block options",
@@ -594,10 +572,8 @@ def __init__(
k22overk=None,
k33overk=None,
perioddata=None,
+ export_array_ascii=None,
dev_no_newton=None,
- dev_modflowusg_upstream_weighted_saturation=None,
- dev_modflownwt_upstream_weighting=None,
- dev_minimum_saturated_thickness=None,
dev_omega=None,
icelltype=0,
k=1.0,
@@ -638,18 +614,10 @@ def __init__(
self._tvk_package = self.build_child_package(
"tvk", perioddata, "tvk_perioddata", self._tvk_filerecord
)
- self.dev_no_newton = self.build_mfdata("dev_no_newton", dev_no_newton)
- self.dev_modflowusg_upstream_weighted_saturation = self.build_mfdata(
- "dev_modflowusg_upstream_weighted_saturation",
- dev_modflowusg_upstream_weighted_saturation,
- )
- self.dev_modflownwt_upstream_weighting = self.build_mfdata(
- "dev_modflownwt_upstream_weighting",
- dev_modflownwt_upstream_weighting,
- )
- self.dev_minimum_saturated_thickness = self.build_mfdata(
- "dev_minimum_saturated_thickness", dev_minimum_saturated_thickness
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
)
+ self.dev_no_newton = self.build_mfdata("dev_no_newton", dev_no_newton)
self.dev_omega = self.build_mfdata("dev_omega", dev_omega)
self.icelltype = self.build_mfdata("icelltype", icelltype)
self.k = self.build_mfdata("k", k)
diff --git a/flopy/mf6/modflow/mfgwfoc.py b/flopy/mf6/modflow/mfgwfoc.py
index c637ebe74..906c319ad 100644
--- a/flopy/mf6/modflow/mfgwfoc.py
+++ b/flopy/mf6/modflow/mfgwfoc.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwfprt.py b/flopy/mf6/modflow/mfgwfprt.py
new file mode 100644
index 000000000..7a008660b
--- /dev/null
+++ b/flopy/mf6/modflow/mfgwfprt.py
@@ -0,0 +1,70 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+
+
+class ModflowGwfprt(mfpackage.MFPackage):
+ """
+ ModflowGwfprt defines a gwfprt package.
+
+ Parameters
+ ----------
+ simulation : MFSimulation
+ Simulation that this package is a part of. Package is automatically
+ added to simulation when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ exgtype :
+ * is the exchange type (GWF-GWF or GWF-GWT).
+ exgmnamea :
+ * is the name of the first model that is part of this exchange.
+ exgmnameb :
+ * is the name of the second model that is part of this exchange.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ package_abbr = "gwfprt"
+ _package_type = "gwfprt"
+ dfn_file_name = "exg-gwfprt.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ ]
+
+ def __init__(
+ self,
+ simulation,
+ loading_package=False,
+ exgtype="GWF6-PRT6",
+ exgmnamea=None,
+ exgmnameb=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ simulation, "gwfprt", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.exgtype = exgtype
+
+ self.exgmnamea = exgmnamea
+
+ self.exgmnameb = exgmnameb
+
+ simulation.register_exchange_file(self)
+
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwfrch.py b/flopy/mf6/modflow/mfgwfrch.py
index 4697a7b46..cb8f3d386 100644
--- a/flopy/mf6/modflow/mfgwfrch.py
+++ b/flopy/mf6/modflow/mfgwfrch.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwfrcha.py b/flopy/mf6/modflow/mfgwfrcha.py
index 31f7a253e..84aefa86e 100644
--- a/flopy/mf6/modflow/mfgwfrcha.py
+++ b/flopy/mf6/modflow/mfgwfrcha.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
@@ -20,7 +20,11 @@ class ModflowGwfrcha(mfpackage.MFPackage):
readasarrays : boolean
* readasarrays (boolean) indicates that array-based input will be used
for the Recharge Package. This keyword must be specified to use
- array-based input.
+ array-based input. When READASARRAYS is specified, values must be
+ provided for every cell within a model layer, even those cells that
+ have an IDOMAIN value less than one. Values assigned to cells with
+ IDOMAIN values less than one are not used and have no effect on
+ simulation results.
fixed_cell : boolean
* fixed_cell (boolean) indicates that recharge will not be reassigned
to a cell underlying the cell specified in the list if the specified
diff --git a/flopy/mf6/modflow/mfgwfriv.py b/flopy/mf6/modflow/mfgwfriv.py
index 13fca28a6..336cd9f93 100644
--- a/flopy/mf6/modflow/mfgwfriv.py
+++ b/flopy/mf6/modflow/mfgwfriv.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwfsfr.py b/flopy/mf6/modflow/mfgwfsfr.py
index 31ca9b42c..7b1ac67c3 100644
--- a/flopy/mf6/modflow/mfgwfsfr.py
+++ b/flopy/mf6/modflow/mfgwfsfr.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -171,10 +171,13 @@ class ModflowGwfsfr(mfpackage.MFPackage):
* rbth (double) real value that defines the thickness of the reach
streambed. RBTH can be any value if the reach is not connected to an
underlying GWF cell. Otherwise, RBTH must be greater than zero.
- * rhk (double) real value that defines the hydraulic conductivity of
- the reach streambed. RHK can be any positive value if the reach is
- not connected to an underlying GWF cell. Otherwise, RHK must be
- greater than zero.
+ * rhk (double) real or character value that defines the hydraulic
+ conductivity of the reach streambed. RHK can be any positive value if
+ the reach is not connected to an underlying GWF cell. Otherwise, RHK
+ must be greater than zero. If the Options block includes a
+ TIMESERIESFILE entry (see the "Time-Variable Input" section), values
+ can be obtained from a time series by entering the time-series name
+ in place of a numeric value.
* man (string) real or character value that defines the Manning's
roughness coefficient for the reach. MAN must be greater than zero.
If the Options block includes a TIMESERIESFILE entry (see the "Time-
@@ -310,8 +313,9 @@ class ModflowGwfsfr(mfpackage.MFPackage):
index variables.
* sfrsetting (keystring) line of information that is parsed into a
keyword and values. Keyword values that can be used to start the
- SFRSETTING string include: STATUS, MANNING, STAGE, INFLOW, RAINFALL,
- EVAPORATION, RUNOFF, DIVERSION, UPSTREAM_FRACTION, and AUXILIARY.
+ SFRSETTING string include: STATUS, BEDK, MANNING, STAGE, INFLOW,
+ RAINFALL, EVAPORATION, RUNOFF, DIVERSION, UPSTREAM_FRACTION, and
+ AUXILIARY.
status : [string]
* status (string) keyword option to define stream reach status.
STATUS can be ACTIVE, INACTIVE, or SIMPLE. The SIMPLE STATUS
@@ -329,6 +333,15 @@ class ModflowGwfsfr(mfpackage.MFPackage):
respectively, to ensure that the active reach receives all of
the downstream outflow from the upstream reach. By default,
STATUS is ACTIVE.
+ bedk : [string]
+ * bedk (string) real or character value that defines the
+ hydraulic conductivity of the reach streambed. BEDK can be
+ any positive value if the reach is not connected to an
+ underlying GWF cell. Otherwise, BEDK must be greater than
+ zero. If the Options block includes a TIMESERIESFILE entry
+ (see the "Time-Variable Input" section), values can be
+ obtained from a time series by entering the time-series name
+ in place of a numeric value.
manning : [string]
* manning (string) real or character value that defines the
Manning's roughness coefficient for the reach. MANNING must
@@ -863,6 +876,7 @@ class ModflowGwfsfr(mfpackage.MFPackage):
"tagged false",
"in_record true",
"reader urword",
+ "time_series true",
],
[
"block packagedata",
@@ -1079,9 +1093,9 @@ class ModflowGwfsfr(mfpackage.MFPackage):
[
"block period",
"name sfrsetting",
- "type keystring status manning stage inflow rainfall evaporation "
- "runoff diversionrecord upstream_fraction cross_sectionrecord "
- "auxiliaryrecord",
+ "type keystring status bedk manning stage inflow rainfall "
+ "evaporation runoff diversionrecord upstream_fraction "
+ "cross_sectionrecord auxiliaryrecord",
"shape",
"tagged false",
"in_record true",
@@ -1096,6 +1110,16 @@ class ModflowGwfsfr(mfpackage.MFPackage):
"in_record true",
"reader urword",
],
+ [
+ "block period",
+ "name bedk",
+ "type string",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ "time_series true",
+ ],
[
"block period",
"name manning",
diff --git a/flopy/mf6/modflow/mfgwfsto.py b/flopy/mf6/modflow/mfgwfsto.py
index b4dc1d9fd..398b5572e 100644
--- a/flopy/mf6/modflow/mfgwfsto.py
+++ b/flopy/mf6/modflow/mfgwfsto.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwfuzf.py b/flopy/mf6/modflow/mfgwfuzf.py
index 27c1e6df6..1549865f2 100644
--- a/flopy/mf6/modflow/mfgwfuzf.py
+++ b/flopy/mf6/modflow/mfgwfuzf.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -586,6 +586,7 @@ class ModflowGwfuzf(mfpackage.MFPackage):
"tagged true",
"reader urword",
"optional true",
+ "deprecated 6.5.0",
],
[
"block options",
diff --git a/flopy/mf6/modflow/mfgwfvsc.py b/flopy/mf6/modflow/mfgwfvsc.py
index ff62a22ab..76dec5a1f 100644
--- a/flopy/mf6/modflow/mfgwfvsc.py
+++ b/flopy/mf6/modflow/mfgwfvsc.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwfwel.py b/flopy/mf6/modflow/mfgwfwel.py
index b4a0831e6..67da4504c 100644
--- a/flopy/mf6/modflow/mfgwfwel.py
+++ b/flopy/mf6/modflow/mfgwfwel.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -59,7 +59,11 @@ class ModflowGwfwel(mfpackage.MFPackage):
is equal to or less than the calculated interval above the cell
bottom. AUTO_FLOW_REDUCE is set to 0.1 if the specified value is less
than or equal to zero. By default, negative pumping rates are not
- reduced during a simulation.
+ reduced during a simulation. This AUTO_FLOW_REDUCE option only
+ applies to wells in model cells that are marked as "convertible"
+ (ICELLTYPE /= 0) in the Node Property Flow (NPF) input file.
+ Reduction in flow will not occur for wells in cells marked as
+ confined (ICELLTYPE = 0).
afrcsv_filerecord : [afrcsvfile]
* afrcsvfile (string) name of the comma-separated value (CSV) output
file to write information about well extraction rates that have been
diff --git a/flopy/mf6/modflow/mfgwt.py b/flopy/mf6/modflow/mfgwt.py
index 80aaa1286..5a39c1e55 100644
--- a/flopy/mf6/modflow/mfgwt.py
+++ b/flopy/mf6/modflow/mfgwt.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfmodel
from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
@@ -47,8 +47,8 @@ class ModflowGwt(mfmodel.MFModel):
Output Control.
packages : [ftype, fname, pname]
* ftype (string) is the file type, which must be one of the following
- character values shown in table in mf6io.pdf. Ftype may be entered in
- any combination of uppercase and lowercase.
+ character values shown in table ref{table:ftype-gwt}. Ftype may be
+ entered in any combination of uppercase and lowercase.
* fname (string) is the name of the file containing the package input.
The path to the file should be included if the file is not located in
the folder where the program was run.
diff --git a/flopy/mf6/modflow/mfgwtadv.py b/flopy/mf6/modflow/mfgwtadv.py
index 542be274e..56e7e10e2 100644
--- a/flopy/mf6/modflow/mfgwtadv.py
+++ b/flopy/mf6/modflow/mfgwtadv.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
diff --git a/flopy/mf6/modflow/mfgwtapi.py b/flopy/mf6/modflow/mfgwtapi.py
index 4eef482cb..fdd2b6639 100644
--- a/flopy/mf6/modflow/mfgwtapi.py
+++ b/flopy/mf6/modflow/mfgwtapi.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtcnc.py b/flopy/mf6/modflow/mfgwtcnc.py
index b5c76de76..535dc6a35 100644
--- a/flopy/mf6/modflow/mfgwtcnc.py
+++ b/flopy/mf6/modflow/mfgwtcnc.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtdis.py b/flopy/mf6/modflow/mfgwtdis.py
index 7cf93d686..f1b09397b 100644
--- a/flopy/mf6/modflow/mfgwtdis.py
+++ b/flopy/mf6/modflow/mfgwtdis.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator
@@ -42,6 +42,9 @@ class ModflowGwtdis(mfpackage.MFPackage):
value of 0.0 is assigned. The value for ANGROT does not affect the
model simulation, but it is written to the binary grid file so that
postprocessors can locate the grid in space.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
nlay : integer
* nlay (integer) is the number of layers in the model grid.
nrow : integer
@@ -128,6 +131,14 @@ class ModflowGwtdis(mfpackage.MFPackage):
"reader urword",
"optional true",
],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
[
"block dimensions",
"name nlay",
@@ -205,6 +216,7 @@ def __init__(
xorigin=None,
yorigin=None,
angrot=None,
+ export_array_ascii=None,
nlay=1,
nrow=2,
ncol=2,
@@ -227,6 +239,9 @@ def __init__(
self.xorigin = self.build_mfdata("xorigin", xorigin)
self.yorigin = self.build_mfdata("yorigin", yorigin)
self.angrot = self.build_mfdata("angrot", angrot)
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
self.nlay = self.build_mfdata("nlay", nlay)
self.nrow = self.build_mfdata("nrow", nrow)
self.ncol = self.build_mfdata("ncol", ncol)
diff --git a/flopy/mf6/modflow/mfgwtdisu.py b/flopy/mf6/modflow/mfgwtdisu.py
index ea0ac306e..fbd2613b0 100644
--- a/flopy/mf6/modflow/mfgwtdisu.py
+++ b/flopy/mf6/modflow/mfgwtdisu.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
@@ -53,6 +53,9 @@ class ModflowGwtdisu(mfpackage.MFPackage):
cell by a value less than this tolerance, then the program will not
terminate with an error. The default value is zero. This option
should generally not be used.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
nodes : integer
* nodes (integer) is the number of cells in the model grid.
nja : integer
@@ -142,7 +145,7 @@ class ModflowGwtdisu(mfpackage.MFPackage):
degrees points in the positive y-axis direction. ANGLDEGX is only
needed if horizontal anisotropy is specified in the NPF Package, if
the XT3D option is used in the NPF Package, or if the
- SAVE_SPECIFIC_DISCHARGE option is specifed in the NPF Package.
+ SAVE_SPECIFIC_DISCHARGE option is specified in the NPF Package.
ANGLDEGX does not need to be specified if these conditions are not
met. ANGLDEGX is of size NJA; values specified for vertical
connections and for the diagonal position are not used. Note that
@@ -252,6 +255,14 @@ class ModflowGwtdisu(mfpackage.MFPackage):
"default_value 0.0",
"mf6internal voffsettol",
],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
[
"block dimensions",
"name nodes",
@@ -456,6 +467,7 @@ def __init__(
yorigin=None,
angrot=None,
vertical_offset_tolerance=0.0,
+ export_array_ascii=None,
nodes=None,
nja=None,
nvert=None,
@@ -488,6 +500,9 @@ def __init__(
self.vertical_offset_tolerance = self.build_mfdata(
"vertical_offset_tolerance", vertical_offset_tolerance
)
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
self.nodes = self.build_mfdata("nodes", nodes)
self.nja = self.build_mfdata("nja", nja)
self.nvert = self.build_mfdata("nvert", nvert)
diff --git a/flopy/mf6/modflow/mfgwtdisv.py b/flopy/mf6/modflow/mfgwtdisv.py
index d07731710..05ad0b76f 100644
--- a/flopy/mf6/modflow/mfgwtdisv.py
+++ b/flopy/mf6/modflow/mfgwtdisv.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
@@ -45,6 +45,9 @@ class ModflowGwtdisv(mfpackage.MFPackage):
The value for ANGROT does not affect the model simulation, but it is
written to the binary grid file so that postprocessors can locate the
grid in space.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
nlay : integer
* nlay (integer) is the number of layers in the model grid.
ncpl : integer
@@ -156,6 +159,14 @@ class ModflowGwtdisv(mfpackage.MFPackage):
"reader urword",
"optional true",
],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
[
"block dimensions",
"name nlay",
@@ -304,6 +315,7 @@ def __init__(
xorigin=None,
yorigin=None,
angrot=None,
+ export_array_ascii=None,
nlay=None,
ncpl=None,
nvert=None,
@@ -326,6 +338,9 @@ def __init__(
self.xorigin = self.build_mfdata("xorigin", xorigin)
self.yorigin = self.build_mfdata("yorigin", yorigin)
self.angrot = self.build_mfdata("angrot", angrot)
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
self.nlay = self.build_mfdata("nlay", nlay)
self.ncpl = self.build_mfdata("ncpl", ncpl)
self.nvert = self.build_mfdata("nvert", nvert)
diff --git a/flopy/mf6/modflow/mfgwtdsp.py b/flopy/mf6/modflow/mfgwtdsp.py
index de1cd4f90..93d15b3ca 100644
--- a/flopy/mf6/modflow/mfgwtdsp.py
+++ b/flopy/mf6/modflow/mfgwtdsp.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator
@@ -28,6 +28,9 @@ class ModflowGwtdsp(mfpackage.MFPackage):
xt3d_rhs : boolean
* xt3d_rhs (boolean) add xt3d terms to right-hand side, when possible.
This option uses less memory, but may require more iterations.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
diffc : [double]
* diffc (double) effective molecular diffusion coefficient.
alh : [double]
@@ -105,6 +108,14 @@ class ModflowGwtdsp(mfpackage.MFPackage):
"reader urword",
"optional true",
],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
[
"block griddata",
"name diffc",
@@ -167,6 +178,7 @@ def __init__(
loading_package=False,
xt3d_off=None,
xt3d_rhs=None,
+ export_array_ascii=None,
diffc=None,
alh=None,
alv=None,
@@ -184,6 +196,9 @@ def __init__(
# set up variables
self.xt3d_off = self.build_mfdata("xt3d_off", xt3d_off)
self.xt3d_rhs = self.build_mfdata("xt3d_rhs", xt3d_rhs)
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
self.diffc = self.build_mfdata("diffc", diffc)
self.alh = self.build_mfdata("alh", alh)
self.alv = self.build_mfdata("alv", alv)
diff --git a/flopy/mf6/modflow/mfgwtfmi.py b/flopy/mf6/modflow/mfgwtfmi.py
index 423d428d7..5951f3b46 100644
--- a/flopy/mf6/modflow/mfgwtfmi.py
+++ b/flopy/mf6/modflow/mfgwtfmi.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtgwt.py b/flopy/mf6/modflow/mfgwtgwt.py
index e90d60ae8..baa4fc3cc 100644
--- a/flopy/mf6/modflow/mfgwtgwt.py
+++ b/flopy/mf6/modflow/mfgwtgwt.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -38,7 +38,7 @@ class ModflowGwtgwt(mfpackage.MFPackage):
auxiliary : [string]
* auxiliary (string) an array of auxiliary variable names. There is no
limit on the number of auxiliary variables that can be provided. Most
- auxiliary variables will not be used by the GWF-GWF Exchange, but
+ auxiliary variables will not be used by the GWT-GWT Exchange, but
they will be available for use by other parts of the program. If an
auxiliary variable with the name "ANGLDEGX" is found, then this
information will be used as the angle (provided in degrees) between
@@ -47,12 +47,8 @@ class ModflowGwtgwt(mfpackage.MFPackage):
axis. The connection face normal is a normal vector on the cell face
shared between the cell in model 1 and the cell in model 2 pointing
away from the model 1 cell. Additional information on "ANGLDEGX" is
- provided in the description of the DISU Package. If an auxiliary
- variable with the name "CDIST" is found, then this information will
- be used as the straight-line connection distance, including the
- vertical component, between the two cell centers. Both ANGLDEGX and
- CDIST are required if specific discharge is calculated for either of
- the groundwater models.
+ provided in the description of the DISU Package. ANGLDEGX must be
+ specified if dispersion is simulated in the connected GWT models.
boundnames : boolean
* boundnames (boolean) keyword to indicate that boundary names may be
provided with the list of GWT Exchange cells.
@@ -412,6 +408,7 @@ class ModflowGwtgwt(mfpackage.MFPackage):
"shape (naux)",
"reader urword",
"optional true",
+ "mf6internal auxvar",
],
[
"block exchangedata",
diff --git a/flopy/mf6/modflow/mfgwtic.py b/flopy/mf6/modflow/mfgwtic.py
index a7f5fc635..b6fb52a54 100644
--- a/flopy/mf6/modflow/mfgwtic.py
+++ b/flopy/mf6/modflow/mfgwtic.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator
@@ -17,6 +17,9 @@ class ModflowGwtic(mfpackage.MFPackage):
loading_package : bool
Do not set this parameter. It is intended for debugging and internal
processing purposes only.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
strt : [double]
* strt (double) is the initial (starting) concentration---that is,
concentration at the beginning of the GWT Model simulation. STRT must
@@ -42,6 +45,14 @@ class ModflowGwtic(mfpackage.MFPackage):
[
"header",
],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
[
"block griddata",
"name strt",
@@ -57,6 +68,7 @@ def __init__(
self,
model,
loading_package=False,
+ export_array_ascii=None,
strt=0.0,
filename=None,
pname=None,
@@ -67,5 +79,8 @@ def __init__(
)
# set up variables
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
self.strt = self.build_mfdata("strt", strt)
self._init_complete = True
diff --git a/flopy/mf6/modflow/mfgwtist.py b/flopy/mf6/modflow/mfgwtist.py
index 3df913bd5..625c00923 100644
--- a/flopy/mf6/modflow/mfgwtist.py
+++ b/flopy/mf6/modflow/mfgwtist.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtlkt.py b/flopy/mf6/modflow/mfgwtlkt.py
index 0b84249cc..80e80558c 100644
--- a/flopy/mf6/modflow/mfgwtlkt.py
+++ b/flopy/mf6/modflow/mfgwtlkt.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtmst.py b/flopy/mf6/modflow/mfgwtmst.py
index 574137096..2007a5591 100644
--- a/flopy/mf6/modflow/mfgwtmst.py
+++ b/flopy/mf6/modflow/mfgwtmst.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ArrayTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtmvt.py b/flopy/mf6/modflow/mfgwtmvt.py
index 809182955..9bfdf2438 100644
--- a/flopy/mf6/modflow/mfgwtmvt.py
+++ b/flopy/mf6/modflow/mfgwtmvt.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtmwt.py b/flopy/mf6/modflow/mfgwtmwt.py
index fb98e11ea..d32195d90 100644
--- a/flopy/mf6/modflow/mfgwtmwt.py
+++ b/flopy/mf6/modflow/mfgwtmwt.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtnam.py b/flopy/mf6/modflow/mfgwtnam.py
index 0a00c376b..9734127a4 100644
--- a/flopy/mf6/modflow/mfgwtnam.py
+++ b/flopy/mf6/modflow/mfgwtnam.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -40,8 +40,8 @@ class ModflowGwtnam(mfpackage.MFPackage):
Output Control.
packages : [ftype, fname, pname]
* ftype (string) is the file type, which must be one of the following
- character values shown in table in mf6io.pdf. Ftype may be entered in
- any combination of uppercase and lowercase.
+ character values shown in table ref{table:ftype-gwt}. Ftype may be
+ entered in any combination of uppercase and lowercase.
* fname (string) is the name of the file containing the package input.
The path to the file should be included if the file is not located in
the folder where the program was run.
diff --git a/flopy/mf6/modflow/mfgwtoc.py b/flopy/mf6/modflow/mfgwtoc.py
index c8a22c5f5..ade2382cb 100644
--- a/flopy/mf6/modflow/mfgwtoc.py
+++ b/flopy/mf6/modflow/mfgwtoc.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtsft.py b/flopy/mf6/modflow/mfgwtsft.py
index 92b99d45c..cc5afe7f8 100644
--- a/flopy/mf6/modflow/mfgwtsft.py
+++ b/flopy/mf6/modflow/mfgwtsft.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtsrc.py b/flopy/mf6/modflow/mfgwtsrc.py
index 570f0a997..5e92ba7ae 100644
--- a/flopy/mf6/modflow/mfgwtsrc.py
+++ b/flopy/mf6/modflow/mfgwtsrc.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtssm.py b/flopy/mf6/modflow/mfgwtssm.py
index 11ad9d00f..4ac75d98f 100644
--- a/flopy/mf6/modflow/mfgwtssm.py
+++ b/flopy/mf6/modflow/mfgwtssm.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfgwtuzt.py b/flopy/mf6/modflow/mfgwtuzt.py
index 4d1be0850..ddbc4bb0c 100644
--- a/flopy/mf6/modflow/mfgwtuzt.py
+++ b/flopy/mf6/modflow/mfgwtuzt.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfims.py b/flopy/mf6/modflow/mfims.py
index e718e07e5..28a2f28f4 100644
--- a/flopy/mf6/modflow/mfims.py
+++ b/flopy/mf6/modflow/mfims.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -128,7 +128,7 @@ class ModflowIms(mfpackage.MFPackage):
option is deprecated and has no effect on simulation results as of
version 6.1.1. The keyword, OUTER_RCLOSEBND can be still be specified
for backward compatibility with previous versions of MODFLOW 6 but
- eventually specificiation of OUTER_RCLOSEBND will cause MODFLOW 6 to
+ eventually specification of OUTER_RCLOSEBND will cause MODFLOW 6 to
terminate with an error.
outer_maximum : integer
* outer_maximum (integer) integer value defining the maximum number of
diff --git a/flopy/mf6/modflow/mfmvr.py b/flopy/mf6/modflow/mfmvr.py
index fe1b265f8..2d6841226 100644
--- a/flopy/mf6/modflow/mfmvr.py
+++ b/flopy/mf6/modflow/mfmvr.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfmvt.py b/flopy/mf6/modflow/mfmvt.py
index 0bf2177cc..8c16eea4a 100644
--- a/flopy/mf6/modflow/mfmvt.py
+++ b/flopy/mf6/modflow/mfmvt.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
diff --git a/flopy/mf6/modflow/mfnam.py b/flopy/mf6/modflow/mfnam.py
index 777597f77..d3ac30e3c 100644
--- a/flopy/mf6/modflow/mfnam.py
+++ b/flopy/mf6/modflow/mfnam.py
@@ -1,6 +1,6 @@
# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
-# FILE created on February 07, 2024 20:16:08 UTC
+# FILE created on May 23, 2024 14:30:07 UTC
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
@@ -40,6 +40,11 @@ class ModflowNam(mfpackage.MFPackage):
keyword, input summaries will be written for those packages that
support newer input data model routines. Not all packages are
supported yet by the newer input data model routines.
+ hpc : {varname:data} or hpc_data data
+ * Contains data for the hpc package. Data can be stored in a dictionary
+ containing data for the hpc package with variable names as keys and
+ package data as values. Data just for the hpc variable is also
+ acceptable. See hpc package documentation for more information.
tdis6 : string
* tdis6 (string) is the name of the Temporal Discretization (TDIS)
Input File.
@@ -63,7 +68,8 @@ class ModflowNam(mfpackage.MFPackage):
in the solution group, then MXITER must be 1.
solutiongroup : [slntype, slnfname, slnmnames]
* slntype (string) is the type of solution. The Integrated Model
- Solution (IMS6) is the only supported option in this version.
+ Solution (IMS6) and Explicit Model Solution (EMS6) are the only
+ supported options in this version.
* slnfname (string) name of file containing solution input.
* slnmnames (string) is the array of model names to add to this
solution. The number of model names is determined by the number of
@@ -79,6 +85,9 @@ class ModflowNam(mfpackage.MFPackage):
"""
+ hpc_filerecord = ListTemplateGenerator(
+ ("nam", "options", "hpc_filerecord")
+ )
models = ListTemplateGenerator(("nam", "models", "models"))
exchanges = ListTemplateGenerator(("nam", "exchanges", "exchanges"))
solutiongroup = ListTemplateGenerator(
@@ -128,6 +137,48 @@ class ModflowNam(mfpackage.MFPackage):
"reader urword",
"optional true",
],
+ [
+ "block options",
+ "name hpc_filerecord",
+ "type record hpc6 filein hpc6_filename",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ "construct_package hpc",
+ "construct_data hpc_data",
+ "parameter_name hpc",
+ ],
+ [
+ "block options",
+ "name hpc6",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name filein",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name hpc6_filename",
+ "type string",
+ "preserve_case true",
+ "in_record true",
+ "reader urword",
+ "optional false",
+ "tagged false",
+ ],
[
"block timing",
"name tdis6",
@@ -235,7 +286,7 @@ class ModflowNam(mfpackage.MFPackage):
"block solutiongroup",
"name slntype",
"type string",
- "valid ims6",
+ "valid ims6 ems6",
"in_record true",
"tagged false",
"reader urword",
@@ -290,6 +341,7 @@ def __init__(
)
self.maxerrors = self.build_mfdata("maxerrors", maxerrors)
self.print_input = self.build_mfdata("print_input", print_input)
+ self._hpc_filerecord = self.build_mfdata("hpc_filerecord", None)
self.tdis6 = self.build_mfdata("tdis6", tdis6)
self.models = self.build_mfdata("models", models)
self.exchanges = self.build_mfdata("exchanges", exchanges)
diff --git a/flopy/mf6/modflow/mfprt.py b/flopy/mf6/modflow/mfprt.py
new file mode 100644
index 000000000..b5c5eacb2
--- /dev/null
+++ b/flopy/mf6/modflow/mfprt.py
@@ -0,0 +1,135 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfmodel
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
+
+
+class ModflowPrt(mfmodel.MFModel):
+ """
+ Modflowprt defines a prt model
+
+ Parameters
+ ----------
+ modelname : string
+ name of the model
+ model_nam_file : string
+ relative path to the model name file from model working folder
+ version : string
+ version of modflow
+ exe_name : string
+ model executable name
+ model_ws : string
+ model working folder path
+ sim : MFSimulation
+ Simulation that this model is a part of. Model is automatically
+ added to simulation when it is initialized.
+ list : string
+ * list (string) is name of the listing file to create for this PRT
+ model. If not specified, then the name of the list file will be the
+ basename of the PRT model name file and the '.lst' extension. For
+ example, if the PRT name file is called "my.model.nam" then the list
+ file will be called "my.model.lst".
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of all model
+ stress package information will be written to the listing file
+ immediately after it is read.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of all model
+ package flow rates will be printed to the listing file for every
+ stress period time step in which "BUDGET PRINT" is specified in
+ Output Control. If there is no Output Control option and
+ "PRINT_FLOWS" is specified, then flow rates are printed for the last
+ time step of each stress period.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that all model package flow
+ terms will be written to the file specified with "BUDGET FILEOUT" in
+ Output Control.
+ packages : [ftype, fname, pname]
+ * ftype (string) is the file type, which must be one of the following
+ character values shown in table ref{table:ftype-prt}. Ftype may be
+ entered in any combination of uppercase and lowercase.
+ * fname (string) is the name of the file containing the package input.
+ The path to the file should be included if the file is not located in
+ the folder where the program was run.
+ * pname (string) is the user-defined name for the package. PNAME is
+ restricted to 16 characters. No spaces are allowed in PNAME. PNAME
+ character values are read and stored by the program for stress
+ packages only. These names may be useful for labeling purposes when
+ multiple stress packages of the same type are located within a single
+ PRT Model. If PNAME is specified for a stress package, then PNAME
+ will be used in the flow budget table in the listing file; it will
+ also be used for the text entry in the cell-by-cell budget file.
+ PNAME is case insensitive and is stored in all upper case letters.
+
+ Methods
+ -------
+ load : (simulation : MFSimulationData, model_name : string,
+ namfile : string, version : string, exe_name : string,
+ model_ws : string, strict : boolean) : MFSimulation
+ a class method that loads a model from files
+ """
+
+ model_type = "prt"
+
+ def __init__(
+ self,
+ simulation,
+ modelname="model",
+ model_nam_file=None,
+ version="mf6",
+ exe_name="mf6",
+ model_rel_path=".",
+ list=None,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ **kwargs,
+ ):
+ super().__init__(
+ simulation,
+ model_type="prt6",
+ modelname=modelname,
+ model_nam_file=model_nam_file,
+ version=version,
+ exe_name=exe_name,
+ model_rel_path=model_rel_path,
+ **kwargs,
+ )
+
+ self.name_file.list.set_data(list)
+ self.name_file.print_input.set_data(print_input)
+ self.name_file.print_flows.set_data(print_flows)
+ self.name_file.save_flows.set_data(save_flows)
+
+ self.list = self.name_file.list
+ self.print_input = self.name_file.print_input
+ self.print_flows = self.name_file.print_flows
+ self.save_flows = self.name_file.save_flows
+
+ @classmethod
+ def load(
+ cls,
+ simulation,
+ structure,
+ modelname="NewModel",
+ model_nam_file="modflowtest.nam",
+ version="mf6",
+ exe_name="mf6",
+ strict=True,
+ model_rel_path=".",
+ load_only=None,
+ ):
+ return mfmodel.MFModel.load_base(
+ cls,
+ simulation,
+ structure,
+ modelname,
+ model_nam_file,
+ "prt6",
+ version,
+ exe_name,
+ strict,
+ model_rel_path,
+ load_only,
+ )
diff --git a/flopy/mf6/modflow/mfprtdis.py b/flopy/mf6/modflow/mfprtdis.py
new file mode 100644
index 000000000..5a29b80c1
--- /dev/null
+++ b/flopy/mf6/modflow/mfprtdis.py
@@ -0,0 +1,253 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator
+
+
+class ModflowPrtdis(mfpackage.MFPackage):
+ """
+ ModflowPrtdis defines a dis package within a prt6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ length_units : string
+ * length_units (string) is the length units used for this model. Values
+ can be "FEET", "METERS", or "CENTIMETERS". If not specified, the
+ default is "UNKNOWN".
+ nogrb : boolean
+ * nogrb (boolean) keyword to deactivate writing of the binary grid
+ file.
+ xorigin : double
+ * xorigin (double) x-position of the lower-left corner of the model
+ grid. A default value of zero is assigned if not specified. The value
+ for XORIGIN does not affect the model simulation, but it is written
+ to the binary grid file so that postprocessors can locate the grid in
+ space.
+ yorigin : double
+ * yorigin (double) y-position of the lower-left corner of the model
+ grid. If not specified, then a default value equal to zero is used.
+ The value for YORIGIN does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ angrot : double
+ * angrot (double) counter-clockwise rotation angle (in degrees) of the
+ lower-left corner of the model grid. If not specified, then a default
+ value of 0.0 is assigned. The value for ANGROT does not affect the
+ model simulation, but it is written to the binary grid file so that
+ postprocessors can locate the grid in space.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
+ nlay : integer
+ * nlay (integer) is the number of layers in the model grid.
+ nrow : integer
+ * nrow (integer) is the number of rows in the model grid.
+ ncol : integer
+ * ncol (integer) is the number of columns in the model grid.
+ delr : [double]
+ * delr (double) is the column spacing in the row direction.
+ delc : [double]
+ * delc (double) is the row spacing in the column direction.
+ top : [double]
+ * top (double) is the top elevation for each cell in the top model
+ layer.
+ botm : [double]
+ * botm (double) is the bottom elevation for each cell.
+ idomain : [integer]
+ * idomain (integer) is an optional array that characterizes the
+ existence status of a cell. If the IDOMAIN array is not specified,
+ then all model cells exist within the solution. If the IDOMAIN value
+ for a cell is 0, the cell does not exist in the simulation. Input and
+ output values will be read and written for the cell, but internal to
+ the program, the cell is excluded from the solution. If the IDOMAIN
+ value for a cell is 1, the cell exists in the simulation. If the
+ IDOMAIN value for a cell is -1, the cell does not exist in the
+ simulation. Furthermore, the first existing cell above will be
+ connected to the first existing cell below. This type of cell is
+ referred to as a "vertical pass through" cell.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ delr = ArrayTemplateGenerator(("prt6", "dis", "griddata", "delr"))
+ delc = ArrayTemplateGenerator(("prt6", "dis", "griddata", "delc"))
+ top = ArrayTemplateGenerator(("prt6", "dis", "griddata", "top"))
+ botm = ArrayTemplateGenerator(("prt6", "dis", "griddata", "botm"))
+ idomain = ArrayTemplateGenerator(("prt6", "dis", "griddata", "idomain"))
+ package_abbr = "prtdis"
+ _package_type = "dis"
+ dfn_file_name = "prt-dis.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name length_units",
+ "type string",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name nogrb",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name xorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name yorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name angrot",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
+ [
+ "block dimensions",
+ "name nlay",
+ "type integer",
+ "reader urword",
+ "optional false",
+ "default_value 1",
+ ],
+ [
+ "block dimensions",
+ "name nrow",
+ "type integer",
+ "reader urword",
+ "optional false",
+ "default_value 2",
+ ],
+ [
+ "block dimensions",
+ "name ncol",
+ "type integer",
+ "reader urword",
+ "optional false",
+ "default_value 2",
+ ],
+ [
+ "block griddata",
+ "name delr",
+ "type double precision",
+ "shape (ncol)",
+ "reader readarray",
+ "default_value 1.0",
+ ],
+ [
+ "block griddata",
+ "name delc",
+ "type double precision",
+ "shape (nrow)",
+ "reader readarray",
+ "default_value 1.0",
+ ],
+ [
+ "block griddata",
+ "name top",
+ "type double precision",
+ "shape (ncol, nrow)",
+ "reader readarray",
+ "default_value 1.0",
+ ],
+ [
+ "block griddata",
+ "name botm",
+ "type double precision",
+ "shape (ncol, nrow, nlay)",
+ "reader readarray",
+ "layered true",
+ "default_value 0.",
+ ],
+ [
+ "block griddata",
+ "name idomain",
+ "type integer",
+ "shape (ncol, nrow, nlay)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ length_units=None,
+ nogrb=None,
+ xorigin=None,
+ yorigin=None,
+ angrot=None,
+ export_array_ascii=None,
+ nlay=1,
+ nrow=2,
+ ncol=2,
+ delr=1.0,
+ delc=1.0,
+ top=1.0,
+ botm=0.0,
+ idomain=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "dis", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.length_units = self.build_mfdata("length_units", length_units)
+ self.nogrb = self.build_mfdata("nogrb", nogrb)
+ self.xorigin = self.build_mfdata("xorigin", xorigin)
+ self.yorigin = self.build_mfdata("yorigin", yorigin)
+ self.angrot = self.build_mfdata("angrot", angrot)
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
+ self.nlay = self.build_mfdata("nlay", nlay)
+ self.nrow = self.build_mfdata("nrow", nrow)
+ self.ncol = self.build_mfdata("ncol", ncol)
+ self.delr = self.build_mfdata("delr", delr)
+ self.delc = self.build_mfdata("delc", delc)
+ self.top = self.build_mfdata("top", top)
+ self.botm = self.build_mfdata("botm", botm)
+ self.idomain = self.build_mfdata("idomain", idomain)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfprtdisv.py b/flopy/mf6/modflow/mfprtdisv.py
new file mode 100644
index 000000000..43b68ab21
--- /dev/null
+++ b/flopy/mf6/modflow/mfprtdisv.py
@@ -0,0 +1,352 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
+
+
+class ModflowPrtdisv(mfpackage.MFPackage):
+ """
+ ModflowPrtdisv defines a disv package within a prt6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ length_units : string
+ * length_units (string) is the length units used for this model. Values
+ can be "FEET", "METERS", or "CENTIMETERS". If not specified, the
+ default is "UNKNOWN".
+ nogrb : boolean
+ * nogrb (boolean) keyword to deactivate writing of the binary grid
+ file.
+ xorigin : double
+ * xorigin (double) x-position of the origin used for model grid
+ vertices. This value should be provided in a real-world coordinate
+ system. A default value of zero is assigned if not specified. The
+ value for XORIGIN does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ yorigin : double
+ * yorigin (double) y-position of the origin used for model grid
+ vertices. This value should be provided in a real-world coordinate
+ system. If not specified, then a default value equal to zero is used.
+ The value for YORIGIN does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ angrot : double
+ * angrot (double) counter-clockwise rotation angle (in degrees) of the
+ model grid coordinate system relative to a real-world coordinate
+ system. If not specified, then a default value of 0.0 is assigned.
+ The value for ANGROT does not affect the model simulation, but it is
+ written to the binary grid file so that postprocessors can locate the
+ grid in space.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
+ nlay : integer
+ * nlay (integer) is the number of layers in the model grid.
+ ncpl : integer
+ * ncpl (integer) is the number of cells per layer. This is a constant
+ value for the grid and it applies to all layers.
+ nvert : integer
+ * nvert (integer) is the total number of (x, y) vertex pairs used to
+ characterize the horizontal configuration of the model grid.
+ top : [double]
+ * top (double) is the top elevation for each cell in the top model
+ layer.
+ botm : [double]
+ * botm (double) is the bottom elevation for each cell.
+ idomain : [integer]
+ * idomain (integer) is an optional array that characterizes the
+ existence status of a cell. If the IDOMAIN array is not specified,
+ then all model cells exist within the solution. If the IDOMAIN value
+ for a cell is 0, the cell does not exist in the simulation. Input and
+ output values will be read and written for the cell, but internal to
+ the program, the cell is excluded from the solution. If the IDOMAIN
+ value for a cell is 1, the cell exists in the simulation. If the
+ IDOMAIN value for a cell is -1, the cell does not exist in the
+ simulation. Furthermore, the first existing cell above will be
+ connected to the first existing cell below. This type of cell is
+ referred to as a "vertical pass through" cell.
+ vertices : [iv, xv, yv]
+ * iv (integer) is the vertex number. Records in the VERTICES block must
+ be listed in consecutive order from 1 to NVERT. This argument is an
+ index variable, which means that it should be treated as zero-based
+ when working with FloPy and Python. Flopy will automatically subtract
+ one when loading index variables and add one when writing index
+ variables.
+ * xv (double) is the x-coordinate for the vertex.
+ * yv (double) is the y-coordinate for the vertex.
+ cell2d : [icell2d, xc, yc, ncvert, icvert]
+ * icell2d (integer) is the CELL2D number. Records in the CELL2D block
+ must be listed in consecutive order from the first to the last. This
+ argument is an index variable, which means that it should be treated
+ as zero-based when working with FloPy and Python. Flopy will
+ automatically subtract one when loading index variables and add one
+ when writing index variables.
+ * xc (double) is the x-coordinate for the cell center.
+ * yc (double) is the y-coordinate for the cell center.
+ * ncvert (integer) is the number of vertices required to define the
+ cell. There may be a different number of vertices for each cell.
+ * icvert (integer) is an array of integer values containing vertex
+ numbers (in the VERTICES block) used to define the cell. Vertices
+ must be listed in clockwise order. Cells that are connected must
+ share vertices. This argument is an index variable, which means that
+ it should be treated as zero-based when working with FloPy and
+ Python. Flopy will automatically subtract one when loading index
+ variables and add one when writing index variables.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ top = ArrayTemplateGenerator(("prt6", "disv", "griddata", "top"))
+ botm = ArrayTemplateGenerator(("prt6", "disv", "griddata", "botm"))
+ idomain = ArrayTemplateGenerator(("prt6", "disv", "griddata", "idomain"))
+ vertices = ListTemplateGenerator(("prt6", "disv", "vertices", "vertices"))
+ cell2d = ListTemplateGenerator(("prt6", "disv", "cell2d", "cell2d"))
+ package_abbr = "prtdisv"
+ _package_type = "disv"
+ dfn_file_name = "prt-disv.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name length_units",
+ "type string",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name nogrb",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name xorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name yorigin",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name angrot",
+ "type double precision",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
+ [
+ "block dimensions",
+ "name nlay",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block dimensions",
+ "name ncpl",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block dimensions",
+ "name nvert",
+ "type integer",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block griddata",
+ "name top",
+ "type double precision",
+ "shape (ncpl)",
+ "reader readarray",
+ ],
+ [
+ "block griddata",
+ "name botm",
+ "type double precision",
+ "shape (ncpl, nlay)",
+ "reader readarray",
+ "layered true",
+ ],
+ [
+ "block griddata",
+ "name idomain",
+ "type integer",
+ "shape (ncpl, nlay)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block vertices",
+ "name vertices",
+ "type recarray iv xv yv",
+ "shape (nvert)",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block vertices",
+ "name iv",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ [
+ "block vertices",
+ "name xv",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block vertices",
+ "name yv",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name cell2d",
+ "type recarray icell2d xc yc ncvert icvert",
+ "shape (ncpl)",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name icell2d",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ [
+ "block cell2d",
+ "name xc",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name yc",
+ "type double precision",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name ncvert",
+ "type integer",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block cell2d",
+ "name icvert",
+ "type integer",
+ "shape (ncvert)",
+ "in_record true",
+ "tagged false",
+ "reader urword",
+ "optional false",
+ "numeric_index true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ length_units=None,
+ nogrb=None,
+ xorigin=None,
+ yorigin=None,
+ angrot=None,
+ export_array_ascii=None,
+ nlay=None,
+ ncpl=None,
+ nvert=None,
+ top=None,
+ botm=None,
+ idomain=None,
+ vertices=None,
+ cell2d=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "disv", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.length_units = self.build_mfdata("length_units", length_units)
+ self.nogrb = self.build_mfdata("nogrb", nogrb)
+ self.xorigin = self.build_mfdata("xorigin", xorigin)
+ self.yorigin = self.build_mfdata("yorigin", yorigin)
+ self.angrot = self.build_mfdata("angrot", angrot)
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
+ self.nlay = self.build_mfdata("nlay", nlay)
+ self.ncpl = self.build_mfdata("ncpl", ncpl)
+ self.nvert = self.build_mfdata("nvert", nvert)
+ self.top = self.build_mfdata("top", top)
+ self.botm = self.build_mfdata("botm", botm)
+ self.idomain = self.build_mfdata("idomain", idomain)
+ self.vertices = self.build_mfdata("vertices", vertices)
+ self.cell2d = self.build_mfdata("cell2d", cell2d)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfprtfmi.py b/flopy/mf6/modflow/mfprtfmi.py
new file mode 100644
index 000000000..134ae6c3c
--- /dev/null
+++ b/flopy/mf6/modflow/mfprtfmi.py
@@ -0,0 +1,113 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowPrtfmi(mfpackage.MFPackage):
+ """
+ ModflowPrtfmi defines a fmi package within a prt6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that FMI flow terms will be
+ written to the file specified with "BUDGET FILEOUT" in Output
+ Control.
+ packagedata : [flowtype, fname]
+ * flowtype (string) is the word GWFBUDGET or GWFHEAD. If GWFBUDGET is
+ specified, then the corresponding file must be a budget file from a
+ previous GWF Model run.
+ * fname (string) is the name of the file containing flows. The path to
+ the file should be included if the file is not located in the folder
+ where the program was run.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ packagedata = ListTemplateGenerator(
+ ("prt6", "fmi", "packagedata", "packagedata")
+ )
+ package_abbr = "prtfmi"
+ _package_type = "fmi"
+ dfn_file_name = "prt-fmi.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block packagedata",
+ "name packagedata",
+ "type recarray flowtype filein fname",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block packagedata",
+ "name flowtype",
+ "in_record true",
+ "type string",
+ "tagged false",
+ "reader urword",
+ ],
+ [
+ "block packagedata",
+ "name filein",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block packagedata",
+ "name fname",
+ "in_record true",
+ "type string",
+ "preserve_case true",
+ "tagged false",
+ "reader urword",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ save_flows=None,
+ packagedata=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "fmi", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self.packagedata = self.build_mfdata("packagedata", packagedata)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfprtmip.py b/flopy/mf6/modflow/mfprtmip.py
new file mode 100644
index 000000000..34d2c1d01
--- /dev/null
+++ b/flopy/mf6/modflow/mfprtmip.py
@@ -0,0 +1,130 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ArrayTemplateGenerator
+
+
+class ModflowPrtmip(mfpackage.MFPackage):
+ """
+ ModflowPrtmip defines a mip package within a prt6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ export_array_ascii : boolean
+ * export_array_ascii (boolean) keyword that specifies input griddata
+ arrays should be written to layered ascii output files.
+ porosity : [double]
+ * porosity (double) is the aquifer porosity.
+ retfactor : [double]
+ * retfactor (double) is a real value by which velocity is divided
+ within a given cell. RETFACTOR can be used to account for solute
+ retardation, i.e., the apparent effect of linear sorption on the
+ velocity of particles that track solute advection. RETFACTOR may be
+ assigned any real value. A RETFACTOR value greater than 1 represents
+ particle retardation (slowing), and a value of 1 represents no
+ retardation. The effect of specifying a RETFACTOR value for each cell
+ is the same as the effect of directly multiplying the POROSITY in
+ each cell by the proposed RETFACTOR value for each cell. RETFACTOR
+ allows conceptual isolation of effects such as retardation from the
+ effect of porosity. The default value is 1.
+ izone : [integer]
+ * izone (integer) is an integer zone number assigned to each cell.
+ IZONE may be positive, negative, or zero. The current cell's zone
+ number is recorded with each particle track datum. If a PRP package's
+ ISTOPZONE option is set to any value other than zero, particles
+ released by that PRP Package terminate if they enter a cell whose
+ IZONE value matches ISTOPZONE. If ISTOPZONE is not specified or is
+ set to zero in a PRP Package, IZONE has no effect on the termination
+ of particles released by that PRP Package. Each PRP Package may
+ configure a single ISTOPZONE value.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ porosity = ArrayTemplateGenerator(("prt6", "mip", "griddata", "porosity"))
+ retfactor = ArrayTemplateGenerator(
+ ("prt6", "mip", "griddata", "retfactor")
+ )
+ izone = ArrayTemplateGenerator(("prt6", "mip", "griddata", "izone"))
+ package_abbr = "prtmip"
+ _package_type = "mip"
+ dfn_file_name = "prt-mip.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name export_array_ascii",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ "mf6internal export_ascii",
+ ],
+ [
+ "block griddata",
+ "name porosity",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ ],
+ [
+ "block griddata",
+ "name retfactor",
+ "type double precision",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ [
+ "block griddata",
+ "name izone",
+ "type integer",
+ "shape (nodes)",
+ "reader readarray",
+ "layered true",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ export_array_ascii=None,
+ porosity=None,
+ retfactor=None,
+ izone=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "mip", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.export_array_ascii = self.build_mfdata(
+ "export_array_ascii", export_array_ascii
+ )
+ self.porosity = self.build_mfdata("porosity", porosity)
+ self.retfactor = self.build_mfdata("retfactor", retfactor)
+ self.izone = self.build_mfdata("izone", izone)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfprtnam.py b/flopy/mf6/modflow/mfprtnam.py
new file mode 100644
index 000000000..bb875d582
--- /dev/null
+++ b/flopy/mf6/modflow/mfprtnam.py
@@ -0,0 +1,163 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowPrtnam(mfpackage.MFPackage):
+ """
+ ModflowPrtnam defines a nam package within a prt6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ list : string
+ * list (string) is name of the listing file to create for this PRT
+ model. If not specified, then the name of the list file will be the
+ basename of the PRT model name file and the '.lst' extension. For
+ example, if the PRT name file is called "my.model.nam" then the list
+ file will be called "my.model.lst".
+ print_input : boolean
+ * print_input (boolean) keyword to indicate that the list of all model
+ stress package information will be written to the listing file
+ immediately after it is read.
+ print_flows : boolean
+ * print_flows (boolean) keyword to indicate that the list of all model
+ package flow rates will be printed to the listing file for every
+ stress period time step in which "BUDGET PRINT" is specified in
+ Output Control. If there is no Output Control option and
+ "PRINT_FLOWS" is specified, then flow rates are printed for the last
+ time step of each stress period.
+ save_flows : boolean
+ * save_flows (boolean) keyword to indicate that all model package flow
+ terms will be written to the file specified with "BUDGET FILEOUT" in
+ Output Control.
+ packages : [ftype, fname, pname]
+ * ftype (string) is the file type, which must be one of the following
+ character values shown in table ref{table:ftype-prt}. Ftype may be
+ entered in any combination of uppercase and lowercase.
+ * fname (string) is the name of the file containing the package input.
+ The path to the file should be included if the file is not located in
+ the folder where the program was run.
+ * pname (string) is the user-defined name for the package. PNAME is
+ restricted to 16 characters. No spaces are allowed in PNAME. PNAME
+ character values are read and stored by the program for stress
+ packages only. These names may be useful for labeling purposes when
+ multiple stress packages of the same type are located within a single
+ PRT Model. If PNAME is specified for a stress package, then PNAME
+ will be used in the flow budget table in the listing file; it will
+ also be used for the text entry in the cell-by-cell budget file.
+ PNAME is case insensitive and is stored in all upper case letters.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ packages = ListTemplateGenerator(("prt6", "nam", "packages", "packages"))
+ package_abbr = "prtnam"
+ _package_type = "nam"
+ dfn_file_name = "prt-nam.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name list",
+ "type string",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_input",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name print_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name save_flows",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block packages",
+ "name packages",
+ "type recarray ftype fname pname",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block packages",
+ "name ftype",
+ "in_record true",
+ "type string",
+ "tagged false",
+ "reader urword",
+ ],
+ [
+ "block packages",
+ "name fname",
+ "in_record true",
+ "type string",
+ "preserve_case true",
+ "tagged false",
+ "reader urword",
+ ],
+ [
+ "block packages",
+ "name pname",
+ "in_record true",
+ "type string",
+ "tagged false",
+ "reader urword",
+ "optional true",
+ ],
+ ]
+
+ def __init__(
+ self,
+ model,
+ loading_package=False,
+ list=None,
+ print_input=None,
+ print_flows=None,
+ save_flows=None,
+ packages=None,
+ filename=None,
+ pname=None,
+ **kwargs,
+ ):
+ super().__init__(
+ model, "nam", filename, pname, loading_package, **kwargs
+ )
+
+ # set up variables
+ self.list = self.build_mfdata("list", list)
+ self.print_input = self.build_mfdata("print_input", print_input)
+ self.print_flows = self.build_mfdata("print_flows", print_flows)
+ self.save_flows = self.build_mfdata("save_flows", save_flows)
+ self.packages = self.build_mfdata("packages", packages)
+ self._init_complete = True
diff --git a/flopy/mf6/modflow/mfprtoc.py b/flopy/mf6/modflow/mfprtoc.py
new file mode 100644
index 000000000..511c3006f
--- /dev/null
+++ b/flopy/mf6/modflow/mfprtoc.py
@@ -0,0 +1,550 @@
+# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
+# mf6/utils/createpackages.py
+# FILE created on May 23, 2024 14:30:07 UTC
+from .. import mfpackage
+from ..data.mfdatautil import ListTemplateGenerator
+
+
+class ModflowPrtoc(mfpackage.MFPackage):
+ """
+ ModflowPrtoc defines a oc package within a prt6 model.
+
+ Parameters
+ ----------
+ model : MFModel
+ Model that this package is a part of. Package is automatically
+ added to model when it is initialized.
+ loading_package : bool
+ Do not set this parameter. It is intended for debugging and internal
+ processing purposes only.
+ budget_filerecord : [budgetfile]
+ * budgetfile (string) name of the output file to write budget
+ information.
+ budgetcsv_filerecord : [budgetcsvfile]
+ * budgetcsvfile (string) name of the comma-separated value (CSV) output
+ file to write budget summary information. A budget summary record
+ will be written to this file for each time step of the simulation.
+ track_filerecord : [trackfile]
+ * trackfile (string) name of the binary output file to write tracking
+ information.
+ trackcsv_filerecord : [trackcsvfile]
+ * trackcsvfile (string) name of the comma-separated value (CSV) file to
+ write tracking information.
+ track_release : boolean
+ * track_release (boolean) keyword to indicate that particle tracking
+ output is to be written when a particle is released
+ track_exit : boolean
+ * track_exit (boolean) keyword to indicate that particle tracking
+ output is to be written when a particle exits a cell
+ track_timestep : boolean
+ * track_timestep (boolean) keyword to indicate that particle tracking
+ output is to be written at the end of each time step
+ track_terminate : boolean
+ * track_terminate (boolean) keyword to indicate that particle tracking
+ output is to be written when a particle terminates for any reason
+ track_weaksink : boolean
+ * track_weaksink (boolean) keyword to indicate that particle tracking
+ output is to be written when a particle exits a weak sink (a cell
+ which removes some but not all inflow from adjacent cells)
+ track_usertime : boolean
+ * track_usertime (boolean) keyword to indicate that particle tracking
+ output is to be written at user-specified times, provided as double
+ precision values to the TRACK_TIMES or TRACK_TIMESFILE options
+ track_timesrecord : [times]
+ * times (double) times to track, relative to the beginning of the
+ simulation.
+ track_timesfilerecord : [timesfile]
+ * timesfile (string) name of the tracking times file
+ saverecord : [rtype, ocsetting]
+ * rtype (string) type of information to save or print. Can only be
+ BUDGET.
+ * ocsetting (keystring) specifies the steps for which the data will be
+ saved.
+ all : [keyword]
+ * all (keyword) keyword to indicate save for all time steps in
+ period.
+ first : [keyword]
+ * first (keyword) keyword to indicate save for first step in
+ period. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ last : [keyword]
+ * last (keyword) keyword to indicate save for last step in
+ period. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ frequency : [integer]
+ * frequency (integer) save at the specified time step
+ frequency. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ steps : [integer]
+ * steps (integer) save for each step specified in STEPS. This
+ keyword may be used in conjunction with other keywords to
+ print or save results for multiple time steps.
+ printrecord : [rtype, ocsetting]
+ * rtype (string) type of information to save or print. Can only be
+ BUDGET.
+ * ocsetting (keystring) specifies the steps for which the data will be
+ saved.
+ all : [keyword]
+ * all (keyword) keyword to indicate save for all time steps in
+ period.
+ first : [keyword]
+ * first (keyword) keyword to indicate save for first step in
+ period. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ last : [keyword]
+ * last (keyword) keyword to indicate save for last step in
+ period. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ frequency : [integer]
+ * frequency (integer) save at the specified time step
+ frequency. This keyword may be used in conjunction with other
+ keywords to print or save results for multiple time steps.
+ steps : [integer]
+ * steps (integer) save for each step specified in STEPS. This
+ keyword may be used in conjunction with other keywords to
+ print or save results for multiple time steps.
+ filename : String
+ File name for this package.
+ pname : String
+ Package name for this package.
+ parent_file : MFPackage
+ Parent package file that references this package. Only needed for
+ utility packages (mfutl*). For example, mfutllaktab package must have
+ a mfgwflak package parent_file.
+
+ """
+
+ budget_filerecord = ListTemplateGenerator(
+ ("prt6", "oc", "options", "budget_filerecord")
+ )
+ budgetcsv_filerecord = ListTemplateGenerator(
+ ("prt6", "oc", "options", "budgetcsv_filerecord")
+ )
+ track_filerecord = ListTemplateGenerator(
+ ("prt6", "oc", "options", "track_filerecord")
+ )
+ trackcsv_filerecord = ListTemplateGenerator(
+ ("prt6", "oc", "options", "trackcsv_filerecord")
+ )
+ track_timesrecord = ListTemplateGenerator(
+ ("prt6", "oc", "options", "track_timesrecord")
+ )
+ track_timesfilerecord = ListTemplateGenerator(
+ ("prt6", "oc", "options", "track_timesfilerecord")
+ )
+ saverecord = ListTemplateGenerator(("prt6", "oc", "period", "saverecord"))
+ printrecord = ListTemplateGenerator(
+ ("prt6", "oc", "period", "printrecord")
+ )
+ package_abbr = "prtoc"
+ _package_type = "oc"
+ dfn_file_name = "prt-oc.dfn"
+
+ dfn = [
+ [
+ "header",
+ ],
+ [
+ "block options",
+ "name budget_filerecord",
+ "type record budget fileout budgetfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budget",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name fileout",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsv_filerecord",
+ "type record budgetcsv fileout budgetcsvfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name budgetcsv",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name budgetcsvfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name track_filerecord",
+ "type record track fileout trackfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name track",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name trackfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name trackcsv_filerecord",
+ "type record trackcsv fileout trackcsvfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name trackcsv",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name trackcsvfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block options",
+ "name track_release",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name track_exit",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name track_timestep",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name track_terminate",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name track_weaksink",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name track_usertime",
+ "type keyword",
+ "reader urword",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name track_timesrecord",
+ "type record track_times times",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name track_times",
+ "type keyword",
+ "reader urword",
+ "in_record true",
+ "tagged true",
+ "shape",
+ ],
+ [
+ "block options",
+ "name times",
+ "type double precision",
+ "shape (unknown)",
+ "reader urword",
+ "in_record true",
+ "tagged false",
+ "repeating true",
+ ],
+ [
+ "block options",
+ "name track_timesfilerecord",
+ "type record track_timesfile timesfile",
+ "shape",
+ "reader urword",
+ "tagged true",
+ "optional true",
+ ],
+ [
+ "block options",
+ "name track_timesfile",
+ "type keyword",
+ "reader urword",
+ "in_record true",
+ "tagged true",
+ "shape",
+ ],
+ [
+ "block options",
+ "name timesfile",
+ "type string",
+ "preserve_case true",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name iper",
+ "type integer",
+ "block_variable True",
+ "in_record true",
+ "tagged false",
+ "shape",
+ "valid",
+ "reader urword",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name saverecord",
+ "type record save rtype ocsetting",
+ "shape",
+ "reader urword",
+ "tagged false",
+ "optional true",
+ ],
+ [
+ "block period",
+ "name save",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name printrecord",
+ "type record print rtype ocsetting",
+ "shape",
+ "reader urword",
+ "tagged false",
+ "optional true",
+ ],
+ [
+ "block period",
+ "name print",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged true",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name rtype",
+ "type string",
+ "shape",
+ "in_record true",
+ "reader urword",
+ "tagged false",
+ "optional false",
+ ],
+ [
+ "block period",
+ "name ocsetting",
+ "type keystring all first last frequency steps",
+ "shape",
+ "tagged false",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name all",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name first",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name last",
+ "type keyword",
+ "shape",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name frequency",
+ "type integer",
+ "shape",
+ "tagged true",
+ "in_record true",
+ "reader urword",
+ ],
+ [
+ "block period",
+ "name steps",
+ "type integer",
+ "shape ( 0: # do stuff
# need to trap layers...
if pkg_type is None:
@@ -2456,7 +2456,7 @@ def _remap_obs(self, package, mapped_data, remapper, pkg_type=None):
for mkey, model in self._model_dict.items():
idx = np.where(new_model2 == mkey)
tmp_node = new_node2[idx]
- cidx = np.where((tmp_node != None))
+ cidx = np.where((tmp_node is not None))
tmp_cellid = model.modelgrid.get_lrc(
tmp_node[cidx].to_list()
)
@@ -2561,9 +2561,9 @@ def _remap_obs(self, package, mapped_data, remapper, pkg_type=None):
ofile: new_recarray
}
else:
- mapped_data[mkey]["continuous"][
- ofile
- ] = new_recarray
+ mapped_data[mkey]["continuous"][ofile] = (
+ new_recarray
+ )
else:
if "observations" not in mapped_data:
mapped_data["observations"] = {
@@ -2663,7 +2663,7 @@ def _new_node_to_cellid(self, model, new_node, layers, idx):
def _remap_adv_tag(self, mkey, recarray, item, mapper):
"""
- Method to remap advanced package ids such as SFR's ifno varaible
+ Method to remap advanced package ids such as SFR's ifno variable
Parameters
----------
@@ -3310,5 +3310,5 @@ def split_model(self, array):
# todo: development notes:
# Then set up checks for model splitting
-# (ex. doesnt parallel a fault, doesnt cut through a lake,
+# (ex. doesn't parallel a fault, doesn't cut through a lake,
# active cells in modelgrid...)
diff --git a/flopy/mf6/utils/output_util.py b/flopy/mf6/utils/output_util.py
index 5577a23a8..c4f6dfcf9 100644
--- a/flopy/mf6/utils/output_util.py
+++ b/flopy/mf6/utils/output_util.py
@@ -23,7 +23,7 @@ class MF6Output:
"""
- def __init__(self, obj):
+ def __init__(self, obj, budgetkey=None):
from ..modflow import ModflowGwfoc, ModflowGwtoc, ModflowUtlobs
# set initial observation definitions
@@ -39,6 +39,11 @@ def __init__(self, obj):
self._obj = obj
self._methods = []
self._sim_ws = obj.simulation_data.mfpath.get_sim_path()
+ self._budgetkey = (
+ "VOLUME BUDGET FOR ENTIRE MODEL"
+ if budgetkey is None
+ else budgetkey
+ )
self.__budgetcsv = False
if not isinstance(obj, (PackageInterface, ModelInterface)):
@@ -126,11 +131,7 @@ def __init__(self, obj):
[
obj._simulation_data.mfdata[
ky
- ].array[
- 0
- ][
- -2
- ]
+ ].array[0][-2]
]
]
break
@@ -215,7 +216,7 @@ def __repr__(self):
name = name[0]
l = [
f"MF6Output Class for {name}",
- f"Available output methods include:",
+ "Available output methods include:",
]
l += [f".{m}" for m in self.methods()]
s = "\n".join(l)
@@ -295,7 +296,7 @@ def __zonebudget(self, izone):
def __budgetcsv(self):
"""
- Convience method to open and return a budget csv object
+ Convenience method to open and return a budget csv object
Returns
-------
@@ -386,7 +387,7 @@ def __list(self):
if self._lst is not None:
try:
list_file = os.path.join(self._sim_ws, self._lst)
- return Mf6ListBudget(list_file)
+ return Mf6ListBudget(list_file, budgetkey=self._budgetkey)
except (AssertionError, OSError):
return None
diff --git a/flopy/mf6/utils/postprocessing.py b/flopy/mf6/utils/postprocessing.py
index a5b00a9b4..4f219736d 100644
--- a/flopy/mf6/utils/postprocessing.py
+++ b/flopy/mf6/utils/postprocessing.py
@@ -126,7 +126,7 @@ def get_face(m, n, nlay, nrow, ncol):
else:
# handle 2D layers/rows case
return 1 if ncol == 1 else 0
- elif d == nrow * ncol:
+ elif d % (nrow * ncol) == 0:
return 2
else:
return 1
diff --git a/flopy/mf6/utils/testutils.py b/flopy/mf6/utils/testutils.py
index eeb66bf17..11723a1b5 100644
--- a/flopy/mf6/utils/testutils.py
+++ b/flopy/mf6/utils/testutils.py
@@ -67,8 +67,7 @@ def read_gncrecarray(gnc_file, cellid_size=3, cellid_size_2=3):
),
make_int_tuple(
linesp[
- cellid_size
- + cellid_size_2 : cellid_size * 2
+ cellid_size + cellid_size_2 : cellid_size * 2
+ cellid_size_2
]
),
diff --git a/flopy/mfusg/mfusgcln.py b/flopy/mfusg/mfusgcln.py
index 2bfe94cc2..63af3f7f7 100644
--- a/flopy/mfusg/mfusgcln.py
+++ b/flopy/mfusg/mfusgcln.py
@@ -5,7 +5,7 @@
Contains the MfUsgCln class. Note that the user can
access the MfUsgCln class as `flopy.mfusg.MfUsgCln`.
-Compatible with USG-Transport Version 1.7.0. which can be downloade from
+Compatible with USG-Transport Version 1.7.0. which can be download from
https://www.gsi-net.com/en/software/free-software/modflow-usg.html
Additional information for this MODFLOW package can be found at the `Online
@@ -19,6 +19,7 @@
volume finite-difference formulation: U.S. Geological Survey Techniques and
Methods, book 6, chap. A45, 66 p.
"""
+
import numpy as np
from ..pakbase import Package
diff --git a/flopy/mfusg/mfusgdisu.py b/flopy/mfusg/mfusgdisu.py
index 14fad62c1..327b55664 100644
--- a/flopy/mfusg/mfusgdisu.py
+++ b/flopy/mfusg/mfusgdisu.py
@@ -150,7 +150,7 @@ class MfUsgDisU(Package):
expanded if CLN or GNC nodes exist in a simulation.
(default is None. cl1 and cl2 must be specified, or cl12 must be
specified)
- fahl : float or arry of floats
+ fahl : float or array of floats
Area of the interface Anm between nodes n and m.
(default is None. fahl must be specified.)
perlen : float or array of floats (nper)
diff --git a/flopy/mfusg/mfusggnc.py b/flopy/mfusg/mfusggnc.py
index 32be0b7bb..2d12a47e3 100644
--- a/flopy/mfusg/mfusggnc.py
+++ b/flopy/mfusg/mfusggnc.py
@@ -218,7 +218,7 @@ def get_default_dtype(numalphaj, iflalphan):
@staticmethod
def get_empty(numgnc=0, numalphaj=1, iflalphan=0):
- """Returns empty GNC recarray of defualt dtype."""
+ """Returns empty GNC recarray of default dtype."""
# get an empty recarray that corresponds to dtype
dtype = MfUsgGnc.get_default_dtype(numalphaj, iflalphan)
return create_empty_recarray(numgnc, dtype, default_value=-1.0e10)
diff --git a/flopy/mfusg/mfusgsms.py b/flopy/mfusg/mfusgsms.py
index ace15c15e..0866a7ae3 100644
--- a/flopy/mfusg/mfusgsms.py
+++ b/flopy/mfusg/mfusgsms.py
@@ -5,6 +5,7 @@
Contains the MfUsgSms class. Note that the user can access
the MfUsgSms class as `flopy.mfusg.MfUsgSms`.
"""
+
from ..pakbase import Package
from ..utils.flopy_io import line_parse
from .mfusg import MfUsg
diff --git a/flopy/modflow/mfag.py b/flopy/modflow/mfag.py
index ede221485..9c0e5125f 100644
--- a/flopy/modflow/mfag.py
+++ b/flopy/modflow/mfag.py
@@ -699,7 +699,7 @@ def load(cls, f, model, nper=0, ext_unit_dict=None):
f : str
filename
model : gsflow.modflow.Modflow object
- model to attach the ag pacakge to
+ model to attach the ag package to
nper : int
number of stress periods in model
ext_unit_dict : dict, optional
diff --git a/flopy/modflow/mfbas.py b/flopy/modflow/mfbas.py
index 97c846441..bae50fdb5 100644
--- a/flopy/modflow/mfbas.py
+++ b/flopy/modflow/mfbas.py
@@ -167,7 +167,7 @@ def check(self, f=None, verbose=True, level=1, checktype=None):
----------
f : str or file handle
String defining file name or file handle for summary file
- of check method output. If a sting is passed a file handle
+ of check method output. If a string is passed a file handle
is created. If f is None, check method does not write
results to a summary file. (default is None)
verbose : bool
diff --git a/flopy/modflow/mfbcf.py b/flopy/modflow/mfbcf.py
index a7aed46a8..f52b738bf 100644
--- a/flopy/modflow/mfbcf.py
+++ b/flopy/modflow/mfbcf.py
@@ -272,7 +272,7 @@ def write_file(self, f=None):
f_bcf.write(self.trpy.get_file_entry())
transient = not dis.steady.all()
for k in range(nlay):
- if transient == True:
+ if transient:
f_bcf.write(self.sf1[k].get_file_entry())
if (self.laycon[k] == 0) or (self.laycon[k] == 2):
f_bcf.write(self.tran[k].get_file_entry())
@@ -280,9 +280,7 @@ def write_file(self, f=None):
f_bcf.write(self.hy[k].get_file_entry())
if k < nlay - 1:
f_bcf.write(self.vcont[k].get_file_entry())
- if (transient == True) and (
- (self.laycon[k] == 2) or (self.laycon[k] == 3)
- ):
+ if transient and ((self.laycon[k] == 2) or (self.laycon[k] == 3)):
f_bcf.write(self.sf2[k].get_file_entry())
if (self.iwdflg != 0) and (
(self.laycon[k] == 1) or (self.laycon[k] == 3)
diff --git a/flopy/modflow/mfdis.py b/flopy/modflow/mfdis.py
index 541d710df..bd6b9903d 100644
--- a/flopy/modflow/mfdis.py
+++ b/flopy/modflow/mfdis.py
@@ -612,9 +612,7 @@ def write_file(self, check=True):
None
"""
- if (
- check
- ): # allows turning off package checks when writing files at model level
+ if check: # allows turning off package checks when writing files at model level
self.check(
f=f"{self.name[0]}.chk",
verbose=self.parent.verbose,
@@ -667,7 +665,7 @@ def check(self, f=None, verbose=True, level=1, checktype=None):
----------
f : str or file handle
String defining file name or file handle for summary file
- of check method output. If a sting is passed a file handle
+ of check method output. If a string is passed a file handle
is created. If f is None, check method does not write
results to a summary file. (default is None)
verbose : bool
diff --git a/flopy/modflow/mfdrn.py b/flopy/modflow/mfdrn.py
index 7e83553ee..163945734 100644
--- a/flopy/modflow/mfdrn.py
+++ b/flopy/modflow/mfdrn.py
@@ -223,9 +223,7 @@ def write_file(self, check=True):
None
"""
- if (
- check
- ): # allows turning off package checks when writing files at model level
+ if check: # allows turning off package checks when writing files at model level
self.check(
f=f"{self.name[0]}.chk",
verbose=self.parent.verbose,
diff --git a/flopy/modflow/mfdrt.py b/flopy/modflow/mfdrt.py
index f165381a3..c4988afef 100644
--- a/flopy/modflow/mfdrt.py
+++ b/flopy/modflow/mfdrt.py
@@ -215,9 +215,7 @@ def write_file(self, check=True):
None
"""
- if (
- check
- ): # allows turning off package checks when writing files at model level
+ if check: # allows turning off package checks when writing files at model level
self.check(
f=f"{self.name[0]}.chk",
verbose=self.parent.verbose,
diff --git a/flopy/modflow/mffhb.py b/flopy/modflow/mffhb.py
index b29ffadff..2aec2aa09 100644
--- a/flopy/modflow/mffhb.py
+++ b/flopy/modflow/mffhb.py
@@ -237,8 +237,9 @@ def __init__(
# perform some simple verification
if len(self.bdtime) != self.nbdtim:
raise ValueError(
- "bdtime has {} entries but requires "
- "{} entries.".format(len(self.bdtime), self.nbdtim)
+ "bdtime has {} entries but requires " "{} entries.".format(
+ len(self.bdtime), self.nbdtim
+ )
)
if self.nflw > 0:
@@ -249,8 +250,9 @@ def __init__(
if self.ds5.shape[0] != self.nflw:
raise ValueError(
- "dataset 5 has {} rows but requires "
- "{} rows.".format(self.ds5.shape[0], self.nflw)
+ "dataset 5 has {} rows but requires " "{} rows.".format(
+ self.ds5.shape[0], self.nflw
+ )
)
nc = self.nbdtim
if model.structured:
@@ -270,8 +272,9 @@ def __init__(
)
if self.ds7.shape[0] != self.nhed:
raise ValueError(
- "dataset 7 has {} rows but requires "
- "{} rows.".format(self.ds7.shape[0], self.nhed)
+ "dataset 7 has {} rows but requires " "{} rows.".format(
+ self.ds7.shape[0], self.nhed
+ )
)
nc = self.nbdtim
if model.structured:
diff --git a/flopy/modflow/mfghb.py b/flopy/modflow/mfghb.py
index 4ba6d2935..33b9e99fd 100644
--- a/flopy/modflow/mfghb.py
+++ b/flopy/modflow/mfghb.py
@@ -179,9 +179,7 @@ def write_file(self, check=True):
None
"""
- if (
- check
- ): # allows turning off package checks when writing files at model level
+ if check: # allows turning off package checks when writing files at model level
self.check(
f=f"{self.name[0]}.chk",
verbose=self.parent.verbose,
diff --git a/flopy/modflow/mflak.py b/flopy/modflow/mflak.py
index cde1952d7..1491119e7 100644
--- a/flopy/modflow/mflak.py
+++ b/flopy/modflow/mflak.py
@@ -376,8 +376,9 @@ def __init__(
if self.dis.steady[0]:
if stage_range.shape != (nlakes, 2):
raise Exception(
- "stages shape should be ({},2) but is only "
- "{}.".format(nlakes, stage_range.shape)
+ "stages shape should be ({},2) but is only " "{}.".format(
+ nlakes, stage_range.shape
+ )
)
self.stage_range = stage_range
diff --git a/flopy/modflow/mflpf.py b/flopy/modflow/mflpf.py
index 397f7f79f..0b192bcd7 100644
--- a/flopy/modflow/mflpf.py
+++ b/flopy/modflow/mflpf.py
@@ -371,7 +371,7 @@ def write_file(self, check=True, f=None):
f.write(f"{self.heading}\n")
# Item 1: IBCFCB, HDRY, NPLPF, , OPTIONS
- if self.parent.version == "mfusg" and self.parent.structured == False:
+ if self.parent.version == "mfusg" and not self.parent.structured:
f.write(
"{:10d}{:10.6G}{:10d}{:10d} {:s}\n".format(
self.ipakcb,
@@ -405,7 +405,7 @@ def write_file(self, check=True, f=None):
if self.chani[k] <= 0.0:
f.write(self.hani[k].get_file_entry())
f.write(self.vka[k].get_file_entry())
- if transient == True:
+ if transient:
f.write(self.ss[k].get_file_entry())
if self.laytyp[k] != 0:
f.write(self.sy[k].get_file_entry())
@@ -477,7 +477,7 @@ def load(cls, f, model, ext_unit_dict=None, check=True):
t = line_parse(line)
ipakcb, hdry, nplpf = int(t[0]), float(t[1]), int(t[2])
item1_len = 3
- if model.version == "mfusg" and model.structured == False:
+ if model.version == "mfusg" and not model.structured:
ikcflag = int(t[3])
item1_len = 4
# if ipakcb != 0:
diff --git a/flopy/modflow/mfmnw2.py b/flopy/modflow/mfmnw2.py
index 2df647871..f77859123 100644
--- a/flopy/modflow/mfmnw2.py
+++ b/flopy/modflow/mfmnw2.py
@@ -1075,6 +1075,12 @@ def __init__(
dtype=self.get_default_spd_dtype(structured=self.structured),
)
if stress_period_data is not None:
+ stress_period_data = {
+ per: sp.to_records(index=False)
+ if isinstance(sp, pd.DataFrame)
+ else sp
+ for per, sp in stress_period_data.items()
+ }
for per, data in stress_period_data.items():
spd = ModflowMnw2.get_empty_stress_period_data(
len(data), aux_names=aux
@@ -1352,9 +1358,7 @@ def load(cls, f, model, nper=None, gwt=False, nsol=1, ext_unit_dict=None):
np.recarray
)
- stress_period_data = (
- {}
- ) # stress period data table for package (flopy convention)
+ stress_period_data = {} # stress period data table for package (flopy convention)
itmp = []
for per in range(0, nper):
# dataset 3
diff --git a/flopy/modflow/mfoc.py b/flopy/modflow/mfoc.py
index 820fd729d..5a71c3e62 100644
--- a/flopy/modflow/mfoc.py
+++ b/flopy/modflow/mfoc.py
@@ -492,7 +492,7 @@ def get_budgetunit(self):
Returns
-------
- iubud : integer ot list of integers
+ iubud : integer or list of integers
Unit number or list of cell-by-cell budget output unit numbers.
None is returned if ipakcb is less than one for all packages.
@@ -817,7 +817,7 @@ def load(
# process each line
lines = []
- if numericformat == True:
+ if numericformat:
for iperoc in range(nper):
for itsoc in range(nstp[iperoc]):
line = f.readline()
@@ -978,7 +978,7 @@ def load(
else:
if itsoc != itsoc1:
iempty = True
- if iempty == True:
+ if iempty:
kperkstp = (iperoc1 - 1, itsoc1 - 1)
stress_period_data[kperkstp] = []
# dataset 3
@@ -1004,7 +1004,7 @@ def load(
else:
if itsoc != itsoc1:
iempty = True
- if iempty == True:
+ if iempty:
kperkstp = (iperoc1 - 1, itsoc1 - 1)
stress_period_data[kperkstp] = []
diff --git a/flopy/modflow/mfpar.py b/flopy/modflow/mfpar.py
index d866977b0..0b61758ec 100644
--- a/flopy/modflow/mfpar.py
+++ b/flopy/modflow/mfpar.py
@@ -306,7 +306,7 @@ def parameter_fill(model, shape, findkey, parm_dict, findlayer=None):
for [layer, mltarr, zonarr, izones] in clusters:
# print layer, mltarr, zonarr, izones
foundlayer = False
- if findlayer == None:
+ if findlayer is None:
foundlayer = True
else:
if layer == (findlayer + 1):
diff --git a/flopy/modflow/mfpks.py b/flopy/modflow/mfpks.py
index 905c33e65..566898ff3 100644
--- a/flopy/modflow/mfpks.py
+++ b/flopy/modflow/mfpks.py
@@ -183,7 +183,7 @@ def write_file(self):
f.write(f"DROPTOL {self.droptol}\n")
f.write(f"HCLOSEPKS {self.hclose}\n")
f.write(f"RCLOSEPKS {self.rclose}\n")
- if self.l2norm != None:
+ if self.l2norm is not None:
if self.l2norm.lower() == "l2norm" or self.l2norm == "1":
f.write("L2NORM\n")
elif self.l2norm.lower() == "rl2norm" or self.l2norm == "2":
diff --git a/flopy/modflow/mfrch.py b/flopy/modflow/mfrch.py
index 2e1ad8dec..4803dcfdc 100644
--- a/flopy/modflow/mfrch.py
+++ b/flopy/modflow/mfrch.py
@@ -157,7 +157,7 @@ def check(
----------
f : str or file handle
String defining file name or file handle for summary file
- of check method output. If a sting is passed a file handle
+ of check method output. If a string is passed a file handle
is created. If f is None, check method does not write
results to a summary file. (default is None)
verbose : bool
diff --git a/flopy/modflow/mfriv.py b/flopy/modflow/mfriv.py
index 7ab580000..63e0ee155 100644
--- a/flopy/modflow/mfriv.py
+++ b/flopy/modflow/mfriv.py
@@ -9,6 +9,7 @@
"""
import numpy as np
+import pandas as pd
from ..pakbase import Package
from ..utils import MfList
@@ -194,9 +195,11 @@ def check(self, f=None, verbose=True, level=1, checktype=None):
chk = self._get_check(f, verbose, level, checktype)
chk.summary_array = basechk.summary_array
- for per in self.stress_period_data.data.keys():
- if isinstance(self.stress_period_data.data[per], np.recarray):
- spd = self.stress_period_data.data[per]
+ for per, data in self.stress_period_data.data.items():
+ if isinstance(data, (np.recarray, pd.DataFrame)):
+ if isinstance(data, pd.DataFrame):
+ data = data.to_records(index=False).astype(self.dtype)
+ spd = data
inds = (
(spd.k, spd.i, spd.j)
if self.parent.structured
diff --git a/flopy/modflow/mfsfr2.py b/flopy/modflow/mfsfr2.py
index fad587b07..68c5bffa9 100644
--- a/flopy/modflow/mfsfr2.py
+++ b/flopy/modflow/mfsfr2.py
@@ -844,7 +844,7 @@ def load(cls, f, model, nper=None, gwt=False, nsol=1, ext_unit_dict=None):
options.maxval = int(t[2])
line = f.readline()
- # set varibles to be passed to class args
+ # set variables to be passed to class args
transroute = options.transroute
reachinput = options.reachinput
tabfiles = isinstance(options.tabfiles, np.ndarray)
@@ -905,9 +905,7 @@ def load(cls, f, model, nper=None, gwt=False, nsol=1, ext_unit_dict=None):
channel_geometry_data = {}
channel_flow_data = {}
dataset_5 = {}
- aux_variables = (
- {}
- ) # not sure where the auxiliary variables are supposed to go
+ aux_variables = {} # not sure where the auxiliary variables are supposed to go
for i in range(0, nper):
# Dataset 5
dataset_5[i] = _get_dataset(f.readline(), [-1, 0, 0, 0])
@@ -2346,7 +2344,7 @@ def for_nans(self):
isnan = np.any(np.isnan(np.array(self.reach_data.tolist())), axis=1)
nanreaches = self.reach_data[isnan]
if np.any(isnan):
- txt += f"Found {len(nanreaches)} reachs with nans:\n"
+ txt += f"Found {len(nanreaches)} reaches with nans:\n"
if self.level == 1:
txt += _print_rec_array(nanreaches, delimiter=" ")
for per, sd in self.segment_data.items():
diff --git a/flopy/modflow/mfswi2.py b/flopy/modflow/mfswi2.py
index dfe4de9f9..4e4672458 100644
--- a/flopy/modflow/mfswi2.py
+++ b/flopy/modflow/mfswi2.py
@@ -419,7 +419,7 @@ def write_file(self, check=True, f=None):
)
# write SWI2 options
- if self.options != None:
+ if self.options is not None:
for o in self.options:
f.write(f" {o}")
f.write("\n")
diff --git a/flopy/modflow/mfwel.py b/flopy/modflow/mfwel.py
index e1326721c..b6532331e 100644
--- a/flopy/modflow/mfwel.py
+++ b/flopy/modflow/mfwel.py
@@ -222,8 +222,8 @@ def __init__(
options.append(f"aux {name} ")
if isinstance(self.options, OptionBlock):
- if not self.options.auxillary:
- self.options.auxillary = options
+ if not self.options.auxiliary:
+ self.options.auxiliary = options
else:
self.options = options
@@ -282,9 +282,9 @@ def write_file(self, f=None):
if isinstance(self.options, OptionBlock):
if self.options.noprint:
line += "NOPRINT "
- if self.options.auxillary:
+ if self.options.auxiliary:
line += " ".join(
- [str(aux).upper() for aux in self.options.auxillary]
+ [str(aux).upper() for aux in self.options.auxiliary]
)
else:
diff --git a/flopy/modpath/mp6.py b/flopy/modpath/mp6.py
index 389a3d89d..fe4c96868 100644
--- a/flopy/modpath/mp6.py
+++ b/flopy/modpath/mp6.py
@@ -202,7 +202,7 @@ def next_ext_unit(self):
return self.__next_ext_unit
def getsim(self):
- if self.__sim == None:
+ if self.__sim is None:
for p in self.packagelist:
if isinstance(p, Modpath6Sim):
self.__sim = p
diff --git a/flopy/modpath/mp6bas.py b/flopy/modpath/mp6bas.py
index e15f7192d..7e9333f11 100644
--- a/flopy/modpath/mp6bas.py
+++ b/flopy/modpath/mp6bas.py
@@ -189,7 +189,7 @@ def _create_ltype(self, laytyp):
# run though flow packages
flow_package = self.parent.getmf().get_package("BCF6")
- if flow_package != None:
+ if flow_package is not None:
lc = Util2d(
self.parent,
(nlay,),
@@ -201,7 +201,7 @@ def _create_ltype(self, laytyp):
have_layertype = True
flow_package = self.parent.getmf().get_package("LPF")
- if flow_package != None and not have_layertype:
+ if flow_package is not None and not have_layertype:
lc = Util2d(
self.parent,
(nlay,),
@@ -212,7 +212,7 @@ def _create_ltype(self, laytyp):
)
have_layertype = True
flow_package = self.parent.getmf().get_package("UPW")
- if flow_package != None and have_layertype:
+ if flow_package is not None and have_layertype:
lc = Util2d(
self.parent,
(nlay,),
diff --git a/flopy/modpath/mp6sim.py b/flopy/modpath/mp6sim.py
index 8fc9c817d..f2f9ea6ac 100644
--- a/flopy/modpath/mp6sim.py
+++ b/flopy/modpath/mp6sim.py
@@ -171,7 +171,7 @@ def check(self, f=None, verbose=True, level=1, checktype=None):
----------
f : str or file handle
String defining file name or file handle for summary file
- of check method output. If a sting is passed a file handle
+ of check method output. If a string is passed a file handle
is created. If f is None, check method does not write
results to a summary file. (default is None)
verbose : bool
diff --git a/flopy/modpath/mp7particledata.py b/flopy/modpath/mp7particledata.py
index e388a128b..f90521939 100644
--- a/flopy/modpath/mp7particledata.py
+++ b/flopy/modpath/mp7particledata.py
@@ -1,12 +1,13 @@
"""
-mp7particledata module. Contains the ParticleData, CellDataType,
- FaceDataType, and NodeParticleData classes.
+Support for MODPATH 7 particle release configurations. Contains the
+ParticleData, CellDataType, FaceDataType, and NodeParticleData classes.
"""
+from collections import namedtuple
from itertools import product
-from typing import Generator, Iterator, Tuple
+from typing import Iterator, Tuple
import numpy as np
import pandas as pd
@@ -15,6 +16,17 @@
from ..utils.recarray_utils import create_empty_recarray
+def reversed_product(*iterables, repeat=1):
+ """
+ Like `itertools.product()`, but left-most elements advance first.
+
+ Adapted from https://stackoverflow.com/a/32998481/6514033.
+ """
+
+ for t in product(*reversed(iterables), repeat=repeat):
+ yield tuple(reversed(t))
+
+
class ParticleData:
"""
Class to create the most basic particle data type (starting location
@@ -328,7 +340,7 @@ def __init__(
def write(self, f=None):
"""
- Write the particle data to disk.
+ Write the particle data template to a file.
Parameters
----------
@@ -363,13 +375,16 @@ def write(self, f=None):
for v in d:
f.write(fmt.format(*v))
- def to_coords(self, grid) -> Iterator[tuple]:
+ def to_coords(self, grid, localz=False) -> Iterator[tuple]:
"""
- Compute global particle coordinates on the given grid.
+ Compute particle coordinates on the given grid.
Parameters
----------
- grid : The grid on which to locate particle release points.
+ grid : flopy.discretization.grid.Grid
+ The grid on which to locate particle release points.
+ localz : bool, optional
+ Whether to return local z coordinates.
Returns
-------
@@ -384,7 +399,7 @@ def cvt_xy(p, vs):
if grid.grid_type == "structured":
if not hasattr(self.particledata, "k"):
raise ValueError(
- f"Particle representation is not structured but grid is"
+ "Particle representation is not structured but grid is"
)
def cvt_z(p, k, i, j):
@@ -401,13 +416,15 @@ def convert(row) -> Tuple[float, float, float]:
return [
cvt_xy(row.localx, xs),
cvt_xy(row.localy, ys),
- cvt_z(row.localz, row.k, row.i, row.j),
+ row.localz
+ if localz
+ else cvt_z(row.localz, row.k, row.i, row.j),
]
else:
if hasattr(self.particledata, "k"):
raise ValueError(
- f"Particle representation is structured but grid is not"
+ "Particle representation is structured but grid is not"
)
def cvt_z(p, nn):
@@ -425,13 +442,13 @@ def convert(row) -> Tuple[float, float, float]:
return [
cvt_xy(row.localx, xs),
cvt_xy(row.localy, ys),
- cvt_z(row.localz, row.node),
+ row.localz if localz else cvt_z(row.localz, row.node),
]
for t in self.particledata.itertuples():
yield convert(t)
- def to_prp(self, grid) -> Iterator[tuple]:
+ def to_prp(self, grid, localz=False) -> Iterator[tuple]:
"""
Convert particle data to PRT particle release point (PRP)
package data entries for the given grid. A model grid is
@@ -441,7 +458,10 @@ def to_prp(self, grid) -> Iterator[tuple]:
Parameters
----------
- grid : The grid on which to locate particle release points.
+ grid : flopy.discretization.grid.Grid
+ The grid on which to locate particle release points.
+ localz : bool, optional
+ Whether to return local z coordinates.
Returns
-------
@@ -454,7 +474,7 @@ def to_prp(self, grid) -> Iterator[tuple]:
for i, (t, c) in enumerate(
zip(
self.particledata.itertuples(index=False),
- self.to_coords(grid),
+ self.to_coords(grid, localz),
)
):
row = [i] # release point index (irpt)
@@ -687,8 +707,6 @@ def write(self, f=None):
)
f.write(line)
- return
-
class CellDataType:
"""
@@ -745,15 +763,13 @@ def __init__(
def write(self, f=None):
"""
+ Write the cell data template to a file.
Parameters
----------
f : fileobject
Fileobject that is open with write access
- Returns
- -------
-
"""
# validate that a valid file object was passed
if not hasattr(f, "write"):
@@ -773,19 +789,27 @@ def write(self, f=None):
f.write(line)
-def get_release_points(subdivisiondata, grid, k=None, i=None, j=None, nn=None):
- if nn is None and (k is None or i is None or j is None):
- raise ValueError(
- f"A cell (node) must be specified by indices (for structured grids) or node number (for vertex/unstructured)"
- )
+Extent = namedtuple(
+ "Extent",
+ [
+ "minx",
+ "maxx",
+ "miny",
+ "maxy",
+ "minz",
+ "maxz",
+ "xspan",
+ "yspan",
+ "zspan",
+ ],
+)
- rpts = []
- template = [k, i, j] if nn is None else [nn]
+def get_extent(grid, k=None, i=None, j=None, nn=None, localz=False) -> Extent:
# get cell coords and span in each dimension
if not (k is None or i is None or j is None):
verts = grid.get_cell_vertices(i, j)
- minz, maxz = grid.botm[k, i, j], grid.top[i, j]
+ minz, maxz = (0, 1) if localz else (grid.botm[k, i, j], grid.top[i, j])
elif nn is not None:
verts = grid.get_cell_vertices(nn)
if grid.grid_type == "structured":
@@ -797,12 +821,16 @@ def get_release_points(subdivisiondata, grid, k=None, i=None, j=None, nn=None):
else:
k, j = grid.get_lni([nn])[0]
minz, maxz = (
- grid.botm[k, j],
- grid.top[j] if k == 0 else grid.botm[k - 1, j],
+ (0, 1)
+ if localz
+ else (
+ grid.botm[k, j],
+ grid.top[j] if k == 0 else grid.botm[k - 1, j],
+ )
)
else:
raise ValueError(
- f"A cell (node) must be specified by indices (for structured grids) or node number (for vertex/unstructured)"
+ "A cell (node) must be specified by indices (for structured grids) or node number (for vertex/unstructured)"
)
xs, ys = list(zip(*verts))
minx, maxx = min(xs), max(xs)
@@ -810,140 +838,187 @@ def get_release_points(subdivisiondata, grid, k=None, i=None, j=None, nn=None):
xspan = maxx - minx
yspan = maxy - miny
zspan = maxz - minz
+ return Extent(minx, maxx, miny, maxy, minz, maxz, xspan, yspan, zspan)
- if isinstance(subdivisiondata, FaceDataType):
- # x1 (west)
- if (
- subdivisiondata.verticaldivisions1 > 0
- and subdivisiondata.horizontaldivisions1 > 0
- ):
- yincr = yspan / subdivisiondata.horizontaldivisions1
- ylocs = [
- (miny + (yincr * 0.5) + (yincr * d))
- for d in range(subdivisiondata.horizontaldivisions1)
- ]
- zincr = zspan / subdivisiondata.verticaldivisions1
- zlocs = [
- (minz + (zincr * 0.5) + (zincr * d))
- for d in range(subdivisiondata.verticaldivisions1)
- ]
- prod = list(product(*[ylocs, zlocs]))
- rpts = rpts + [template + [minx, p[0], p[1]] for p in prod]
- # x2 (east)
- if (
- subdivisiondata.verticaldivisions2 > 0
- and subdivisiondata.horizontaldivisions2 > 0
- ):
- yincr = yspan / subdivisiondata.horizontaldivisions2
- ylocs = [
- (miny + (yincr * 0.5) + (yincr * d))
- for d in range(subdivisiondata.horizontaldivisions2)
- ]
- zincr = zspan / subdivisiondata.verticaldivisions2
- zlocs = [
- (minz + (zincr * 0.5) + (zincr * d))
- for d in range(subdivisiondata.verticaldivisions2)
- ]
- prod = list(product(*[ylocs, zlocs]))
- rpts = rpts + [template + [maxx, p[0], p[1]] for p in prod]
+def get_face_release_points(
+ subdivisiondata, cellid, extent
+) -> Iterator[tuple]:
+ """
+ Get release points for MODPATH 7 input style 2, template
+ subdivision style 1, i.e. face (2D) subdivision, for the
+ given cell with the given extent.
+ """
- # y1 (south)
- if (
- subdivisiondata.verticaldivisions3 > 0
- and subdivisiondata.horizontaldivisions3 > 0
- ):
- xincr = xspan / subdivisiondata.horizontaldivisions3
- xlocs = [
- (minx + (xincr * 0.5) + (xincr * rd))
- for rd in range(subdivisiondata.horizontaldivisions3)
- ]
- zincr = zspan / subdivisiondata.verticaldivisions3
- zlocs = [
- (minz + (zincr * 0.5) + (zincr * d))
- for d in range(subdivisiondata.verticaldivisions3)
- ]
- prod = list(product(*[xlocs, zlocs]))
- rpts = rpts + [template + [p[0], miny, p[1]] for p in prod]
+ # Product incrementing left elements first, to
+ # match the release point ordering used by MP7
+ product = reversed_product
- # y2 (north)
- if (
- subdivisiondata.verticaldivisions4 > 0
- and subdivisiondata.horizontaldivisions4 > 0
- ):
- xincr = xspan / subdivisiondata.horizontaldivisions4
- xlocs = [
- (minx + (xincr * 0.5) + (xincr * rd))
- for rd in range(subdivisiondata.horizontaldivisions4)
- ]
- zincr = zspan / subdivisiondata.verticaldivisions4
- zlocs = [
- (minz + (zincr * 0.5) + (zincr * d))
- for d in range(subdivisiondata.verticaldivisions4)
- ]
- prod = list(product(*[xlocs, zlocs]))
- rpts = rpts + [template + [p[0], maxy, p[1]] for p in prod]
+ # x1 (west)
+ if (
+ subdivisiondata.verticaldivisions1 > 0
+ and subdivisiondata.horizontaldivisions1 > 0
+ ):
+ yincr = extent.yspan / subdivisiondata.horizontaldivisions1
+ ylocs = [
+ (extent.miny + (yincr * 0.5) + (yincr * d))
+ for d in range(subdivisiondata.horizontaldivisions1)
+ ]
+ zincr = extent.zspan / subdivisiondata.verticaldivisions1
+ zlocs = [
+ (extent.minz + (zincr * 0.5) + (zincr * d))
+ for d in range(subdivisiondata.verticaldivisions1)
+ ]
+ for p in product(*[ylocs, zlocs]):
+ yield cellid + [extent.minx, p[0], p[1]]
- # z1 (bottom)
- if (
- subdivisiondata.rowdivisions5 > 0
- and subdivisiondata.columndivisions5 > 0
- ):
- xincr = xspan / subdivisiondata.columndivisions5
- xlocs = [
- (minx + (xincr * 0.5) + (xincr * rd))
- for rd in range(subdivisiondata.columndivisions5)
- ]
- yincr = yspan / subdivisiondata.rowdivisions5
- ylocs = [
- (miny + (yincr * 0.5) + (yincr * rd))
- for rd in range(subdivisiondata.rowdivisions5)
- ]
- prod = list(product(*[xlocs, ylocs]))
- rpts = rpts + [template + [p[0], p[1], minz] for p in prod]
+ # x2 (east)
+ if (
+ subdivisiondata.verticaldivisions2 > 0
+ and subdivisiondata.horizontaldivisions2 > 0
+ ):
+ yincr = extent.yspan / subdivisiondata.horizontaldivisions2
+ ylocs = [
+ (extent.miny + (yincr * 0.5) + (yincr * d))
+ for d in range(subdivisiondata.horizontaldivisions2)
+ ]
+ zincr = extent.zspan / subdivisiondata.verticaldivisions2
+ zlocs = [
+ (extent.minz + (zincr * 0.5) + (zincr * d))
+ for d in range(subdivisiondata.verticaldivisions2)
+ ]
+ for p in product(*[ylocs, zlocs]):
+ yield cellid + [extent.maxx, p[0], p[1]]
- # z2 (top)
- if (
- subdivisiondata.rowdivisions6 > 0
- and subdivisiondata.columndivisions6 > 0
- ):
- xincr = xspan / subdivisiondata.columndivisions6
- xlocs = [
- (minx + (xincr * 0.5) + (xincr * rd))
- for rd in range(subdivisiondata.columndivisions6)
- ]
- yincr = yspan / subdivisiondata.rowdivisions6
- ylocs = [
- (miny + (yincr * 0.5) + (yincr * rd))
- for rd in range(subdivisiondata.rowdivisions6)
- ]
- prod = list(product(*[xlocs, ylocs]))
- rpts = rpts + [template + [p[0], p[1], maxz] for p in prod]
- elif isinstance(subdivisiondata, CellDataType):
- xincr = xspan / subdivisiondata.columncelldivisions
+ # y1 (south)
+ if (
+ subdivisiondata.verticaldivisions3 > 0
+ and subdivisiondata.horizontaldivisions3 > 0
+ ):
+ xincr = extent.xspan / subdivisiondata.horizontaldivisions3
xlocs = [
- (minx + (xincr * 0.5) + (xincr * rd))
- for rd in range(subdivisiondata.columncelldivisions)
+ (extent.minx + (xincr * 0.5) + (xincr * rd))
+ for rd in range(subdivisiondata.horizontaldivisions3)
]
- yincr = yspan / subdivisiondata.rowcelldivisions
- ylocs = [
- (miny + (yincr * 0.5) + (yincr * d))
- for d in range(subdivisiondata.rowcelldivisions)
+ zincr = extent.zspan / subdivisiondata.verticaldivisions3
+ zlocs = [
+ (extent.minz + (zincr * 0.5) + (zincr * d))
+ for d in range(subdivisiondata.verticaldivisions3)
]
- zincr = zspan / subdivisiondata.layercelldivisions
+ for p in product(*[xlocs, zlocs]):
+ yield cellid + [p[0], extent.miny, p[1]]
+
+ # y2 (north)
+ if (
+ subdivisiondata.verticaldivisions4 > 0
+ and subdivisiondata.horizontaldivisions4 > 0
+ ):
+ xincr = extent.xspan / subdivisiondata.horizontaldivisions4
+ xlocs = [
+ (extent.minx + (xincr * 0.5) + (xincr * rd))
+ for rd in range(subdivisiondata.horizontaldivisions4)
+ ]
+ zincr = extent.zspan / subdivisiondata.verticaldivisions4
zlocs = [
- (minz + (zincr * 0.5) + (zincr * d))
- for d in range(subdivisiondata.layercelldivisions)
+ (extent.minz + (zincr * 0.5) + (zincr * d))
+ for d in range(subdivisiondata.verticaldivisions4)
]
- prod = list(product(*[xlocs, ylocs, zlocs]))
- rpts = rpts + [template + [p[0], p[1], p[2]] for p in prod]
+ for p in product(*[xlocs, zlocs]):
+ yield cellid + [p[0], extent.maxy, p[1]]
+
+ # z1 (bottom)
+ if (
+ subdivisiondata.rowdivisions5 > 0
+ and subdivisiondata.columndivisions5 > 0
+ ):
+ xincr = extent.xspan / subdivisiondata.columndivisions5
+ xlocs = [
+ (extent.minx + (xincr * 0.5) + (xincr * rd))
+ for rd in range(subdivisiondata.columndivisions5)
+ ]
+ yincr = extent.yspan / subdivisiondata.rowdivisions5
+ ylocs = [
+ (extent.miny + (yincr * 0.5) + (yincr * rd))
+ for rd in range(subdivisiondata.rowdivisions5)
+ ]
+ for p in product(*[xlocs, ylocs]):
+ yield cellid + [p[0], p[1], extent.minz]
+
+ # z2 (top)
+ if (
+ subdivisiondata.rowdivisions6 > 0
+ and subdivisiondata.columndivisions6 > 0
+ ):
+ xincr = extent.xspan / subdivisiondata.columndivisions6
+ xlocs = [
+ (extent.minx + (xincr * 0.5) + (xincr * rd))
+ for rd in range(subdivisiondata.columndivisions6)
+ ]
+ yincr = extent.yspan / subdivisiondata.rowdivisions6
+ ylocs = [
+ (extent.miny + (yincr * 0.5) + (yincr * rd))
+ for rd in range(subdivisiondata.rowdivisions6)
+ ]
+ for p in product(*[xlocs, ylocs]):
+ yield cellid + [p[0], p[1], extent.maxz]
+
+
+def get_cell_release_points(
+ subdivisiondata, cellid, extent
+) -> Iterator[tuple]:
+ """
+ Get release points for MODPATH 7 input style 2, template
+ subdivision type 2, i.e. cell (3D) subdivision, for the
+ given cell with the given extent.
+ """
+
+ # Product incrementing left elements first, to
+ # match the release point ordering used by MP7
+ product = reversed_product
+
+ xincr = extent.xspan / subdivisiondata.columncelldivisions
+ xlocs = [
+ (extent.minx + (xincr * 0.5) + (xincr * rd))
+ for rd in range(subdivisiondata.columncelldivisions)
+ ]
+ yincr = extent.yspan / subdivisiondata.rowcelldivisions
+ ylocs = [
+ (extent.miny + (yincr * 0.5) + (yincr * d))
+ for d in range(subdivisiondata.rowcelldivisions)
+ ]
+ zincr = extent.zspan / subdivisiondata.layercelldivisions
+ zlocs = [
+ (extent.minz + (zincr * 0.5) + (zincr * d))
+ for d in range(subdivisiondata.layercelldivisions)
+ ]
+ for p in product(*[xlocs, ylocs, zlocs]):
+ yield cellid + [p[0], p[1], p[2]]
+
+
+def get_release_points(
+ subdivisiondata, grid, k=None, i=None, j=None, nn=None, localz=False
+) -> Iterator[tuple]:
+ """
+ Get MODPATH 7 release point tuples for the given cell.
+ """
+
+ if nn is None and (k is None or i is None or j is None):
+ raise ValueError(
+ "A cell (node) must be specified by indices (for structured grids) or node number (for vertex/unstructured)"
+ )
+
+ cellid = [k, i, j] if nn is None else [nn]
+ extent = get_extent(grid, k, i, j, nn, localz)
+
+ if isinstance(subdivisiondata, FaceDataType):
+ return get_face_release_points(subdivisiondata, cellid, extent)
+ elif isinstance(subdivisiondata, CellDataType):
+ return get_cell_release_points(subdivisiondata, cellid, extent)
else:
raise ValueError(
f"Unsupported subdivision data type: {type(subdivisiondata)}"
)
- return rpts
-
class LRCParticleData:
"""
@@ -979,7 +1054,7 @@ def __init__(self, subdivisiondata=None, lrcregions=None):
subdivisiondata = CellDataType()
if lrcregions is None:
- lrcregions = [[0, 0, 0, 0, 0, 0]]
+ lrcregions = [[[0, 0, 0, 0, 0, 0]]]
if isinstance(subdivisiondata, (CellDataType, FaceDataType)):
subdivisiondata = [subdivisiondata]
@@ -1035,7 +1110,6 @@ def __init__(self, subdivisiondata=None, lrcregions=None):
"{} columns".format(self.name, shapel[1])
)
- #
totalcellregioncount = 0
for lrcregion in lrcregions:
totalcellregioncount += lrcregion.shape[0]
@@ -1048,15 +1122,13 @@ def __init__(self, subdivisiondata=None, lrcregions=None):
def write(self, f=None):
"""
+ Write the layer-row-column particle data template to a file.
Parameters
----------
f : fileobject
Fileobject that is open with write access
- Returns
- -------
-
"""
# validate that a valid file object was passed
if not hasattr(f, "write"):
@@ -1086,13 +1158,16 @@ def write(self, f=None):
line += "\n"
f.write(line)
- def to_coords(self, grid) -> Iterator[tuple]:
+ def to_coords(self, grid, localz=False) -> Iterator[tuple]:
"""
Compute global particle coordinates on the given grid.
Parameters
----------
- grid : The grid on which to locate particle release points.
+ grid : flopy.discretization.grid.Grid
+ The grid on which to locate particle release points.
+ localz : bool, optional
+ Whether to return local z coordinates.
Returns
-------
@@ -1107,11 +1182,11 @@ def to_coords(self, grid) -> Iterator[tuple]:
for j in range(minj, maxj + 1):
for sd in self.subdivisiondata:
for rpt in get_release_points(
- sd, grid, k, i, j
+ sd, grid, k, i, j, localz=localz
):
- yield (rpt[3], rpt[4], rpt[5])
+ yield (*rpt[3:6],)
- def to_prp(self, grid) -> Iterator[tuple]:
+ def to_prp(self, grid, localz=False) -> Iterator[tuple]:
"""
Convert particle data to PRT particle release point (PRP)
package data entries for the given grid. A model grid is
@@ -1121,7 +1196,10 @@ def to_prp(self, grid) -> Iterator[tuple]:
Parameters
----------
- grid : The grid on which to locate particle release points.
+ grid : flopy.discretization.grid.Grid
+ The grid on which to locate particle release points.
+ localz : bool, optional
+ Whether to return local z coordinates.
Returns
-------
@@ -1131,7 +1209,7 @@ def to_prp(self, grid) -> Iterator[tuple]:
if grid.grid_type != "structured":
raise ValueError(
- f"Particle representation is structured but grid is not"
+ "Particle representation is structured but grid is not"
)
irpt_offset = 0
@@ -1143,7 +1221,9 @@ def to_prp(self, grid) -> Iterator[tuple]:
for j in range(minj, maxj + 1):
for sd in self.subdivisiondata:
for irpt, rpt in enumerate(
- get_release_points(sd, grid, k, i, j)
+ get_release_points(
+ sd, grid, k, i, j, localz=localz
+ )
):
assert rpt[0] == k
assert rpt[1] == i
@@ -1272,15 +1352,13 @@ def __init__(self, subdivisiondata=None, nodes=None):
def write(self, f=None):
"""
+ Write the node particle data template to a file.
Parameters
----------
f : fileobject
Fileobject that is open with write access
- Returns
- -------
-
"""
# validate that a valid file object was passed
if not hasattr(f, "write"):
@@ -1314,13 +1392,16 @@ def write(self, f=None):
line += "\n"
f.write(line)
- def to_coords(self, grid) -> Iterator[tuple]:
+ def to_coords(self, grid, localz=False) -> Iterator[tuple]:
"""
Compute global particle coordinates on the given grid.
Parameters
----------
- grid : The grid on which to locate particle release points.
+ grid : flopy.discretization.grid.Grid
+ The grid on which to locate particle release points.
+ localz : bool, optional
+ Whether to return local z coordinates.
Returns
-------
@@ -1329,11 +1410,12 @@ def to_coords(self, grid) -> Iterator[tuple]:
for sd in self.subdivisiondata:
for nd in self.nodedata:
- rpts = get_release_points(sd, grid, nn=int(nd[0]))
- for i, rpt in enumerate(rpts):
- yield (rpt[1], rpt[2], rpt[3])
+ for rpt in get_release_points(
+ sd, grid, nn=int(nd[0]), localz=localz
+ ):
+ yield (*rpt[1:4],)
- def to_prp(self, grid) -> Iterator[tuple]:
+ def to_prp(self, grid, localz=False) -> Iterator[tuple]:
"""
Convert particle data to PRT particle release point (PRP)
package data entries for the given grid. A model grid is
@@ -1343,7 +1425,10 @@ def to_prp(self, grid) -> Iterator[tuple]:
Parameters
----------
- grid : The grid on which to locate particle release points.
+ grid : flopy.discretization.grid.Grid
+ The grid on which to locate particle release points.
+ localz : bool, optional
+ Whether to return local z coordinates.
Returns
-------
@@ -1353,8 +1438,9 @@ def to_prp(self, grid) -> Iterator[tuple]:
for sd in self.subdivisiondata:
for nd in self.nodedata:
- rpts = get_release_points(sd, grid, nn=int(nd[0]))
- for irpt, rpt in enumerate(rpts):
+ for irpt, rpt in enumerate(
+ get_release_points(sd, grid, nn=int(nd[0]), localz=localz)
+ ):
row = [irpt]
if grid.grid_type == "structured":
k, i, j = grid.get_lrc([rpt[0]])[0]
diff --git a/flopy/mt3d/mt.py b/flopy/mt3d/mt.py
index 7f0443d73..b31c5c74b 100644
--- a/flopy/mt3d/mt.py
+++ b/flopy/mt3d/mt.py
@@ -295,7 +295,7 @@ def modelgrid(self):
else:
xoff = self.mf._modelgrid.xoffset
if xoff is None:
- # incase mf._modelgrid.xoffset is not set but mf._xul is
+ # in case mf._modelgrid.xoffset is not set but mf._xul is
if self.mf._xul is not None:
xoff = self._modelgrid._xul_to_xll(self.mf._xul)
else:
@@ -307,7 +307,7 @@ def modelgrid(self):
else:
yoff = self.mf._modelgrid.yoffset
if yoff is None:
- # incase mf._modelgrid.yoffset is not set but mf._yul is
+ # in case mf._modelgrid.yoffset is not set but mf._yul is
if self.mf._yul is not None:
yoff = self._modelgrid._yul_to_yll(self.mf._yul)
else:
diff --git a/flopy/mt3d/mtbtn.py b/flopy/mt3d/mtbtn.py
index 5b9298f29..1ddc99417 100644
--- a/flopy/mt3d/mtbtn.py
+++ b/flopy/mt3d/mtbtn.py
@@ -715,23 +715,23 @@ def write_file(self):
f_btn.write(f"{self.tunit:4s}{self.lunit:4s}{self.munit:4s}\n")
# A5
- if self.parent.adv != None:
+ if self.parent.adv is not None:
f_btn.write("T ")
else:
f_btn.write("F ")
- if self.parent.dsp != None:
+ if self.parent.dsp is not None:
f_btn.write("T ")
else:
f_btn.write("F ")
- if self.parent.ssm != None:
+ if self.parent.ssm is not None:
f_btn.write("T ")
else:
f_btn.write("F ")
- if self.parent.rct != None:
+ if self.parent.rct is not None:
f_btn.write("T ")
else:
f_btn.write("F ")
- if self.parent.gcg != None:
+ if self.parent.gcg is not None:
f_btn.write("T ")
else:
f_btn.write("F ")
@@ -771,10 +771,7 @@ def write_file(self):
f_btn.write(
f"{self.ifmtcn:10d}{self.ifmtnp:10d}{self.ifmtrf:10d}{self.ifmtdp:10d}"
)
- if self.savucn == True:
- ss = "T"
- else:
- ss = "F"
+ ss = "T" if self.savucn else "F"
f_btn.write(f"{ss:>10s}\n")
# A16, A17
@@ -809,7 +806,7 @@ def write_file(self):
)
# A20 CHKMAS, NPRMAS
- if self.chkmas == True:
+ if self.chkmas:
ss = "T"
else:
ss = "F"
@@ -917,7 +914,7 @@ def load(cls, f, model, ext_unit_dict=None):
if m_arr[i].upper() == "ALTWTSORB":
AltWTSorb = True
elif model.verbose:
- print(" optional keywords not identifed/loaded")
+ print(" optional keywords not identified/loaded")
# A3
if model.verbose:
diff --git a/flopy/mt3d/mtlkt.py b/flopy/mt3d/mtlkt.py
index 7304ac4b1..749744b8d 100644
--- a/flopy/mt3d/mtlkt.py
+++ b/flopy/mt3d/mtlkt.py
@@ -258,7 +258,7 @@ def write_file(self):
# (Loop through each stress period and write LKT information)
nper = self.parent.nper
for kper in range(nper):
- if f_lkt.closed == True:
+ if f_lkt.closed:
f_lkt = open(f_lkt.name, "a")
# List of concentrations associated with fluxes in/out of lake
diff --git a/flopy/mt3d/mtsft.py b/flopy/mt3d/mtsft.py
index 11127d1fd..1aeade5b9 100644
--- a/flopy/mt3d/mtsft.py
+++ b/flopy/mt3d/mtsft.py
@@ -431,7 +431,7 @@ def write_file(self):
# Loop through each stress period and assign source & sink concentrations to stream features
nper = self.parent.nper
for kper in range(nper):
- if f.closed == True:
+ if f.closed:
f = open(f.name, "a")
# List of concentrations associated with various boundaries
diff --git a/flopy/mt3d/mtssm.py b/flopy/mt3d/mtssm.py
index cad5c2c09..7bc8416f7 100644
--- a/flopy/mt3d/mtssm.py
+++ b/flopy/mt3d/mtssm.py
@@ -254,9 +254,9 @@ def __init__(
self.mxss += (self.parent.btn.icbund < 0).sum()
for p in self.__SsmPackages:
- if (p.label == "BAS6") and (p.instance != None):
+ if (p.label == "BAS6") and (p.instance is not None):
self.mxss += (p.instance.ibound.array < 0).sum()
- elif p.instance != None:
+ elif p.instance is not None:
self.mxss += p.instance._ncells()
else:
self.mxss = mxss
@@ -454,7 +454,7 @@ def write_file(self):
# Loop through each stress period and write ssm information
nper = self.parent.nper
for kper in range(nper):
- if f_ssm.closed == True:
+ if f_ssm.closed:
f_ssm = open(f_ssm.name, "a")
# Distributed sources and sinks (Recharge and Evapotranspiration)
@@ -494,7 +494,7 @@ def write_file(self):
if self.stress_period_data is not None:
self.stress_period_data.write_transient(f_ssm, single_per=kper)
else:
- f_ssm.write(f"0\n")
+ f_ssm.write("0\n")
f_ssm.close()
return
diff --git a/flopy/mt3d/mtuzt.py b/flopy/mt3d/mtuzt.py
index c8ff81420..e979aa947 100644
--- a/flopy/mt3d/mtuzt.py
+++ b/flopy/mt3d/mtuzt.py
@@ -339,7 +339,7 @@ def write_file(self):
# (Loop through each stress period and write uzt information)
nper = self.parent.nper
for kper in range(nper):
- if f_uzt.closed == True:
+ if f_uzt.closed:
f_uzt = open(f_uzt.name, "a")
# Concentrations associated with distributed stresses (Infil, ET)
diff --git a/flopy/pakbase.py b/flopy/pakbase.py
index 27fb1592d..31720c849 100644
--- a/flopy/pakbase.py
+++ b/flopy/pakbase.py
@@ -210,7 +210,7 @@ def _get_kparams(self):
if kp in self.__dict__:
kparams[kp] = name
if "hk" in self.__dict__:
- if self.hk.shape[1] == None:
+ if self.hk.shape[1] is None:
hk = np.asarray(
[a.array.flatten() for a in self.hk], dtype=object
)
@@ -219,7 +219,7 @@ def _get_kparams(self):
else:
hk = self.k.array.copy()
if "vka" in self.__dict__ and self.layvka.sum() > 0:
- if self.vka.shape[1] == None:
+ if self.vka.shape[1] is None:
vka = np.asarray(
[a.array.flatten() for a in self.vka], dtype=object
)
@@ -296,7 +296,7 @@ def check(self, f=None, verbose=True, level=1, checktype=None):
----------
f : str or file handle
String defining file name or file handle for summary file
- of check method output. If a sting is passed a file handle
+ of check method output. If a string is passed a file handle
is created. If f is None, check method does not write
results to a summary file. (default is None)
verbose : bool
@@ -509,7 +509,7 @@ def __repr__(self):
s = self.__doc__
exclude_attributes = ["extension", "heading", "name", "parent", "url"]
for attr, value in sorted(self.__dict__.items()):
- if not (attr in exclude_attributes):
+ if attr not in exclude_attributes:
if isinstance(value, list):
if len(value) == 1:
s += f" {attr} = {value[0]!s}\n"
@@ -742,7 +742,7 @@ def add_to_dtype(dtype, field_names, field_types):
@staticmethod
def _get_sfac_columns():
"""
- This should be overriden for individual packages that support an
+ This should be overridden for individual packages that support an
sfac multiplier for individual list columns
"""
@@ -1002,15 +1002,15 @@ def load(
it += 1
it += 1
- # add auxillary information to nwt options
+ # add auxiliary information to nwt options
if nwt_options is not None:
if options:
if options[0] == "noprint":
nwt_options.noprint = True
if len(options) > 1:
- nwt_options.auxillary = options[1:]
+ nwt_options.auxiliary = options[1:]
else:
- nwt_options.auxillary = options
+ nwt_options.auxiliary = options
options = nwt_options
@@ -1034,9 +1034,9 @@ def load(
if options[0] == "noprint":
nwt_options.noprint = True
if len(options) > 1:
- nwt_options.auxillary = options[1:]
+ nwt_options.auxiliary = options[1:]
else:
- nwt_options.auxillary = options
+ nwt_options.auxiliary = options
options = nwt_options
else:
diff --git a/flopy/pest/templatewriter.py b/flopy/pest/templatewriter.py
index 8a160ebae..ad0eb1253 100644
--- a/flopy/pest/templatewriter.py
+++ b/flopy/pest/templatewriter.py
@@ -87,7 +87,7 @@ def write_template(self):
paktpl.fn_path += ".tpl"
paktpl.write_file(
check=False
- ) # fot now, turn off checks for template files
+ ) # for now, turn off checks for template files
# Destroy the template version of the package
paktpl = None
diff --git a/flopy/plot/__init__.py b/flopy/plot/__init__.py
index 90473aee1..c5a61d12c 100644
--- a/flopy/plot/__init__.py
+++ b/flopy/plot/__init__.py
@@ -1,25 +1,25 @@
"""
- the main entry point of utils
+the main entry point of utils
- Parameters
- ----------
+Parameters
+----------
- Attributes
- ----------
+Attributes
+----------
- Methods
- -------
+Methods
+-------
- See Also
- --------
+See Also
+--------
- Notes
- -----
+Notes
+-----
- Examples
- --------
+Examples
+--------
- """
+"""
from .crosssection import PlotCrossSection
from .map import PlotMapView
diff --git a/flopy/plot/crosssection.py b/flopy/plot/crosssection.py
index 1aac6c685..bca4b47fb 100644
--- a/flopy/plot/crosssection.py
+++ b/flopy/plot/crosssection.py
@@ -141,7 +141,7 @@ def __init__(
ln = line[onkey]
if not PlotCrossSection._is_valid(ln):
- raise ValueError(f"Invalid line representation")
+ raise ValueError("Invalid line representation")
gu = GeoSpatialUtil(ln, shapetype="linestring")
verts = gu.points
@@ -265,8 +265,7 @@ def __init__(
self._masked_values = [model.hnoflo, model.hdry]
# Set axis limits
- self.ax.set_xlim(self.extent[0], self.extent[1])
- self.ax.set_ylim(self.extent[2], self.extent[3])
+ self._set_axes_limits(self.ax)
@staticmethod
def _is_valid(line):
@@ -357,6 +356,25 @@ def get_extent(self):
return xmin, xmax, ymin, ymax
+ def _set_axes_limits(self, ax):
+ """
+ Internal method to set axes limits
+
+ Parameters
+ ----------
+ ax : matplotlib.pyplot axis
+ The plot axis
+
+ Returns
+ -------
+ ax : matplotlib.pyplot axis object
+
+ """
+ if ax.get_autoscale_on():
+ ax.set_xlim(self.extent[0], self.extent[1])
+ ax.set_ylim(self.extent[2], self.extent[3])
+ return ax
+
def plot_array(self, a, masked_values=None, head=None, **kwargs):
"""
Plot a three-dimensional array as a patch collection.
@@ -402,8 +420,7 @@ def plot_array(self, a, masked_values=None, head=None, **kwargs):
pc = self.get_grid_patch_collection(a, projpts, **kwargs)
if pc is not None:
ax.add_collection(pc)
- ax.set_xlim(self.extent[0], self.extent[1])
- ax.set_ylim(self.extent[2], self.extent[3])
+ ax = self._set_axes_limits(ax)
return pc
@@ -464,8 +481,7 @@ def plot_surface(self, a, masked_values=None, **kwargs):
)
surface.append(line)
- ax.set_xlim(self.extent[0], self.extent[1])
- ax.set_ylim(self.extent[2], self.extent[3])
+ ax = self._set_axes_limits(ax)
return surface
@@ -523,8 +539,7 @@ def plot_fill_between(
)
if pc is not None:
ax.add_collection(pc)
- ax.set_xlim(self.extent[0], self.extent[1])
- ax.set_ylim(self.extent[2], self.extent[3])
+ ax = self._set_axes_limits(ax)
return pc
@@ -659,8 +674,7 @@ def contour_array(self, a, masked_values=None, head=None, **kwargs):
if plot_triplot:
ax.triplot(triang, color="black", marker="o", lw=0.75)
- ax.set_xlim(self.extent[0], self.extent[1])
- ax.set_ylim(self.extent[2], self.extent[3])
+ ax = self._set_axes_limits(ax)
return contour_set
@@ -1549,7 +1563,7 @@ def get_grid_patch_collection(
dictionary defined by node number which contains model
patch vertices.
fill_between : bool
- flag to create polygons that mimick the matplotlib fill between
+ flag to create polygons that mimic the matplotlib fill between
method. Only used by the plot_fill_between method.
**kwargs : dictionary
keyword arguments passed to matplotlib.collections.PatchCollection
diff --git a/flopy/plot/map.py b/flopy/plot/map.py
index c8714327b..27b4677c0 100644
--- a/flopy/plot/map.py
+++ b/flopy/plot/map.py
@@ -82,6 +82,25 @@ def extent(self):
self._extent = self.mg.extent
return self._extent
+ def _set_axes_limits(self, ax):
+ """
+ Internal method to set axes limits
+
+ Parameters
+ ----------
+ ax : matplotlib.pyplot axis
+ The plot axis
+
+ Returns
+ -------
+ ax : matplotlib.pyplot axis object
+
+ """
+ if ax.get_autoscale_on():
+ ax.set_xlim(self.extent[0], self.extent[1])
+ ax.set_ylim(self.extent[2], self.extent[3])
+ return ax
+
def plot_array(self, a, masked_values=None, **kwargs):
"""
Plot an array. If the array is three-dimensional, then the method
@@ -152,8 +171,7 @@ def plot_array(self, a, masked_values=None, **kwargs):
ax.add_collection(collection)
# set limits
- ax.set_xlim(self.extent[0], self.extent[1])
- ax.set_ylim(self.extent[2], self.extent[3])
+ ax = self._set_axes_limits(ax)
return collection
def contour_array(self, a, masked_values=None, tri_mask=False, **kwargs):
@@ -305,8 +323,7 @@ def contour_array(self, a, masked_values=None, tri_mask=False, **kwargs):
if plot_triplot:
ax.triplot(triang, color="black", marker="o", lw=0.75)
- ax.set_xlim(self.extent[0], self.extent[1])
- ax.set_ylim(self.extent[2], self.extent[3])
+ ax = self._set_axes_limits(ax)
return contour_set
@@ -423,8 +440,7 @@ def plot_grid(self, **kwargs):
collection = LineCollection(grid_lines, colors=colors, **kwargs)
ax.add_collection(collection)
- ax.set_xlim(self.extent[0], self.extent[1])
- ax.set_ylim(self.extent[2], self.extent[3])
+ ax = self._set_axes_limits(ax)
return collection
def plot_bc(
@@ -605,6 +621,7 @@ def plot_shapes(self, obj, **kwargs):
"""
ax = kwargs.pop("ax", self.ax)
patch_collection = plotutil.plot_shapefile(obj, ax, **kwargs)
+ ax = self._set_axes_limits(ax)
return patch_collection
def plot_vector(
@@ -701,6 +718,7 @@ def plot_vector(
# these are vectors not locations
urot, vrot = geometry.rotate(u, v, 0.0, 0.0, self.mg.angrot_radians)
quiver = ax.quiver(x, y, urot, vrot, pivot=pivot, **kwargs)
+ ax = self._set_axes_limits(ax)
return quiver
def plot_pathline(self, pl, travel_time=None, **kwargs):
@@ -845,9 +863,7 @@ def plot_pathline(self, pl, travel_time=None, **kwargs):
)
# set axis limits
- ax.set_xlim(self.extent[0], self.extent[1])
- ax.set_ylim(self.extent[2], self.extent[3])
-
+ ax = self._set_axes_limits(ax)
return lc
def plot_timeseries(self, ts, travel_time=None, **kwargs):
@@ -989,4 +1005,6 @@ def plot_endpoint(
if createcb:
cb = plt.colorbar(sp, ax=ax, shrink=shrink)
cb.set_label(colorbar_label)
+
+ ax = self._set_axes_limits(ax)
return sp
diff --git a/flopy/plot/mplstyle/usgsmap.mplstyle b/flopy/plot/mplstyle/usgsmap.mplstyle
index 663de1dc2..f704f245c 100644
--- a/flopy/plot/mplstyle/usgsmap.mplstyle
+++ b/flopy/plot/mplstyle/usgsmap.mplstyle
@@ -1,5 +1,5 @@
font.family: sans-serif
-font.sans-serif: Arial
+font.sans-serif: Arial, Liberation Sans, DejaVu Sans
font.size: 7
axes.labelsize: 9
axes.titlesize: 9
diff --git a/flopy/plot/mplstyle/usgsmap_linux.mplstyle b/flopy/plot/mplstyle/usgsmap_linux.mplstyle
deleted file mode 100644
index a9bbb12e8..000000000
--- a/flopy/plot/mplstyle/usgsmap_linux.mplstyle
+++ /dev/null
@@ -1,28 +0,0 @@
-font.family: sans-serif
-font.sans-serif: Liberation Sans
-font.size: 7
-axes.labelsize: 9
-axes.titlesize: 9
-axes.linewidth: 0.5
-xtick.labelsize: 7
-xtick.top: True
-xtick.bottom: True
-xtick.major.size: 7.2
-xtick.minor.size: 3.6
-xtick.major.width: 0.5
-xtick.minor.width: 0.5
-xtick.direction: in
-ytick.labelsize: 7
-ytick.left: True
-ytick.right: True
-ytick.major.size: 7.2
-ytick.minor.size: 3.6
-ytick.major.width: 0.5
-ytick.minor.width: 0.5
-ytick.direction: in
-pdf.fonttype: 42
-savefig.dpi: 300
-savefig.transparent: True
-legend.fontsize: 9
-legend.frameon: False
-legend.markerscale: 1.0
\ No newline at end of file
diff --git a/flopy/plot/mplstyle/usgsplot.mplstyle b/flopy/plot/mplstyle/usgsplot.mplstyle
index 21662f477..cd028b7ef 100644
--- a/flopy/plot/mplstyle/usgsplot.mplstyle
+++ b/flopy/plot/mplstyle/usgsplot.mplstyle
@@ -1,5 +1,5 @@
font.family: sans-serif
-font.sans-serif: Arial
+font.sans-serif: Arial, Liberation Sans, DejaVu Sans
font.size: 7
axes.labelsize: 9
axes.titlesize: 9
diff --git a/flopy/plot/mplstyle/usgsplot_linux.mplstyle b/flopy/plot/mplstyle/usgsplot_linux.mplstyle
deleted file mode 100644
index 4bd96d786..000000000
--- a/flopy/plot/mplstyle/usgsplot_linux.mplstyle
+++ /dev/null
@@ -1,28 +0,0 @@
-font.family: sans-serif
-font.sans-serif: Liberation Sans
-font.size: 7
-axes.labelsize: 9
-axes.titlesize: 9
-axes.linewidth: 0.5
-xtick.labelsize: 8
-xtick.top: True
-xtick.bottom: True
-xtick.major.size: 7.2
-xtick.minor.size: 3.6
-xtick.major.width: 0.5
-xtick.minor.width: 0.5
-xtick.direction: in
-ytick.labelsize: 8
-ytick.left: True
-ytick.right: True
-ytick.major.size: 7.2
-ytick.minor.size: 3.6
-ytick.major.width: 0.5
-ytick.minor.width: 0.5
-ytick.direction: in
-pdf.fonttype: 42
-savefig.dpi: 300
-savefig.transparent: True
-legend.fontsize: 9
-legend.frameon: False
-legend.markerscale: 1.0
\ No newline at end of file
diff --git a/flopy/plot/plotutil.py b/flopy/plot/plotutil.py
index 92b4a6e01..57af252a4 100644
--- a/flopy/plot/plotutil.py
+++ b/flopy/plot/plotutil.py
@@ -1326,7 +1326,7 @@ def _plot_bc_helper(
@staticmethod
def _set_layer_range(mflay, maxlay):
"""
- Re-usable method to check for mflay and set
+ Reusable method to check for mflay and set
the range of plottable layers
Parameters
@@ -1572,7 +1572,7 @@ class UnstructuredPlotUtilities:
def line_intersect_grid(ptsin, xgrid, ygrid):
"""
Uses cross product method to find which cells intersect with the
- line and then uses the parameterized line equation to caluculate
+ line and then uses the parameterized line equation to calculate
intersection x, y vertex points. Should be quite fast for large model
grids!
@@ -2600,23 +2600,91 @@ def parse_modpath_selection_options(
return tep, istart, xp, yp
-# define minimum expected fields
-_mp7_pathline_fields = ["x", "y", "z", "time", "k", "particleid"]
-_prt_pathline_fields = [
- "x",
- "y",
- "z",
- "t",
- "trelease",
- "imdl",
- "iprp",
- "irpt",
- "ilay",
-]
+PRT_PATHLINE_DTYPE = np.dtype(
+ [
+ ("kper", np.int32),
+ ("kstp", np.int32),
+ ("imdl", np.int32),
+ ("iprp", np.int32),
+ ("irpt", np.int32),
+ ("ilay", np.int32),
+ ("icell", np.int32),
+ ("izone", np.int32),
+ ("istatus", np.int32),
+ ("ireason", np.int32),
+ ("trelease", np.float32),
+ ("t", np.float32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("name", np.str_),
+ ]
+)
+MP7_PATHLINE_DTYPE = np.dtype(
+ [
+ ("particleid", np.int32), # same as sequencenumber
+ ("particlegroup", np.int32),
+ (
+ "sequencenumber",
+ np.int32,
+ ), # mp7 sequencenumber (globally unique auto-generated ID)
+ (
+ "particleidloc",
+ np.int32,
+ ), # mp7 particle ID (unique within a group, user-assigned or autogenerated)
+ ("time", np.float32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("k", np.int32),
+ ("node", np.int32),
+ ("xloc", np.float32),
+ ("yloc", np.float32),
+ ("zloc", np.float32),
+ ("stressperiod", np.int32),
+ ("timestep", np.int32),
+ ]
+)
+MP7_ENDPOINT_DTYPE = np.dtype(
+ [
+ (
+ "particleid",
+ np.int32,
+ ), # mp7 sequencenumber (globally unique auto-generated ID)
+ ("particlegroup", np.int32),
+ (
+ "particleidloc",
+ np.int32,
+ ), # mp7 particle ID (unique within a group, user-assigned or autogenerated)
+ ("status", np.int32),
+ ("time0", np.float32),
+ ("time", np.float32),
+ ("node0", np.int32),
+ ("k0", np.int32),
+ ("xloc0", np.float32),
+ ("yloc0", np.float32),
+ ("zloc0", np.float32),
+ ("x0", np.float32),
+ ("y0", np.float32),
+ ("z0", np.float32),
+ ("zone0", np.int32),
+ ("initialcellface", np.int32),
+ ("node", np.int32),
+ ("k", np.int32),
+ ("xloc", np.float32),
+ ("yloc", np.float32),
+ ("zloc", np.float32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("zone", np.int32),
+ ("cellface", np.int32),
+ ]
+)
def to_mp7_pathlines(
- data: Union[np.recarray, pd.DataFrame]
+ data: Union[np.recarray, pd.DataFrame],
) -> Union[np.recarray, pd.DataFrame]:
"""
Convert MODFLOW 6 PRT pathline data to MODPATH 7 pathline format.
@@ -2631,6 +2699,8 @@ def to_mp7_pathlines(
np.recarray or pd.DataFrame (consistent with input type)
"""
+ from flopy.utils.particletrackfile import MIN_PARTICLE_TRACK_DTYPE
+
# determine return type
ret_type = type(data)
@@ -2641,13 +2711,13 @@ def to_mp7_pathlines(
# check format
dt = data.dtypes
if not (
- all(n in dt for n in _mp7_pathline_fields)
- or all(n in dt for n in _prt_pathline_fields)
+ all(n in dt for n in MIN_PARTICLE_TRACK_DTYPE.names)
+ or all(n in dt for n in PRT_PATHLINE_DTYPE.names)
):
raise ValueError(
- "Pathline data must contain all of the following columns: "
- f"{_mp7_pathline_fields} for MODPATH 7, or "
- f"{_prt_pathline_fields} for MODFLOW 6 PRT"
+ "Pathline data must contain the following fields: "
+ f"{MIN_PARTICLE_TRACK_DTYPE.names} for MODPATH 7, or "
+ f"{PRT_PATHLINE_DTYPE.names} for MODFLOW 6 PRT"
)
# return early if already in MP7 format
@@ -2656,6 +2726,11 @@ def to_mp7_pathlines(
data if ret_type == pd.DataFrame else data.to_records(index=False)
)
+ # return early if empty
+ if data.empty:
+ ret = np.recarray((0,), dtype=MP7_PATHLINE_DTYPE)
+ return pd.DataFrame(ret) if ret_type == pd.DataFrame else ret
+
# assign a unique particle index column incrementing an integer
# for each unique combination of irpt, iprp, imdl, and trelease
data = data.sort_values(["imdl", "iprp", "irpt", "trelease"])
@@ -2666,33 +2741,6 @@ def to_mp7_pathlines(
# convert to recarray
data = data.to_records(index=False)
- # define mp7 dtype
- mp7_dtypes = np.dtype(
- [
- ("particleid", np.int32), # same as sequencenumber
- ("particlegroup", np.int32),
- (
- seqn_key,
- np.int32,
- ), # mp7 sequencenumber (globally unique auto-generated ID)
- (
- "particleidloc",
- np.int32,
- ), # mp7 particle ID (unique within a group, user-assigned or autogenerated)
- ("time", np.float32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("k", np.int32),
- ("node", np.int32),
- ("xloc", np.float32),
- ("yloc", np.float32),
- ("zloc", np.float32),
- ("stressperiod", np.int32),
- ("timestep", np.int32),
- ]
- )
-
# build mp7 format recarray
ret = np.core.records.fromarrays(
[
@@ -2713,14 +2761,14 @@ def to_mp7_pathlines(
data["kper"],
data["kstp"],
],
- dtype=mp7_dtypes,
+ dtype=MP7_PATHLINE_DTYPE,
)
return pd.DataFrame(ret) if ret_type == pd.DataFrame else ret
def to_mp7_endpoints(
- data: Union[np.recarray, pd.DataFrame]
+ data: Union[np.recarray, pd.DataFrame],
) -> Union[np.recarray, pd.DataFrame]:
"""
Convert MODFLOW 6 PRT pathline data to MODPATH 7 endpoint format.
@@ -2735,6 +2783,8 @@ def to_mp7_endpoints(
np.recarray or pd.DataFrame (consistent with input type)
"""
+ from flopy.utils.particletrackfile import MIN_PARTICLE_TRACK_DTYPE
+
# determine return type
ret_type = type(data)
@@ -2742,6 +2792,27 @@ def to_mp7_endpoints(
if isinstance(data, np.recarray):
data = pd.DataFrame(data)
+ # check format
+ dt = data.dtypes
+ if all(n in dt for n in MP7_ENDPOINT_DTYPE.names):
+ return (
+ data if ret_type == pd.DataFrame else data.to_records(index=False)
+ )
+ if not (
+ all(n in dt for n in MIN_PARTICLE_TRACK_DTYPE.names)
+ or all(n in dt for n in PRT_PATHLINE_DTYPE.names)
+ ):
+ raise ValueError(
+ "Pathline data must contain the following fields: "
+ f"{MIN_PARTICLE_TRACK_DTYPE.names} for MODPATH 7, or "
+ f"{PRT_PATHLINE_DTYPE.names} for MODFLOW 6 PRT"
+ )
+
+ # return early if empty
+ if data.empty:
+ ret = np.recarray((0,), dtype=MP7_ENDPOINT_DTYPE)
+ return pd.DataFrame(ret) if ret_type == pd.DataFrame else ret
+
# assign a unique particle index column incrementing an integer
# for each unique combination of irpt, iprp, imdl, and trelease
data = data.sort_values(["imdl", "iprp", "irpt", "trelease"])
@@ -2779,44 +2850,6 @@ def to_mp7_endpoints(
# convert to recarray
endpts = endpts.to_records(index=False)
- # define mp7 dtype
- mp7_dtype = np.dtype(
- [
- (
- "particleid",
- np.int32,
- ), # mp7 sequencenumber (globally unique auto-generated ID)
- ("particlegroup", np.int32),
- (
- "particleidloc",
- np.int32,
- ), # mp7 particle ID (unique within a group, user-assigned or autogenerated)
- ("status", np.int32),
- ("time0", np.float32),
- ("time", np.float32),
- ("node0", np.int32),
- ("k0", np.int32),
- ("xloc0", np.float32),
- ("yloc0", np.float32),
- ("zloc0", np.float32),
- ("x0", np.float32),
- ("y0", np.float32),
- ("z0", np.float32),
- ("zone0", np.int32),
- ("initialcellface", np.int32),
- ("node", np.int32),
- ("k", np.int32),
- ("xloc", np.float32),
- ("yloc", np.float32),
- ("zloc", np.float32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("zone", np.int32),
- ("cellface", np.int32),
- ]
- )
-
# build mp7 format recarray
ret = np.core.records.fromarrays(
[
@@ -2849,14 +2882,14 @@ def to_mp7_endpoints(
endpts["izone"],
np.zeros(endpts.shape[0]), # todo cell face?
],
- dtype=mp7_dtype,
+ dtype=MP7_ENDPOINT_DTYPE,
)
return pd.DataFrame(ret) if ret_type == pd.DataFrame else ret
def to_prt_pathlines(
- data: Union[np.recarray, pd.DataFrame]
+ data: Union[np.recarray, pd.DataFrame],
) -> Union[np.recarray, pd.DataFrame]:
"""
Convert MODPATH 7 pathline or endpoint data to MODFLOW 6 PRT pathline format.
@@ -2881,13 +2914,13 @@ def to_prt_pathlines(
# check format
dt = data.dtypes
if not (
- all(n in dt for n in _mp7_pathline_fields)
- or all(n in dt for n in _prt_pathline_fields)
+ all(n in dt for n in MP7_PATHLINE_DTYPE.names)
+ or all(n in dt for n in PRT_PATHLINE_DTYPE.names)
):
raise ValueError(
- "Pathline data must contain all of the following columns: "
- f"{_mp7_pathline_fields} for MODPATH 7, or "
- f"{_prt_pathline_fields} for MODFLOW 6 PRT"
+ "Pathline data must contain the following fields: "
+ f"{MP7_PATHLINE_DTYPE.names} for MODPATH 7, or "
+ f"{PRT_PATHLINE_DTYPE.names} for MODFLOW 6 PRT"
)
# return early if already in PRT format
@@ -2896,31 +2929,14 @@ def to_prt_pathlines(
data if ret_type == pd.DataFrame else data.to_records(index=False)
)
+ # return early if empty
+ if data.empty:
+ ret = np.recarray((0,), dtype=PRT_PATHLINE_DTYPE)
+ return pd.DataFrame(ret) if ret_type == pd.DataFrame else ret
+
# convert to recarray
data = data.to_records(index=False)
- # define prt dtype
- prt_dtypes = np.dtype(
- [
- ("kper", np.int32),
- ("kstp", np.int32),
- ("imdl", np.int32),
- ("iprp", np.int32),
- ("irpt", np.int32),
- ("ilay", np.int32),
- ("icell", np.int32),
- ("izone", np.int32),
- ("istatus", np.int32),
- ("ireason", np.int32),
- ("trelease", np.float32),
- ("t", np.float32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("name", str),
- ]
- )
-
# build prt format recarray
ret = np.core.records.fromarrays(
[
@@ -2939,9 +2955,14 @@ def to_prt_pathlines(
data["x"],
data["y"],
data["z"],
- np.zeros(data.shape[0]),
+ np.zeros(data.shape[0], str),
],
- dtype=prt_dtypes,
+ dtype=PRT_PATHLINE_DTYPE,
)
- return pd.DataFrame(ret) if ret_type == pd.DataFrame else ret
+ if ret_type == pd.DataFrame:
+ df = pd.DataFrame(ret)
+ df.name = df.name.astype(pd.StringDtype())
+ return df
+ else:
+ return ret
diff --git a/flopy/plot/styles.py b/flopy/plot/styles.py
index 0e2590fb3..48e916f07 100644
--- a/flopy/plot/styles.py
+++ b/flopy/plot/styles.py
@@ -19,9 +19,6 @@ class styles:
_ws = os.path.abspath(os.path.dirname(__file__))
_map_style = os.path.join(_ws, "mplstyle", "usgsmap.mplstyle")
_plot_style = os.path.join(_ws, "mplstyle", "usgsplot.mplstyle")
- if platform.system() == "linux":
- _map_style = os.path.join(_ws, "mplstyle", "usgsmap_linux.mplstyle")
- _plot_style = os.path.join(_ws, "mplstyle", "usgsplot_linux.mplstyle")
@classmethod
def USGSMap(cls):
@@ -82,7 +79,7 @@ def heading(
location of the heading in the y-direction in normalized plot
dimensions ranging from 0 to 1 (default is 1.01)
idx : int
- index for programatically generating the heading letter when letter
+ index for programmatically generating the heading letter when letter
is None and idx is not None. idx = 0 will generate A
(default is None)
diff --git a/flopy/utils/__init__.py b/flopy/utils/__init__.py
index cbab04dd9..87e0b6e5c 100644
--- a/flopy/utils/__init__.py
+++ b/flopy/utils/__init__.py
@@ -1,25 +1,25 @@
"""
- the main entry point of utils
+the main entry point of utils
- Parameters
- ----------
+Parameters
+----------
- Attributes
- ----------
+Attributes
+----------
- Methods
- -------
+Methods
+-------
- See Also
- --------
+See Also
+--------
- Notes
- -----
+Notes
+-----
- Examples
- --------
+Examples
+--------
- """
+"""
from .utl_import import import_optional_dependency # isort:skip
from . import get_modflow as get_modflow_module
diff --git a/flopy/utils/binaryfile.py b/flopy/utils/binaryfile.py
index 414a38798..0efce1c49 100644
--- a/flopy/utils/binaryfile.py
+++ b/flopy/utils/binaryfile.py
@@ -1013,7 +1013,8 @@ def __init__(
self.iposarray = []
self.textlist = []
self.imethlist = []
- self.paknamlist = []
+ self.paknamlist_from = []
+ self.paknamlist_to = []
self.nrecords = 0
self.compact = True # compact budget file flag
@@ -1079,12 +1080,13 @@ def __reset(self):
self.iposarray = []
self.textlist = []
self.imethlist = []
- self.paknamlist = []
+ self.paknamlist_from = []
+ self.paknamlist_to = []
self.nrecords = 0
def _set_precision(self, precision="single"):
"""
- Method to set the budget precsion from a CBC file. Enables
+ Method to set the budget precision from a CBC file. Enables
Auto precision code to work
Parameters
@@ -1219,8 +1221,10 @@ def _build_index(self):
raise BudgetIndexError("Improper precision")
self.textlist.append(header["text"])
self.imethlist.append(header["imeth"])
- if header["paknam"] not in self.paknamlist:
- self.paknamlist.append(header["paknam"])
+ if header["paknam"] not in self.paknamlist_from:
+ self.paknamlist_from.append(header["paknam"])
+ if header["paknam2"] not in self.paknamlist_to:
+ self.paknamlist_to.append(header["paknam2"])
ipos = self.file.tell()
if self.verbose:
@@ -1390,7 +1394,7 @@ def _find_text(self, text):
raise Exception(errmsg)
return text16
- def _find_paknam(self, paknam):
+ def _find_paknam(self, paknam, to=False):
"""
Determine if selected record name is in budget file
@@ -1402,7 +1406,7 @@ def _find_paknam(self, paknam):
tpaknam = paknam.decode()
else:
tpaknam = paknam
- for t in self._unique_package_names():
+ for t in self._unique_package_names(to):
if tpaknam.upper() in t.decode():
paknam16 = t
break
@@ -1433,11 +1437,11 @@ def list_unique_records(self):
rec = rec.decode()
print(f"{rec.strip():16} {imeth:5d}")
- def list_unique_packages(self):
+ def list_unique_packages(self, to=False):
"""
Print a list of unique package names
"""
- for rec in self._unique_package_names():
+ for rec in self._unique_package_names(to):
if isinstance(rec, bytes):
rec = rec.decode()
print(rec)
@@ -1467,7 +1471,7 @@ def get_unique_record_names(self, decode=False):
names = self.textlist
return names
- def get_unique_package_names(self, decode=False):
+ def get_unique_package_names(self, decode=False, to=False):
"""
Get a list of unique package names in the file
@@ -1482,17 +1486,18 @@ def get_unique_package_names(self, decode=False):
List of unique package names in the binary file.
"""
+
if decode:
names = []
- for text in self.paknamlist:
+ for text in self._unique_package_names(to):
if isinstance(text, bytes):
text = text.decode()
names.append(text)
else:
- names = self.paknamlist
+ names = self._unique_package_names(to)
return names
- def _unique_package_names(self):
+ def _unique_package_names(self, to=False):
"""
Get a list of unique package names in the file
@@ -1502,7 +1507,7 @@ def _unique_package_names(self):
List of unique package names in the binary file.
"""
- return self.paknamlist
+ return self.paknamlist_to if to else self.paknamlist_from
def get_kstpkper(self):
"""
@@ -1577,6 +1582,7 @@ def get_data(
totim=None,
text=None,
paknam=None,
+ paknam2=None,
full3D=False,
) -> Union[List, np.ndarray]:
"""
@@ -1594,6 +1600,14 @@ def get_data(
text : str
The text identifier for the record. Examples include
'RIVER LEAKAGE', 'STORAGE', 'FLOW RIGHT FACE', etc.
+ paknam : str
+ The `from` package name for the record.
+ paknam2 : str
+ The `to` package name for the record. This argument can be
+ useful for MODFLOW 6 budget files if multiple packages of
+ the same type are specified. The paknam2 argument can be
+ specified as the package name (not the package type) in
+ order to retrieve budget data for a specific named package.
full3D : boolean
If true, then return the record as a three dimensional numpy
array, even for those list-style records written as part of a
@@ -1623,8 +1637,8 @@ def get_data(
if totim is not None:
if len(self.times) == 0:
errmsg = """This is an older style budget file that
- does not have times in it. Use the MODFLOW
- compact budget format if you want to work with
+ does not have times in it. Use the MODFLOW
+ compact budget format if you want to work with
times. Or you may access this file using the
kstp and kper arguments or the idx argument."""
raise Exception(errmsg)
@@ -1636,83 +1650,58 @@ def get_data(
paknam16 = None
if paknam is not None:
paknam16 = self._find_paknam(paknam)
-
+ paknam16_2 = None
+ if paknam2 is not None:
+ paknam16_2 = self._find_paknam(paknam2, to=True)
+
+ # build the selection mask
+ select_indices = np.array([True] * len(self.recordarray))
+ selected = False
+ if idx is not None:
+ select_indices[idx] = False
+ select_indices = ~select_indices
+ selected = True
if kstpkper is not None:
kstp1 = kstpkper[0] + 1
kper1 = kstpkper[1] + 1
- if text is None and paknam is None:
- select_indices = np.where(
- (self.recordarray["kstp"] == kstp1)
- & (self.recordarray["kper"] == kper1)
- )
- else:
- if paknam is None and text is not None:
- select_indices = np.where(
- (self.recordarray["kstp"] == kstp1)
- & (self.recordarray["kper"] == kper1)
- & (self.recordarray["text"] == text16)
- )
- elif text is None and paknam is not None:
- select_indices = np.where(
- (self.recordarray["kstp"] == kstp1)
- & (self.recordarray["kper"] == kper1)
- & (self.recordarray["paknam"] == paknam16)
- )
- else:
- select_indices = np.where(
- (self.recordarray["kstp"] == kstp1)
- & (self.recordarray["kper"] == kper1)
- & (self.recordarray["text"] == text16)
- & (self.recordarray["paknam"] == paknam16)
- )
-
- elif totim is not None:
- if text is None and paknam is None:
- select_indices = np.where(self.recordarray["totim"] == totim)
- else:
- if paknam is None and text is not None:
- select_indices = np.where(
- (self.recordarray["totim"] == totim)
- & (self.recordarray["text"] == text16)
- )
- elif text is None and paknam is not None:
- select_indices = np.where(
- (self.recordarray["totim"] == totim)
- & (self.recordarray["paknam"] == paknam16)
- )
- else:
- select_indices = np.where(
- (self.recordarray["totim"] == totim)
- & (self.recordarray["text"] == text16)
- & (self.recordarray["paknam"] == paknam16)
- )
-
- # allow for idx to be a list or a scalar
- elif idx is not None:
- if isinstance(idx, list):
- select_indices = idx
- else:
- select_indices = [idx]
-
- # case where only text is entered
- elif text is not None:
- select_indices = np.where(self.recordarray["text"] == text16)
+ select_indices = select_indices & (
+ self.recordarray["kstp"] == kstp1
+ )
+ select_indices = select_indices & (
+ self.recordarray["kper"] == kper1
+ )
+ selected = True
+ if text16 is not None:
+ select_indices = select_indices & (
+ self.recordarray["text"] == text16
+ )
+ selected = True
+ if paknam16 is not None:
+ select_indices = select_indices & (
+ self.recordarray["paknam"] == paknam16
+ )
+ selected = True
+ if paknam16_2 is not None:
+ select_indices = select_indices & (
+ self.recordarray["paknam2"] == paknam16_2
+ )
+ selected = True
+ if totim is not None:
+ select_indices = select_indices & np.isclose(
+ self.recordarray["totim"], totim
+ )
+ selected = True
- else:
+ if not selected:
raise TypeError(
"get_data() missing 1 required argument: 'kstpkper', 'totim', "
"'idx', or 'text'"
)
-
- # build and return the record list
- if isinstance(select_indices, tuple):
- select_indices = select_indices[0]
- recordlist = []
- for idx in select_indices:
- rec = self.get_record(idx, full3D=full3D)
- recordlist.append(rec)
-
- return recordlist
+ return [
+ self.get_record(idx, full3D=full3D)
+ for idx, t in enumerate(select_indices)
+ if t
+ ]
def get_ts(self, idx, text=None, times=None):
"""
diff --git a/flopy/utils/compare.py b/flopy/utils/compare.py
index 61fd2f65c..7aad59637 100644
--- a/flopy/utils/compare.py
+++ b/flopy/utils/compare.py
@@ -564,7 +564,7 @@ def compare_heads(
if files1 is None:
# Get oc info, and return if OC not included in models
ocf1 = get_entries_from_namefile(namefile1, "OC")
- if not any(ocf1) is None:
+ if any(ocf1) is not None:
return True
hu1, hfpth1, du1, _ = ModflowOc.get_ocoutput_units(ocf1[0][0])
diff --git a/flopy/utils/crs.py b/flopy/utils/crs.py
index a2009d62d..69d7b8856 100644
--- a/flopy/utils/crs.py
+++ b/flopy/utils/crs.py
@@ -1,5 +1,4 @@
-"""Utilities related to coordinate reference system handling.
-"""
+"""Utilities related to coordinate reference system handling."""
import warnings
from pathlib import Path
@@ -24,7 +23,7 @@ def get_authority_crs(crs):
Returns
-------
pyproj.CRS instance
- CRS instance initiallized with the name
+ CRS instance initialized with the name
and authority code (e.g. "epsg:5070") produced by
:meth:`pyproj.crs.CRS.to_authority`
diff --git a/flopy/utils/cvfdutil.py b/flopy/utils/cvfdutil.py
index 2fb1a6a3d..3eb33d6e8 100644
--- a/flopy/utils/cvfdutil.py
+++ b/flopy/utils/cvfdutil.py
@@ -1,38 +1,23 @@
import numpy as np
+import pandas as pd
+
+from .utl_import import import_optional_dependency
def area_of_polygon(x, y):
- """Calculates the signed area of an arbitrary polygon given its vertices
- https://stackoverflow.com/a/4682656/ (Joe Kington)
- http://softsurfer.com/Archive/algorithm_0101/algorithm_0101.htm#2D%20Polygons
- """
- area = 0.0
- for i in range(-1, len(x) - 1):
- area += x[i] * (y[i + 1] - y[i - 1])
- return area / 2.0
+ shapely = import_optional_dependency("shapely")
+ from shapely.geometry import Polygon
+
+ pgon = Polygon(zip(x, y))
+ return pgon.area
def centroid_of_polygon(points):
- """
- https://stackoverflow.com/a/14115494/ (mgamba)
- """
- import itertools as IT
-
- area = area_of_polygon(*zip(*points))
- result_x = 0
- result_y = 0
- N = len(points)
- points = IT.cycle(points)
- x1, y1 = next(points)
- for i in range(N):
- x0, y0 = x1, y1
- x1, y1 = next(points)
- cross = (x0 * y1) - (x1 * y0)
- result_x += (x0 + x1) * cross
- result_y += (y0 + y1) * cross
- result_x /= area * 6.0
- result_y /= area * 6.0
- return (result_x, result_y)
+ shapely = import_optional_dependency("shapely")
+ from shapely.geometry import Polygon
+
+ pgon = Polygon(points)
+ return pgon.centroid.x, pgon.centroid.y
class Point:
@@ -131,6 +116,7 @@ def to_cvfd(
nodestart=None,
nodestop=None,
skip_hanging_node_check=False,
+ duplicate_decimals=9,
verbose=False,
):
"""
@@ -151,6 +137,11 @@ def to_cvfd(
skip the hanging node check. this may only be necessary for quad-based
grid refinement. (default is False)
+ duplicate_decimals : int
+ decimals to round duplicate vertex checks. GRIDGEN can occasionally
+ produce very-nearly overlapping vertices, this can be used to change
+ the sensitivity for filtering out duplicates. (default is 9)
+
verbose : bool
print messages to the screen. (default is False)
@@ -192,7 +183,10 @@ def to_cvfd(
xcyc[icell, 1] = yc
ivertlist = []
for p in points:
- pt = tuple(p)
+ pt = (
+ round(p[0], duplicate_decimals),
+ round(p[1], duplicate_decimals),
+ )
if pt in vertexdict:
ivert = vertexdict[pt]
else:
diff --git a/flopy/utils/datafile.py b/flopy/utils/datafile.py
index 6541d4ba6..6477ecfe0 100644
--- a/flopy/utils/datafile.py
+++ b/flopy/utils/datafile.py
@@ -274,7 +274,7 @@ def to_shapefile(
kstpkper=kstpkper, totim=totim, mflay=mflay
).transpose()
).transpose()
- if mflay != None:
+ if mflay is not None:
attrib_dict = {f"{attrib_name}{mflay}": plotarray[0, :, :]}
else:
attrib_dict = {}
diff --git a/flopy/utils/datautil.py b/flopy/utils/datautil.py
index 53844ae46..aa59a0976 100644
--- a/flopy/utils/datautil.py
+++ b/flopy/utils/datautil.py
@@ -54,24 +54,32 @@ def max_tuple_abs_size(some_tuple):
class DatumUtil:
@staticmethod
- def is_int(str):
- try:
- int(str)
- return True
- except TypeError:
- return False
- except ValueError:
- return False
+ def is_int(v):
+ if isinstance(v, np.ndarray):
+ try:
+ int(v.item())
+ except ValueError:
+ return False
+ else:
+ try:
+ int(v)
+ return True
+ except (TypeError, ValueError):
+ return False
@staticmethod
- def is_float(str):
- try:
- float(str)
- return True
- except TypeError:
- return False
- except ValueError:
- return False
+ def is_float(v):
+ if isinstance(v, np.ndarray):
+ try:
+ float(v.item())
+ except ValueError:
+ return False
+ else:
+ try:
+ float(v)
+ return True
+ except (TypeError, ValueError):
+ return False
@staticmethod
def is_basic_type(obj):
@@ -135,7 +143,7 @@ class PyListUtil:
compares two lists, returns true if they are identical (with max_error)
spilt_data_line : (line : string) : list
splits a string apart (using split) and then cleans up the results
- dealing with various MODFLOW input file releated delimiters. returns
+ dealing with various MODFLOW input file related delimiters. returns
the delimiter type used.
clean_numeric : (text : string) : string
returns a cleaned up version of 'text' with only numeric characters
@@ -360,11 +368,21 @@ def split_data_line(line, external_file=False, delimiter_conf_length=15):
max_split_type = delimiter
max_split_list = alt_split
+ if max_split_type is None and max_split_size > 0:
+ split_first = max_split_list[0].strip().split(",")
+ if len(split_first) > 1:
+ max_split_list = split_first + max_split_list[1:]
+ max_split_size = len(max_split_list)
+ max_split_type = "combo"
+
if max_split_type is not None and max_split_size > 1:
clean_line = max_split_list
if PyListUtil.line_num == 0:
PyListUtil.delimiter_used = max_split_type
- elif PyListUtil.delimiter_used != max_split_type:
+ elif (
+ PyListUtil.delimiter_used != max_split_type
+ or max_split_type == "combo"
+ ):
PyListUtil.consistent_delim = False
if max_split_size > 1:
PyListUtil.line_num += 1
diff --git a/flopy/utils/flopy_io.py b/flopy/utils/flopy_io.py
index caa8532ed..c3f94b62f 100644
--- a/flopy/utils/flopy_io.py
+++ b/flopy/utils/flopy_io.py
@@ -225,7 +225,7 @@ def read_fixed_var(line, ncol=1, length=10, ipos=None, free=False):
ipos : list, int, or numpy array
user-provided column widths. (default is None)
free : bool
- boolean indicating if sting is free format. ncol, length, and
+ boolean indicating if string is free format. ncol, length, and
ipos are not used if free is True. (default is False)
Returns
@@ -291,7 +291,7 @@ def flux_to_wel(cbc_file, text, precision="single", model=None, verbose=False):
# create a empty numpy array of shape (time,layer,row,col)
m4d = np.zeros((cbf.nper, cbf.nlay, cbf.nrow, cbf.ncol), dtype=np.float32)
- m4d[:] = np.NaN
+ m4d[:] = np.nan
# process the records in the cell budget file
iper = -1
@@ -305,7 +305,7 @@ def flux_to_wel(cbc_file, text, precision="single", model=None, verbose=False):
arr = arr[0]
print(arr.max(), arr.min(), arr.sum())
# masked where zero
- arr[np.where(arr == 0.0)] = np.NaN
+ arr[np.where(arr == 0.0)] = np.nan
m4d[iper + 1] = arr
iper += 1
@@ -352,11 +352,10 @@ def loadtxt(
ra : np.recarray
Numpy record array of file contents.
"""
- from ..utils import import_optional_dependency
if use_pandas:
if delimiter.isspace():
- kwargs["delim_whitespace"] = True
+ kwargs["sep"] = "\\s+"
if isinstance(dtype, np.dtype) and "names" not in kwargs:
kwargs["names"] = dtype.names
@@ -592,7 +591,7 @@ def relpath_safe(
def scrub_login(s: str) -> str:
"""
Remove the current login name from the given string,
- replacing any occurences with "***".
+ replacing any occurrences with "***".
Parameters
----------
diff --git a/flopy/utils/get_modflow.py b/flopy/utils/get_modflow.py
index 54c2a7d12..4666fcfe4 100755
--- a/flopy/utils/get_modflow.py
+++ b/flopy/utils/get_modflow.py
@@ -7,6 +7,7 @@
See https://developer.github.com/v3/repos/releases/ for GitHub Releases API.
"""
+
import json
import os
import shutil
@@ -18,6 +19,7 @@
import zipfile
from importlib.util import find_spec
from pathlib import Path
+from platform import processor
__all__ = ["run_main"]
__license__ = "CC0"
@@ -33,7 +35,7 @@
"modflow6-nightly-build": "modflow6_nightly",
}
available_repos = list(renamed_prefix.keys())
-available_ostags = ["linux", "mac", "win32", "win64"]
+available_ostags = ["linux", "mac", "macarm", "win32", "win64", "win64par"]
max_http_tries = 3
# Check if this is running from flopy
@@ -65,11 +67,11 @@ def get_ostag() -> str:
def get_suffixes(ostag) -> Tuple[str, str]:
- if ostag in ["win32", "win64"]:
+ if ostag in ["win32", "win64", "win64par"]:
return ".exe", ".dll"
elif ostag == "linux":
return "", ".so"
- elif ostag == "mac":
+ elif "mac" in ostag:
return "", ".dylib"
else:
raise KeyError(
@@ -405,20 +407,28 @@ def run_main(
# get the selected release
release = get_release(owner, repo, release_id, quiet)
assets = release.get("assets", [])
-
+ asset_names = [a["name"] for a in assets]
for asset in assets:
- if ostag in asset["name"]:
+ asset_name = asset["name"]
+ if ostag in asset_name:
+ # temporary hack for nightly gfortran build for ARM macs
+ # todo: clean up if/when all repos have an ARM mac build
+ if (
+ repo == "modflow6-nightly-build"
+ and "macarm.zip" in asset_names
+ and processor() == "arm"
+ and ostag == "mac.zip"
+ ):
+ continue
break
else:
raise ValueError(
f"could not find ostag {ostag!r} from release {release['tag_name']!r}; "
f"see available assets here:\n{release['html_url']}"
)
- asset_name = asset["name"]
download_url = asset["browser_download_url"]
if repo == "modflow6":
asset_pth = Path(asset_name)
- asset_stem = asset_pth.stem
asset_suffix = asset_pth.suffix
dst_fname = "-".join([repo, release["tag_name"], ostag]) + asset_suffix
else:
@@ -598,7 +608,7 @@ def add_item(key, fname, do_chmod):
break
shutil.rmtree(str(bindir_path))
- if ostag in ["linux", "mac"]:
+ if ostag in ["linux", "mac", "macarm"]:
# similar to "chmod +x fname" for each executable
for fname in chmod:
pth = bindir / fname
diff --git a/flopy/utils/gridgen.py b/flopy/utils/gridgen.py
index 2aa1eea18..9fb46f4fc 100644
--- a/flopy/utils/gridgen.py
+++ b/flopy/utils/gridgen.py
@@ -1892,7 +1892,6 @@ def _mkvertdict(self):
for i in range(len(shapes)):
nodenumber = int(records[i][idx]) - 1
self._vertdict[nodenumber] = shapes[i].points
- return
@staticmethod
def read_qtg_nod(
diff --git a/flopy/utils/gridintersect.py b/flopy/utils/gridintersect.py
index 465ca2322..16c14a272 100644
--- a/flopy/utils/gridintersect.py
+++ b/flopy/utils/gridintersect.py
@@ -142,7 +142,7 @@ class GridIntersect:
structured routines, especially for larger grids.
"""
- def __init__(self, mfgrid, method=None, rtree=True):
+ def __init__(self, mfgrid, method=None, rtree=True, local=False):
"""Intersect shapes (Point, Linestring, Polygon) with a modflow grid.
Parameters
@@ -150,16 +150,21 @@ def __init__(self, mfgrid, method=None, rtree=True):
mfgrid : flopy modflowgrid
MODFLOW grid as implemented in flopy
method : str, optional
- default is None, which determines intersection method based on
- the grid type. Options are either 'vertex' which uses shapely
- interesection operations or 'structured' which uses optimized
- methods that only work for structured grids
+ Options are either 'vertex' which uses shapely intersection operations
+ or 'structured' which uses optimized methods that only work for structured
+ grids. The default is None, which determines intersection method based on
+ the grid type.
rtree : bool, optional
whether to build an STR-Tree, default is True. If False no STR-tree
is built, but intersects will loop through all model gridcells
(which is generally slower). Only read when `method='vertex'`.
+ local : bool, optional
+ use local model coordinates from model grid to build grid geometries,
+ default is False and uses real-world coordinates (with offset and rotation),
+ if specified.
"""
self.mfgrid = mfgrid
+ self.local = local
if method is None:
# determine method from grid_type
self.method = self.mfgrid.grid_type
@@ -356,8 +361,11 @@ def _rect_grid_to_geoms_cellids(self):
ncol = self.mfgrid.ncol
ncells = nrow * ncol
cellids = np.arange(ncells)
- xvertices = self.mfgrid.xvertices
- yvertices = self.mfgrid.yvertices
+ if self.local:
+ xvertices, yvertices = np.meshgrid(*self.mfgrid.xyedges)
+ else:
+ xvertices = self.mfgrid.xvertices
+ yvertices = self.mfgrid.yvertices
# arrays of coordinates for rectangle cells
I, J = np.ogrid[0:nrow, 0:ncol]
@@ -421,47 +429,28 @@ def _vtx_grid_to_geoms_cellids(self):
cellids : array_like
array of cellids
"""
- shapely_geo = import_optional_dependency("shapely.geometry")
-
- # for cell2d rec-arrays
- geoms = []
- cellids = []
- if isinstance(self.mfgrid._cell2d, np.recarray):
- for icell in self.mfgrid._cell2d.icell2d:
- points = []
- icverts = [
- f"icvert_{i}"
- for i in range(self.mfgrid._cell2d["ncvert"][icell])
- ]
- for iv in self.mfgrid._cell2d[icverts][icell]:
- points.append(
- (
- self.mfgrid._vertices.xv[iv],
- self.mfgrid._vertices.yv[iv],
- )
- )
- # close the polygon, if necessary
- if points[0] != points[-1]:
- points.append(points[0])
- geoms.append(shapely_geo.Polygon(points))
- cellids.append(icell)
- # for cell2d lists
- elif isinstance(self.mfgrid._cell2d, list):
- for icell in range(len(self.mfgrid._cell2d)):
- points = []
- for iv in self.mfgrid._cell2d[icell][4:]:
- points.append(
- (
- self.mfgrid._vertices[iv][1],
- self.mfgrid._vertices[iv][2],
+ shapely = import_optional_dependency("shapely")
+ if self.local:
+ geoms = [
+ shapely.polygons(
+ list(
+ zip(
+ *self.mfgrid.get_local_coords(
+ *np.array(
+ self.mfgrid.get_cell_vertices(node)
+ ).T
+ )
)
)
- # close the polygon, if necessary
- if points[0] != points[-1]:
- points.append(points[0])
- geoms.append(shapely_geo.Polygon(points))
- cellids.append(icell)
- return np.array(geoms), np.array(cellids)
+ )
+ for node in range(self.mfgrid.ncpl)
+ ]
+ else:
+ geoms = [
+ shapely.polygons(self.mfgrid.get_cell_vertices(node))
+ for node in range(self.mfgrid.ncpl)
+ ]
+ return np.array(geoms), np.arange(self.mfgrid.ncpl)
def _rect_grid_to_shape_list(self):
"""internal method, list of shapely polygons for structured grid cells.
@@ -1207,7 +1196,7 @@ def _intersect_point_structured(self, shp, return_all_intersections=False):
self.mfgrid.angrot != 0.0
or self.mfgrid.xoffset != 0.0
or self.mfgrid.yoffset != 0.0
- ):
+ ) and not self.local:
rx, ry = transform(
p.x,
p.y,
@@ -1347,11 +1336,13 @@ def _intersect_linestring_structured(
pl = shapely_geo.box(xmin, ymin, xmax, ymax)
# rotate and translate linestring to local coords
- if self.mfgrid.xoffset != 0.0 or self.mfgrid.yoffset != 0.0:
+ if (
+ self.mfgrid.xoffset != 0.0 or self.mfgrid.yoffset != 0.0
+ ) and not self.local:
shp = affinity_loc.translate(
shp, xoff=-self.mfgrid.xoffset, yoff=-self.mfgrid.yoffset
)
- if self.mfgrid.angrot != 0.0:
+ if self.mfgrid.angrot != 0.0 and not self.local:
shp = affinity_loc.rotate(
shp, -self.mfgrid.angrot, origin=(0.0, 0.0)
)
@@ -1380,7 +1371,7 @@ def _intersect_linestring_structured(
self.mfgrid.angrot != 0.0
or self.mfgrid.xoffset != 0.0
or self.mfgrid.yoffset != 0.0
- ):
+ ) and not self.local:
v_realworld = []
for pt in v:
pt = np.array(pt)
@@ -1424,7 +1415,7 @@ def _intersect_linestring_structured(
self.mfgrid.angrot != 0.0
or self.mfgrid.xoffset != 0.0
or self.mfgrid.yoffset != 0.0
- ):
+ ) and not self.local:
v_realworld = []
for pt in vertices:
pt = np.array(pt)
@@ -1546,7 +1537,7 @@ def _get_nodes_intersecting_linestring(
self.mfgrid.angrot != 0.0
or self.mfgrid.xoffset != 0.0
or self.mfgrid.yoffset != 0.0
- ):
+ ) and not self.local:
x0, y0 = transform(
[x[0]],
[y[0]],
@@ -1913,11 +1904,13 @@ def _intersect_polygon_structured(
ixshapes = []
# transform polygon to local grid coordinates
- if self.mfgrid.xoffset != 0.0 or self.mfgrid.yoffset != 0.0:
+ if (
+ self.mfgrid.xoffset != 0.0 or self.mfgrid.yoffset != 0.0
+ ) and not self.local:
shp = affinity_loc.translate(
shp, xoff=-self.mfgrid.xoffset, yoff=-self.mfgrid.yoffset
)
- if self.mfgrid.angrot != 0.0:
+ if self.mfgrid.angrot != 0.0 and not self.local:
shp = affinity_loc.rotate(
shp, -self.mfgrid.angrot, origin=(0.0, 0.0)
)
@@ -1982,7 +1975,7 @@ def _intersect_polygon_structured(
self.mfgrid.angrot != 0.0
or self.mfgrid.xoffset != 0.0
or self.mfgrid.yoffset != 0.0
- ):
+ ) and not self.local:
v_realworld = []
if intersect.geom_type.startswith("Multi"):
for ipoly in intersect.geoms:
@@ -2253,13 +2246,17 @@ def find_position_in_array(arr, x):
"""
jpos = []
- if x == arr[-1]:
+ if np.isclose(x, arr[-1]):
return len(arr) - 2
- if x < min(arr[0], arr[-1]):
- return None
+ xmin = min(arr[0], arr[-1])
+ xmax = max(arr[0], arr[-1])
- if x > max(arr[0], arr[-1]):
+ if np.isclose(x, xmin):
+ x = xmin
+ if np.isclose(x, xmax):
+ x = xmax
+ if not (xmin <= x <= xmax):
return None
# go through each position
diff --git a/flopy/utils/gridutil.py b/flopy/utils/gridutil.py
index bd428c8fe..4c1366aa4 100644
--- a/flopy/utils/gridutil.py
+++ b/flopy/utils/gridutil.py
@@ -33,9 +33,9 @@ def get_lni(ncpl, nodes) -> List[Tuple[int, int]]:
"""
if not isinstance(ncpl, (int, list, tuple, np.ndarray)):
- raise ValueError(f"ncpl must be int or array-like")
+ raise ValueError("ncpl must be int or array-like")
if not isinstance(nodes, (list, tuple, np.ndarray)):
- raise ValueError(f"nodes must be array-like")
+ raise ValueError("nodes must be array-like")
if len(nodes) == 0:
return []
diff --git a/flopy/utils/lgrutil.py b/flopy/utils/lgrutil.py
index 30c559f73..f382c97eb 100644
--- a/flopy/utils/lgrutil.py
+++ b/flopy/utils/lgrutil.py
@@ -181,25 +181,23 @@ def __init__(
self.yllp = yllp
# child grid properties
- self.nplbeg = idxl.min()
- self.nplend = idxl.max()
- self.npcbeg = idxc.min()
- self.npcend = idxc.max()
- self.nprbeg = idxr.min()
- self.nprend = idxr.max()
+ self.nplbeg = int(idxl.min())
+ self.nplend = int(idxl.max())
+ self.npcbeg = int(idxc.min())
+ self.npcend = int(idxc.max())
+ self.nprbeg = int(idxr.min())
+ self.nprend = int(idxr.max())
# child grid dimensions
- self.nlay = self.ncppl.sum()
+ self.nlay = int(self.ncppl.sum())
self.nrow = (self.nprend - self.nprbeg + 1) * ncpp
self.ncol = (self.npcend - self.npcbeg + 1) * ncpp
# assign child properties
self.delr, self.delc = self.get_delr_delc()
self.top, self.botm = self.get_top_botm()
- self.xll = xllp + self.delrp[0 : self.npcbeg].sum()
- self.yll = yllp + self.delcp[self.nprend + 1 :].sum()
-
- return
+ self.xll = xllp + float(self.delrp[0 : self.npcbeg].sum())
+ self.yll = yllp + float(self.delcp[self.nprend + 1 :].sum())
def get_shape(self):
"""
@@ -232,13 +230,13 @@ def get_delr_delc(self):
jstart = 0
jend = self.ncpp
for j in range(self.npcbeg, self.npcend + 1):
- delr[jstart:jend] = self.delrp[j] / self.ncpp
+ delr[jstart:jend] = float(self.delrp[j]) / self.ncpp
jstart = jend
jend = jstart + self.ncpp
istart = 0
iend = self.ncpp
for i in range(self.nprbeg, self.nprend + 1):
- delc[istart:iend] = self.delcp[i] / self.ncpp
+ delc[istart:iend] = float(self.delcp[i]) / self.ncpp
istart = iend
iend = istart + self.ncpp
return delr, delc
@@ -252,7 +250,7 @@ def get_top_botm(self):
botm = np.zeros((self.nlay + 1, self.nrow, self.ncol), dtype=float)
for ip in range(self.nprbeg, self.nprend + 1):
for jp in range(self.npcbeg, self.npcend + 1):
- top = pbotm[0, ip, jp]
+ top = float(pbotm[0, ip, jp])
icrowstart = (ip - self.nprbeg) * self.ncpp
icrowend = icrowstart + self.ncpp
iccolstart = (jp - self.npcbeg) * self.ncpp
@@ -260,8 +258,8 @@ def get_top_botm(self):
botm[0, icrowstart:icrowend, iccolstart:iccolend] = top
kc = 1
for kp in range(self.nplbeg, self.nplend + 1):
- top = pbotm[kp, ip, jp]
- bot = pbotm[kp + 1, ip, jp]
+ top = float(pbotm[kp, ip, jp])
+ bot = float(pbotm[kp + 1, ip, jp])
dz = (top - bot) / self.ncppl[kp]
for _ in range(self.ncppl[kp]):
botm[kc, icrowstart:icrowend, iccolstart:iccolend] = (
@@ -303,7 +301,7 @@ def get_replicated_parent_array(self, parent_array):
icrowend = icrowstart + self.ncpp
iccolstart = (jp - self.npcbeg) * self.ncpp
iccolend = iccolstart + self.ncpp
- value = parent_array[ip, jp]
+ value = int(parent_array[ip, jp])
child_array[icrowstart:icrowend, iccolstart:iccolend] = value
return child_array
@@ -477,28 +475,28 @@ def get_exchange_data(self, angldegx=False, cdist=False):
cl2 = None
hwva = None
- tpp = topp[ip, jp]
- btp = botp[kp, ip, jp]
+ tpp = float(topp[ip, jp])
+ btp = float(botp[kp, ip, jp])
if kp > 0:
- tpp = botp[kp - 1, ip, jp]
+ tpp = float(botp[kp - 1, ip, jp])
- tpc = topc[ic, jc]
- btc = botc[kc, ic, jc]
+ tpc = float(topc[ic, jc])
+ btc = float(botc[kc, ic, jc])
if kc > 0:
- tpc = botc[kc - 1, ic, jc]
+ tpc = float(botc[kc - 1, ic, jc])
if ihc == 0:
cl1 = 0.5 * (tpp - btp)
cl2 = 0.5 * (tpc - btc)
- hwva = delrc[jc] * delcc[ic]
+ hwva = float(delrc[jc]) * float(delcc[ic])
else:
if abs(idir) == 1:
- cl1 = 0.5 * delrp[jp]
- cl2 = 0.5 * delrc[jc]
- hwva = delcc[ic]
+ cl1 = 0.5 * float(delrp[jp])
+ cl2 = 0.5 * float(delrc[jc])
+ hwva = float(delcc[ic])
elif abs(idir) == 2:
- cl1 = 0.5 * delcp[ip]
- cl2 = 0.5 * delcc[ic]
+ cl1 = 0.5 * float(delcp[ip])
+ cl2 = 0.5 * float(delcc[ic])
hwva = delrc[jc]
# connection distance
@@ -507,17 +505,24 @@ def get_exchange_data(self, angldegx=False, cdist=False):
if abs(idir) == 3:
cd = cl1 + cl2
else:
- x1 = xc[ic, jc]
- y1 = yc[ic, jc]
- x2 = xp[ip, jp]
- y2 = yp[ip, jp]
+ x1 = float(xc[ic, jc])
+ y1 = float(yc[ic, jc])
+ x2 = float(xp[ip, jp])
+ y2 = float(yp[ip, jp])
cd = np.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
- exg = [(kp, ip, jp), (kc, ic, jc), ihc, cl1, cl2, hwva]
+ exg = [
+ (kp, ip, jp),
+ (kc, ic, jc),
+ ihc,
+ cl1,
+ cl2,
+ hwva,
+ ]
if angldegx:
- exg.append(angle)
+ exg.append(float(angle))
if cdist:
- exg.append(cd)
+ exg.append(float(cd))
exglist.append(exg)
return exglist
diff --git a/flopy/utils/mflistfile.py b/flopy/utils/mflistfile.py
index b24cab7a2..38d4b2193 100644
--- a/flopy/utils/mflistfile.py
+++ b/flopy/utils/mflistfile.py
@@ -706,7 +706,7 @@ def _set_entries(self):
for entry in self.entries:
incdict[entry] = []
cumdict[entry] = []
- null_entries[entry] = np.NaN
+ null_entries[entry] = np.nan
self.null_entries = [null_entries, null_entries]
return incdict, cumdict
@@ -863,12 +863,12 @@ def _parse_budget_line(self, line):
cumu = float(cu_str)
except:
if "NAN" in cu_str.strip().upper():
- cumu = np.NaN
+ cumu = np.nan
try:
flux = float(fx_str)
except:
if "NAN" in fx_str.strip().upper():
- flux = np.NaN
+ flux = np.nan
return entry, flux, cumu
def _get_totim(self, ts, sp, seekpoint):
@@ -883,7 +883,7 @@ def _get_totim(self, ts, sp, seekpoint):
"end of file found while seeking budget "
"information for ts,sp: {} {}".format(ts, sp)
)
- return np.NaN, np.NaN, np.NaN
+ return np.nan, np.nan, np.nan
elif (
ihead == 2
and "SECONDS MINUTES HOURS DAYS YEARS"
@@ -902,22 +902,22 @@ def _get_totim(self, ts, sp, seekpoint):
line = self.f.readline()
if translen is None:
print("error parsing translen for ts,sp", ts, sp)
- return np.NaN, np.NaN, np.NaN
+ return np.nan, np.nan, np.nan
tslen = self._parse_time_line(line)
if tslen is None:
print("error parsing tslen for ts,sp", ts, sp)
- return np.NaN, np.NaN, np.NaN
+ return np.nan, np.nan, np.nan
sptim = self._parse_time_line(self.f.readline())
if sptim is None:
print("error parsing sptim for ts,sp", ts, sp)
- return np.NaN, np.NaN, np.NaN
+ return np.nan, np.nan, np.nan
totim = self._parse_time_line(self.f.readline())
if totim is None:
print("error parsing totim for ts,sp", ts, sp)
- return np.NaN, np.NaN, np.NaN
+ return np.nan, np.nan, np.nan
return tslen, sptim, totim
def _parse_time_line(self, line):
diff --git a/flopy/utils/modpathfile.py b/flopy/utils/modpathfile.py
index 76b8c6ed1..813160c5d 100644
--- a/flopy/utils/modpathfile.py
+++ b/flopy/utils/modpathfile.py
@@ -1,228 +1,106 @@
"""
-Module to read MODPATH output files. The module contains two
-important classes that can be accessed by the user.
-
-* EndpointFile (ascii endpoint file)
-* PathlineFile (ascii pathline file)
-
+Support for MODPATH output files.
"""
import itertools
import os
-from pathlib import Path
-from typing import Union
+from typing import List, Optional, Tuple, Union
import numpy as np
-from numpy.lib.recfunctions import append_fields, repack_fields, stack_arrays
-
-from ..utils.flopy_io import loadtxt
-
-
-class _ModpathSeries:
- """
- Base class for PathlineFile and TimeseriesFile objects.
-
- This class served to reduce the amount of duplicated code and
- increase maintainability of the modpath output methods
-
- Parameters
- ----------
- filename : str or PathLike
- Path of pathline or modpath file
- verbose : bool
- Write information to the screen. Default is False
- output_type : str
- pathline or timeseries file type
-
- """
-
- def __init__(self, filename, verbose=False, output_type="pathline"):
- self.fname = Path(filename).expanduser().absolute()
- self.verbose = verbose
- self.output_type = output_type.upper()
-
- self._build_index()
-
- # set output type
- self.outdtype = self._get_outdtype()
-
- def _build_index(self):
- """
- Set position of the start of the pathline data.
- """
- compact = False
- self.skiprows = 0
- self.file = open(self.fname, "r")
- while True:
- line = self.file.readline()
- if isinstance(line, bytes):
- line = line.decode()
- if self.skiprows < 1:
- if f"MODPATH_{self.output_type}_FILE 6" in line.upper():
- self.version = 6
- elif (
- f"MODPATH_{self.output_type}_FILE 7"
- in line.upper()
- ):
- self.version = 7
- elif "MODPATH 5.0" in line.upper():
- self.version = 5
- if "COMPACT" in line.upper():
- compact = True
- elif "MODPATH Version 3.00" in line.upper():
- self.version = 3
- else:
- self.version = None
- if self.version is None:
- errmsg = f"{self.fname} is not a valid {self.output_type.lower()} file"
- raise Exception(errmsg)
- self.skiprows += 1
- if self.version == 6 or self.version == 7:
- if "end header" in line.lower():
- break
- elif self.version == 3 or self.version == 5:
- break
+from numpy.lib.recfunctions import append_fields, repack_fields
- # set compact
- self.compact = compact
-
- # return to start of file
- self.file.seek(0)
-
- def _get_outdtype(self):
- outdtype = np.dtype(
- [
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("time", np.float32),
- ("k", np.int32),
- ("particleid", np.int32),
- ]
- )
- return outdtype
-
- def get_maxid(self):
- """
- Get the maximum timeseries number in the file timeseries file
-
- Returns
- ----------
- out : int
- Maximum pathline number.
-
- """
- return self._data["particleid"].max()
+from flopy.utils.particletrackfile import ParticleTrackFile
- def get_maxtime(self):
- """
- Get the maximum time in pathline file
-
- Returns
- ----------
- out : float
- Maximum pathline time.
-
- """
- return self._data["time"].max()
-
- def get_data(self, partid=0, totim=None, ge=True):
- """
- get pathline data from the pathline file for a single pathline.
-
- Parameters
- ----------
- partid : int
- The zero-based particle id
- totim : float
- The simulation time.
- ge : bool
- Boolean that determines if pathline times greater than or equal
- to or less than or equal to totim.
-
- Returns
- ----------
- ra : np.recarray
- Recarray with the x, y, z, time, k, and particleid.
-
- """
- ra = self._data
- if totim is not None:
- if ge:
- idx = np.where(
- (ra["time"] >= totim) & (ra["particleid"] == partid)
- )[0]
- else:
- idx = np.where(
- (ra["time"] <= totim) & (ra["particleid"] == partid)
- )[0]
- else:
- idx = np.where(ra["particleid"] == partid)[0]
- ra = ra[idx]
- return ra[["x", "y", "z", "time", "k", "particleid"]]
-
- def get_alldata(self, totim=None, ge=True):
- """
- get data from the output file for all particles and all times.
-
- Parameters
- ----------
- totim : float
- The simulation time.
- ge : bool
- Boolean that determines if pathline times greater than or equal
- to or less than or equal to totim.
+from ..utils.flopy_io import loadtxt
- Returns
- ----------
- plist : list of numpy record arrays
- A list of numpy recarrays
- """
- ra = self._data
- if totim is not None:
- if ge:
- idx = np.where(ra["time"] >= totim)[0]
- else:
- idx = np.where(ra["time"] <= totim)[0]
- if len(idx) > 0:
- ra = ra[idx]
- ra = ra[["x", "y", "z", "time", "k", "particleid"]]
- return [ra[ra["particleid"] == i] for i in range(self.nid.size)]
+class ModpathFile(ParticleTrackFile):
+ """Provides MODPATH output file support."""
- def get_destination_data(self, dest_cells, to_recarray=True):
- """
- Get data for set of destination cells.
+ def __init__(
+ self, filename: Union[str, os.PathLike], verbose: bool = False
+ ):
+ super().__init__(filename, verbose)
+ self.output_type = self.__class__.__name__.lower().replace("file", "")
+ (
+ self.modpath,
+ self.compact,
+ self.skiprows,
+ self.version,
+ self.direction,
+ ) = self.parse(filename, self.output_type)
+
+ @staticmethod
+ def parse(
+ file_path: Union[str, os.PathLike], file_type: str
+ ) -> Tuple[bool, int, int, Optional[int]]:
+ """
+ Extract preliminary information from a MODPATH output file:
+ - whether in compact format
+ - how many rows to skip
+ - the MODPATH version
Parameters
----------
- dest_cells : list or array of tuples
- (k, i, j) of each destination cell for MODPATH versions less than
- MODPATH 7 or node number of each destination cell. (zero based)
- to_recarray : bool
- Boolean that controls returned series. If to_recarray is True,
- a single recarray with all of the pathlines that intersect
- dest_cells are returned. If to_recarray is False, a list of
- recarrays (the same form as returned by get_alldata method)
- that intersect dest_cells are returned (default is False).
+ file_path : str or PathLike
+ The output file path
+ file_type : str
+ The output file type: pathline, endpoint, or timeseries
Returns
-------
- series : np.recarray
- Slice of data array (e.g. PathlineFile._data, TimeseriesFile._data)
- containing endpoint, pathline, or timeseries data that intersect
- (k,i,j) or (node) dest_cells.
-
+ out : bool, int, int
+ A tuple (compact, skiprows, version)
"""
- # create local copy of _data
- ra = np.array(self._data)
+ modpath = True
+ compact = False
+ idx = 0
+ skiprows = 0
+ version = None
+ direction = None
+ with open(file_path, "r") as f:
+ while True:
+ line = f.readline()
+ if isinstance(line, bytes):
+ line = line.decode()
+ if skiprows < 1:
+ if f"MODPATH_{file_type.upper()}_FILE 6" in line.upper():
+ version = 6
+ elif (
+ f"MODPATH_{file_type.upper()}_FILE 7"
+ in line.upper()
+ ):
+ version = 7
+ elif "MODPATH 5.0" in line.upper():
+ version = 5
+ if "COMPACT" in line.upper():
+ compact = True
+ elif "MODPATH Version 3.00" in line.upper():
+ version = 3
+ if version is None:
+ modpath = False
+ skiprows += 1
+ if version in [6, 7]:
+ if file_type.lower() == "endpoint":
+ if idx == 1:
+ direction = 1
+ if int(line.strip()[0]) == 2:
+ direction = -1
+ idx += 1
+ if "end header" in line.lower():
+ break
+ else:
+ break
- # find the intersection of pathlines and dest_cells
- # convert dest_cells to same dtype for comparison
+ return modpath, compact, skiprows, version, direction
+
+ def intersect(
+ self, cells, to_recarray
+ ) -> Union[List[np.recarray], np.recarray]:
if self.version < 7:
try:
- raslice = ra[["k", "i", "j"]]
+ raslice = self._data[["k", "i", "j"]]
except (KeyError, ValueError):
raise KeyError(
"could not extract 'k', 'i', and 'j' keys "
@@ -230,258 +108,63 @@ def get_destination_data(self, dest_cells, to_recarray=True):
)
else:
try:
- raslice = ra[["node"]]
+ raslice = self._data[["node"]]
except (KeyError, ValueError):
msg = "could not extract 'node' key from {} data".format(
self.output_type.lower()
)
raise KeyError(msg)
- if isinstance(dest_cells, (list, tuple)):
- allint = all(isinstance(el, int) for el in dest_cells)
+ if isinstance(cells, (list, tuple)):
+ allint = all(isinstance(el, int) for el in cells)
# convert to a list of tuples
if allint:
t = []
- for el in dest_cells:
+ for el in cells:
t.append((el,))
- dest_cells = t
+ cells = t
- dest_cells = np.array(dest_cells, dtype=raslice.dtype)
- inds = np.in1d(raslice, dest_cells)
- epdest = ra[inds].copy().view(np.recarray)
+ cells = np.array(cells, dtype=raslice.dtype)
+ inds = np.in1d(raslice, cells)
+ epdest = self._data[inds].copy().view(np.recarray)
if to_recarray:
# use particle ids to get the rest of the paths
- inds = np.in1d(ra["particleid"], epdest.particleid)
- series = ra[inds].copy()
+ inds = np.in1d(self._data["particleid"], epdest.particleid)
+ series = self._data[inds].copy()
series.sort(order=["particleid", "time"])
series = series.view(np.recarray)
else:
- # get list of unique particleids in selection
+ # collect unique particleids in selection
partids = np.unique(epdest["particleid"])
-
- # build list of unique particleids in selection
series = [self.get_data(partid) for partid in partids]
return series
- def write_shapefile(
- self,
- data=None,
- one_per_particle=True,
- direction="ending",
- shpname="endpoints.shp",
- mg=None,
- crs=None,
- **kwargs,
- ):
- """
- Write pathlines or timeseries to a shapefile
-
- data : np.recarray
- Record array of same form as that returned by
- get_alldata(). (if none, get_alldata() is exported).
- one_per_particle : boolean (default True)
- True writes a single LineString with a single set of attribute
- data for each particle. False writes a record/geometry for each
- pathline segment (each row in the PathLine file). This option can
- be used to visualize attribute information (time, model layer,
- etc.) across a pathline in a GIS.
- direction : str
- String defining if starting or ending particle locations should be
- included in shapefile attribute information. Only used if
- one_per_particle=False. (default is 'ending')
- shpname : str
- File path for shapefile
- mg : flopy.discretization.grid instance
- Used to scale and rotate Global x,y,z values.
- crs : pyproj.CRS, int, str, optional
- Coordinate reference system (CRS) for the model grid
- (must be projected; geographic CRS are not supported).
- The value can be anything accepted by
- :meth:`pyproj.CRS.from_user_input() `,
- such as an authority string (eg "EPSG:26916") or a WKT string.
- kwargs : keyword arguments to flopy.export.shapefile_utils.recarray2shp
-
- .. deprecated:: 3.5
- The following keyword options will be removed for FloPy 3.6:
-
- - ``epsg`` (int): use ``crs`` instead.
-
- """
- from ..discretization import StructuredGrid
- from ..export.shapefile_utils import recarray2shp
- from ..utils import geometry
- from ..utils.geometry import LineString
-
- series = data
- if series is None:
- series = self._data.view(np.recarray)
- else:
- # convert pathline list to a single recarray
- if isinstance(series, list):
- s = series[0]
- print(s.dtype)
- for n in range(1, len(series)):
- s = stack_arrays((s, series[n]))
- series = s.view(np.recarray)
-
- series = series.copy()
- series.sort(order=["particleid", "time"])
-
- if mg is None:
- raise ValueError("A modelgrid object was not provided.")
-
- particles = np.unique(series.particleid)
- geoms = []
-
- # create dtype with select attributes in pth
- names = series.dtype.names
- dtype = []
- atts = ["particleid", "particlegroup", "time", "k", "i", "j", "node"]
- for att in atts:
- if att in names:
- t = np.int32
- if att == "time":
- t = np.float32
- dtype.append((att, t))
- dtype = np.dtype(dtype)
-
- # reset names to the selected names in the created dtype
- names = dtype.names
-
- # 1 geometry for each path
- if one_per_particle:
- loc_inds = 0
- if direction == "ending":
- loc_inds = -1
-
- sdata = []
- for pid in particles:
- ra = series[series.particleid == pid]
-
- x, y = geometry.transform(
- ra.x, ra.y, mg.xoffset, mg.yoffset, mg.angrot_radians
- )
- z = ra.z
- geoms.append(LineString(list(zip(x, y, z))))
-
- t = [pid]
- if "particlegroup" in names:
- t.append(ra.particlegroup[0])
- t.append(ra.time.max())
- if "node" in names:
- t.append(ra.node[loc_inds])
- else:
- if "k" in names:
- t.append(ra.k[loc_inds])
- if "i" in names:
- t.append(ra.i[loc_inds])
- if "j" in names:
- t.append(ra.j[loc_inds])
- sdata.append(tuple(t))
-
- sdata = np.array(sdata, dtype=dtype).view(np.recarray)
-
- # geometry for each row in PathLine file
- else:
- dtype = series.dtype
- sdata = []
- for pid in particles:
- ra = series[series.particleid == pid]
- if mg is not None:
- x, y = geometry.transform(
- ra.x, ra.y, mg.xoffset, mg.yoffset, mg.angrot_radians
- )
- else:
- x, y = geometry.transform(ra.x, ra.y, 0, 0, 0)
- z = ra.z
- geoms += [
- LineString(
- [(x[i - 1], y[i - 1], z[i - 1]), (x[i], y[i], z[i])]
- )
- for i in np.arange(1, (len(ra)))
- ]
- sdata += ra[1:].tolist()
- sdata = np.array(sdata, dtype=dtype).view(np.recarray)
-
- # convert back to one-based
- for n in set(self.kijnames).intersection(set(sdata.dtype.names)):
- sdata[n] += 1
-
- # write the final recarray to a shapefile
- recarray2shp(sdata, geoms, shpname=shpname, crs=crs, **kwargs)
-
-class PathlineFile(_ModpathSeries):
+class PathlineFile(ModpathFile):
"""
- PathlineFile Class.
+ Particle pathline file.
Parameters
----------
filename : str or PathLike
Path of the pathline file
verbose : bool
- Write information to the screen. Default is False.
+ Show verbose output. Default is False.
Examples
--------
>>> import flopy
- >>> pthobj = flopy.utils.PathlineFile('model.mppth')
- >>> p1 = pthobj.get_data(partid=1)
+ >>> pl_file = flopy.utils.PathlineFile('model.mppth')
+ >>> pl1 = pthobj.get_data(partid=1)
"""
- kijnames = [
- "k",
- "i",
- "j",
- "node",
- "particleid",
- "particlegroup",
- "linesegmentindex",
- "particleidloc",
- "sequencenumber",
- ]
-
- def __init__(self, filename: Union[str, os.PathLike], verbose=False):
- """
- Class constructor.
-
- """
-
- super().__init__(filename, verbose=verbose, output_type="pathline")
-
- # set data dtype and read pathline data
- if self.version == 7:
- self.dtype, self._data = self._get_mp7data()
- else:
- self.dtype = self._get_dtypes()
- self._data = loadtxt(
- self.file, dtype=self.dtype, skiprows=self.skiprows
- )
-
- # convert layer, row, and column indices; particle id and group; and
- # line segment indices to zero-based
- for n in self.kijnames:
- if n in self._data.dtype.names:
- self._data[n] -= 1
-
- # set number of particle ids
- self.nid = np.unique(self._data["particleid"])
-
- # sort data
- self._data.sort(order=["particleid", "time"])
-
- # close the input file
- self.file.close()
-
- def _get_dtypes(self):
- """
- Build numpy dtype for the MODPATH 6 pathline file.
- """
- if self.version == 3 or self.version == 5:
- dtype = np.dtype(
+ dtypes = {
+ **dict.fromkeys(
+ [3, 5],
+ np.dtype(
[
("particleid", np.int32),
("x", np.float32),
@@ -494,52 +177,29 @@ def _get_dtypes(self):
("k", np.int32),
("cumulativetimestep", np.int32),
]
- )
- elif self.version == 6:
- dtype = np.dtype(
- [
- ("particleid", np.int32),
- ("particlegroup", np.int32),
- ("timepointindex", np.int32),
- ("cumulativetimestep", np.int32),
- ("time", np.float32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("k", np.int32),
- ("i", np.int32),
- ("j", np.int32),
- ("grid", np.int32),
- ("xloc", np.float32),
- ("yloc", np.float32),
- ("zloc", np.float32),
- ("linesegmentindex", np.int32),
- ]
- )
- elif self.version == 7:
- raise TypeError(
- "_get_dtypes() should not be called for "
- "MODPATH 7 pathline files"
- )
- return dtype
-
- def _get_mp7data(self):
- dtyper = np.dtype(
+ ),
+ ),
+ 6: np.dtype(
[
- ("node", np.int32),
+ ("particleid", np.int32),
+ ("particlegroup", np.int32),
+ ("timepointindex", np.int32),
+ ("cumulativetimestep", np.int32),
+ ("time", np.float32),
("x", np.float32),
("y", np.float32),
("z", np.float32),
- ("time", np.float32),
+ ("k", np.int32),
+ ("i", np.int32),
+ ("j", np.int32),
+ ("grid", np.int32),
("xloc", np.float32),
("yloc", np.float32),
("zloc", np.float32),
- ("k", np.int32),
- ("stressperiod", np.int32),
- ("timestep", np.int32),
+ ("linesegmentindex", np.int32),
]
- )
- dtype = np.dtype(
+ ),
+ 7: np.dtype(
[
("particleid", np.int32),
("particlegroup", np.int32),
@@ -557,152 +217,115 @@ def _get_mp7data(self):
("stressperiod", np.int32),
("timestep", np.int32),
]
- )
- idx = 0
- part_dict = {}
- ndata = 0
- while True:
- if idx == 0:
- for n in range(self.skiprows):
- line = self.file.readline()
- # read header line
- try:
- line = self.file.readline().strip()
- if self.verbose:
- print(line)
- if len(line) < 1:
- break
- except:
- break
- t = [int(s) for j, s in enumerate(line.split()) if j < 4]
- sequencenumber, group, particleid, pathlinecount = t[0:4]
- ndata += pathlinecount
- # read in the particle data
- d = np.loadtxt(
- itertools.islice(self.file, 0, pathlinecount), dtype=dtyper
- )
- key = (idx, sequencenumber, group, particleid, pathlinecount)
- part_dict[key] = d.copy()
- idx += 1
-
- # create data array
- data = np.zeros(ndata, dtype=dtype)
-
- # fill data
- ipos0 = 0
- for key, value in part_dict.items():
- idx, sequencenumber, group, particleid, pathlinecount = key[0:5]
- ipos1 = ipos0 + pathlinecount
- # fill constant items for particle
- # particleid is not necessarily unique for all pathlines - use
- # sequencenumber which is unique
- data["particleid"][ipos0:ipos1] = sequencenumber
- # set particlegroup and sequence number
- data["particlegroup"][ipos0:ipos1] = group
- data["sequencenumber"][ipos0:ipos1] = sequencenumber
- # save particleidloc to particleid
- data["particleidloc"][ipos0:ipos1] = particleid
- # fill particle data
- for name in value.dtype.names:
- data[name][ipos0:ipos1] = value[name]
- ipos0 = ipos1
-
- return dtype, data
-
- def get_maxid(self):
- """
- Get the maximum pathline number in the file pathline file
-
- Returns
- ----------
- out : int
- Maximum pathline number.
-
- """
- return super().get_maxid()
-
- def get_maxtime(self):
- """
- Get the maximum time in pathline file
-
- Returns
- ----------
- out : float
- Maximum pathline time.
-
- """
- return super().get_maxtime()
-
- def get_data(self, partid=0, totim=None, ge=True):
- """
- get pathline data from the pathline file for a single pathline.
-
- Parameters
- ----------
- partid : int
- The zero-based particle id. The first record is record 0.
- totim : float
- The simulation time. All pathline points for particle partid
- that are greater than or equal to (ge=True) or less than or
- equal to (ge=False) totim will be returned. Default is None
- ge : bool
- Boolean that determines if pathline times greater than or equal
- to or less than or equal to totim is used to create a subset
- of pathlines. Default is True.
-
- Returns
- ----------
- ra : numpy record array
- A numpy recarray with the x, y, z, time, k, and particleid for
- pathline partid.
-
-
- See Also
- --------
+ ),
+ }
- Notes
- -----
-
- Examples
- --------
-
- >>> import flopy.utils.modpathfile as mpf
- >>> pthobj = flopy.utils.PathlineFile('model.mppth')
- >>> p1 = pthobj.get_data(partid=1)
+ kijnames = [
+ "k",
+ "i",
+ "j",
+ "node",
+ "particleid",
+ "particlegroup",
+ "linesegmentindex",
+ "particleidloc",
+ "sequencenumber",
+ ]
- """
- return super().get_data(partid=partid, totim=totim, ge=ge)
+ def __init__(
+ self, filename: Union[str, os.PathLike], verbose: bool = False
+ ):
+ super().__init__(filename, verbose=verbose)
+ self.dtype, self._data = self._load()
+ self.nid = np.unique(self._data["particleid"])
- def get_alldata(self, totim=None, ge=True):
- """
- get pathline data from the pathline file for all pathlines and all times.
+ def _load(self) -> Tuple[np.dtype, np.ndarray]:
+ dtype = self.dtypes[self.version]
+ if self.version == 7:
+ dtyper = np.dtype(
+ [
+ ("node", np.int32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("time", np.float32),
+ ("xloc", np.float32),
+ ("yloc", np.float32),
+ ("zloc", np.float32),
+ ("k", np.int32),
+ ("stressperiod", np.int32),
+ ("timestep", np.int32),
+ ]
+ )
+ idx = 0
+ particle_pathlines = {}
+ nrows = 0
+ with open(self.fname) as f:
+ while True:
+ if idx == 0:
+ for n in range(self.skiprows):
+ line = f.readline()
+ # read header line
+ try:
+ line = f.readline().strip()
+ if self.verbose:
+ print(line)
+ if len(line) < 1:
+ break
+ except:
+ break
+ t = [int(s) for j, s in enumerate(line.split()) if j < 4]
+ sequencenumber, group, particleid, pathlinecount = t[0:4]
+ nrows += pathlinecount
+ # read in the particle data
+ d = np.loadtxt(
+ itertools.islice(f, 0, pathlinecount), dtype=dtyper
+ )
+ key = (
+ idx,
+ sequencenumber,
+ group,
+ particleid,
+ pathlinecount,
+ )
+ particle_pathlines[key] = d.copy()
+ idx += 1
- Parameters
- ----------
- totim : float
- The simulation time. All pathline points for particle partid
- that are greater than or equal to (ge=True) or less than or
- equal to (ge=False) totim will be returned. Default is None
- ge : bool
- Boolean that determines if pathline times greater than or equal
- to or less than or equal to totim is used to create a subset
- of pathlines. Default is True.
+ # create data array
+ data = np.zeros(nrows, dtype=dtype)
- Returns
- ----------
- plist : a list of numpy record array
- A list of numpy recarrays with the x, y, z, time, k, and particleid
- for all pathlines.
+ # fill data
+ ipos0 = 0
+ for key, value in particle_pathlines.items():
+ idx, sequencenumber, group, particleid, pathlinecount = key[
+ 0:5
+ ]
+ ipos1 = ipos0 + pathlinecount
+ # fill constant items for particle
+ # particleid is not necessarily unique for all pathlines - use
+ # sequencenumber which is unique
+ data["particleid"][ipos0:ipos1] = sequencenumber
+ # set particlegroup and sequence number
+ data["particlegroup"][ipos0:ipos1] = group
+ data["sequencenumber"][ipos0:ipos1] = sequencenumber
+ # save particleidloc to particleid
+ data["particleidloc"][ipos0:ipos1] = particleid
+ # fill particle data
+ for name in value.dtype.names:
+ data[name][ipos0:ipos1] = value[name]
+ ipos0 = ipos1
+ else:
+ data = loadtxt(self.fname, dtype=dtype, skiprows=self.skiprows)
- Examples
- --------
+ # convert indices to zero-based
+ for n in self.kijnames:
+ if n in data.dtype.names:
+ data[n] -= 1
- >>> import flopy.utils.modpathfile as mpf
- >>> pthobj = flopy.utils.PathlineFile('model.mppth')
- >>> p = pthobj.get_alldata()
+ # sort by particle ID and time
+ data.sort(order=["particleid", "time"])
- """
- return super().get_alldata(totim=totim, ge=ge)
+ return dtype, data
def get_destination_pathline_data(self, dest_cells, to_recarray=False):
"""
@@ -722,7 +345,7 @@ def get_destination_pathline_data(self, dest_cells, to_recarray=False):
Returns
-------
- pthldest : np.recarray
+ np.recarray
Slice of pathline data array (e.g. PathlineFile._data)
containing only pathlines that pass through (k,i,j) or (node)
dest_cells.
@@ -742,6 +365,7 @@ def get_destination_pathline_data(self, dest_cells, to_recarray=False):
def write_shapefile(
self,
+ data=None,
pathline_data=None,
one_per_particle=True,
direction="ending",
@@ -751,16 +375,23 @@ def write_shapefile(
**kwargs,
):
"""
- Write pathlines to a shapefile
+ Write pathlines to a shapefile.
- pathline_data : np.recarray
+ Parameters
+ ----------
+ data : np.recarray
Record array of same form as that returned by
- PathlineFile.get_alldata(). (if none, PathlineFile.get_alldata()
- is exported).
+ .get_alldata() (if None, .get_alldata() is exported).
+ timeseries_data : np.recarray
+ Record array of same form as that returned by
+ .get_alldata() (if None, .get_alldata() is exported).
+
+ .. deprecated:: 3.7
+ The ``timeseries_data`` option will be removed for FloPy 4. Use ``data`` instead.
one_per_particle : boolean (default True)
True writes a single LineString with a single set of attribute
data for each particle. False writes a record/geometry for each
- pathline segment (each row in the PathLine file). This option can
+ pathline segment (each row in the Timeseries file). This option can
be used to visualize attribute information (time, model layer,
etc.) across a pathline in a GIS.
direction : str
@@ -770,7 +401,7 @@ def write_shapefile(
shpname : str
File path for shapefile
mg : flopy.discretization.grid instance
- Used to scale and rotate Global x,y,z values in MODPATH Pathline
+ Used to scale and rotate Global x,y,z values in MODPATH Timeseries
file.
crs : pyproj.CRS, int, str, optional
Coordinate reference system (CRS) for the model grid
@@ -780,14 +411,13 @@ def write_shapefile(
such as an authority string (eg "EPSG:26916") or a WKT string.
kwargs : keyword arguments to flopy.export.shapefile_utils.recarray2shp
- .. deprecated:: 3.5
- The following keyword options will be removed for FloPy 3.6:
-
- - ``epsg`` (int): use ``crs`` instead.
-
+ .. deprecated:: 3.5
+ The following keyword options will be removed for FloPy 3.6:
+ - ``epsg`` (int): use ``crs`` instead.
"""
- super().write_shapefile(
- data=pathline_data,
+ ParticleTrackFile.write_shapefile(
+ self,
+ data=data if data is not None else pathline_data,
one_per_particle=one_per_particle,
direction=direction,
shpname=shpname,
@@ -797,27 +427,119 @@ def write_shapefile(
)
-class EndpointFile:
+class EndpointFile(ModpathFile):
"""
- EndpointFile Class.
+ Particle endpoint file.
Parameters
----------
- filename : string
- Name of the endpoint file
+ filename : str or PathLike
+ Path of the endpoint file
verbose : bool
- Write information to the screen. Default is False.
+ Show verbose output. Default is False.
Examples
--------
>>> import flopy
- >>> endobj = flopy.utils.EndpointFile('model.mpend')
- >>> e1 = endobj.get_data(partid=1)
-
+ >>> ep_file = flopy.utils.EndpointFile('model.mpend')
+ >>> ep1 = endobj.get_data(partid=1)
"""
+ dtypes = {
+ **dict.fromkeys(
+ [3, 5],
+ np.dtype(
+ [
+ ("zone", np.int32),
+ ("j", np.int32),
+ ("i", np.int32),
+ ("k", np.int32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("zloc", np.float32),
+ ("time", np.float32),
+ ("x0", np.float32),
+ ("y0", np.float32),
+ ("zloc0", np.float32),
+ ("j0", np.int32),
+ ("i0", np.int32),
+ ("k0", np.int32),
+ ("zone0", np.int32),
+ ("cumulativetimestep", np.int32),
+ ("ipcode", np.int32),
+ ("time0", np.float32),
+ ]
+ ),
+ ),
+ 6: np.dtype(
+ [
+ ("particleid", np.int32),
+ ("particlegroup", np.int32),
+ ("status", np.int32),
+ ("time0", np.float32),
+ ("time", np.float32),
+ ("initialgrid", np.int32),
+ ("k0", np.int32),
+ ("i0", np.int32),
+ ("j0", np.int32),
+ ("cellface0", np.int32),
+ ("zone0", np.int32),
+ ("xloc0", np.float32),
+ ("yloc0", np.float32),
+ ("zloc0", np.float32),
+ ("x0", np.float32),
+ ("y0", np.float32),
+ ("z0", np.float32),
+ ("finalgrid", np.int32),
+ ("k", np.int32),
+ ("i", np.int32),
+ ("j", np.int32),
+ ("cellface", np.int32),
+ ("zone", np.int32),
+ ("xloc", np.float32),
+ ("yloc", np.float32),
+ ("zloc", np.float32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("label", "|S40"),
+ ]
+ ),
+ 7: np.dtype(
+ [
+ ("particleid", np.int32),
+ ("particlegroup", np.int32),
+ ("particleidloc", np.int32),
+ ("status", np.int32),
+ ("time0", np.float32),
+ ("time", np.float32),
+ ("node0", np.int32),
+ ("k0", np.int32),
+ ("xloc0", np.float32),
+ ("yloc0", np.float32),
+ ("zloc0", np.float32),
+ ("x0", np.float32),
+ ("y0", np.float32),
+ ("z0", np.float32),
+ ("zone0", np.int32),
+ ("initialcellface", np.int32),
+ ("node", np.int32),
+ ("k", np.int32),
+ ("xloc", np.float32),
+ ("yloc", np.float32),
+ ("zloc", np.float32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("zone", np.int32),
+ ("cellface", np.int32),
+ ]
+ ),
+ }
+
kijnames = [
"k0",
"i0",
@@ -834,262 +556,42 @@ class EndpointFile:
"zone",
]
- def __init__(self, filename, verbose=False):
- """
- Class constructor.
+ def __init__(
+ self, filename: Union[str, os.PathLike], verbose: bool = False
+ ):
+ super().__init__(filename, verbose)
+ self.dtype, self._data = self._load()
+ self.nid = np.unique(self._data["particleid"])
- """
- self.fname = filename
- self.verbose = verbose
- self._build_index()
- self.dtype = self._get_dtypes()
- self._data = loadtxt(
- self.file, dtype=self.dtype, skiprows=self.skiprows
- )
- # add particleid if required
- self._add_particleid()
+ def _load(self) -> Tuple[np.dtype, np.ndarray]:
+ dtype = self.dtypes[self.version]
+ data = loadtxt(self.fname, dtype=dtype, skiprows=self.skiprows)
- # convert layer, row, and column indices; particle id and group; and
- # line segment indices to zero-based
+ # convert indices to zero-based
for n in self.kijnames:
- if n in self._data.dtype.names:
- self._data[n] -= 1
-
- # set number of particle ids
- self.nid = np.unique(self._data["particleid"]).shape[0]
-
- # close the input file
- self.file.close()
- return
-
- def _build_index(self):
- """
- Set position of the start of the pathline data.
- """
- self.skiprows = 0
- self.file = open(self.fname, "r")
- idx = 0
- while True:
- line = self.file.readline()
- if isinstance(line, bytes):
- line = line.decode()
- if self.skiprows < 1:
- if "MODPATH_ENDPOINT_FILE 6" in line.upper():
- self.version = 6
- elif "MODPATH_ENDPOINT_FILE 7" in line.upper():
- self.version = 7
- elif "MODPATH 5.0" in line.upper():
- self.version = 5
- elif "MODPATH Version 3.00" in line.upper():
- self.version = 3
- else:
- self.version = None
- if self.version is None:
- errmsg = f"{self.fname} is not a valid endpoint file"
- raise Exception(errmsg)
- self.skiprows += 1
- if self.version == 6 or self.version == 7:
- if idx == 1:
- t = line.strip()
- self.direction = 1
- if int(t[0]) == 2:
- self.direction = -1
- idx += 1
- if "end header" in line.lower():
- break
- else:
- break
- self.file.seek(0)
-
- if self.verbose:
- print(f"MODPATH version {self.version} endpoint file")
+ if n in data.dtype.names:
+ data[n] -= 1
- def _get_dtypes(self):
- """
- Build numpy dtype for the MODPATH 6 endpoint file.
- """
- if self.version == 3 or self.version == 5:
- dtype = self._get_mp35_dtype()
- elif self.version == 6:
- dtype = self._get_mp6_dtype()
- elif self.version == 7:
- dtype = self._get_mp7_dtype()
- return dtype
-
- def _get_mp35_dtype(self, add_id=False):
- dtype = [
- ("zone", np.int32),
- ("j", np.int32),
- ("i", np.int32),
- ("k", np.int32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("zloc", np.float32),
- ("time", np.float32),
- ("x0", np.float32),
- ("y0", np.float32),
- ("zloc0", np.float32),
- ("j0", np.int32),
- ("i0", np.int32),
- ("k0", np.int32),
- ("zone0", np.int32),
- ("cumulativetimestep", np.int32),
- ("ipcode", np.int32),
- ("time0", np.float32),
- ]
- if add_id:
- dtype.insert(0, ("particleid", np.int32))
- return np.dtype(dtype)
-
- def _get_mp6_dtype(self):
- dtype = [
- ("particleid", np.int32),
- ("particlegroup", np.int32),
- ("status", np.int32),
- ("time0", np.float32),
- ("time", np.float32),
- ("initialgrid", np.int32),
- ("k0", np.int32),
- ("i0", np.int32),
- ("j0", np.int32),
- ("cellface0", np.int32),
- ("zone0", np.int32),
- ("xloc0", np.float32),
- ("yloc0", np.float32),
- ("zloc0", np.float32),
- ("x0", np.float32),
- ("y0", np.float32),
- ("z0", np.float32),
- ("finalgrid", np.int32),
- ("k", np.int32),
- ("i", np.int32),
- ("j", np.int32),
- ("cellface", np.int32),
- ("zone", np.int32),
- ("xloc", np.float32),
- ("yloc", np.float32),
- ("zloc", np.float32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("label", "|S40"),
- ]
- return np.dtype(dtype)
-
- def _get_mp7_dtype(self):
- dtype = [
- ("particleid", np.int32),
- ("particlegroup", np.int32),
- ("particleidloc", np.int32),
- ("status", np.int32),
- ("time0", np.float32),
- ("time", np.float32),
- ("node0", np.int32),
- ("k0", np.int32),
- ("xloc0", np.float32),
- ("yloc0", np.float32),
- ("zloc0", np.float32),
- ("x0", np.float32),
- ("y0", np.float32),
- ("z0", np.float32),
- ("zone0", np.int32),
- ("initialcellface", np.int32),
- ("node", np.int32),
- ("k", np.int32),
- ("xloc", np.float32),
- ("yloc", np.float32),
- ("zloc", np.float32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("zone", np.int32),
- ("cellface", np.int32),
- ]
- return np.dtype(dtype)
-
- def _add_particleid(self):
# add particle ids for earlier version of MODPATH
if self.version < 6:
- # create particle ids
- shaped = self._data.shape[0]
- pids = np.arange(1, shaped + 1, 1, dtype=np.int32)
-
- # for numpy version 1.14 and higher
- self._data = append_fields(self._data, "particleid", pids)
- return
-
- def get_maxid(self):
- """
- Get the maximum endpoint particle id in the file endpoint file
-
- Returns
- ----------
- out : int
- Maximum endpoint particle id.
-
- """
- return np.unique(self._data["particleid"]).max()
-
- def get_maxtime(self):
- """
- Get the maximum time in the endpoint file
-
- Returns
- ----------
- out : float
- Maximum endpoint time.
+ shape = data.shape[0]
+ pids = np.arange(1, shape + 1, 1, dtype=np.int32)
+ data = append_fields(data, "particleid", pids)
- """
- return self._data["time"].max()
+ return dtype, data
def get_maxtraveltime(self):
"""
- Get the maximum travel time in the endpoint file
+ Get the maximum travel time.
Returns
----------
out : float
- Maximum endpoint travel time.
+ Maximum travel time.
"""
return (self._data["time"] - self._data["time0"]).max()
- def get_data(self, partid=0):
- """
- Get endpoint data from the endpoint file for a single particle.
-
- Parameters
- ----------
- partid : int
- The zero-based particle id. The first record is record 0.
- (default is 0)
-
- Returns
- ----------
- ra : numpy record array
- A numpy recarray with the endpoint particle data for
- endpoint partid.
-
-
- See Also
- --------
-
- Notes
- -----
-
- Examples
- --------
-
- >>> import flopy
- >>> endobj = flopy.utils.EndpointFile('model.mpend')
- >>> e1 = endobj.get_data(partid=1)
-
- """
- idx = self._data["particleid"] == partid
- ra = self._data[idx]
- return ra
-
def get_alldata(self):
"""
Get endpoint data from the endpoint file for all endpoints.
@@ -1099,7 +601,7 @@ def get_alldata(self):
Returns
----------
- ra : numpy record array
+ data : numpy record array
A numpy recarray with the endpoint particle data
@@ -1134,7 +636,7 @@ def get_destination_endpoint_data(self, dest_cells, source=False):
Returns
-------
- epdest : np.recarray
+ np.recarray
Slice of endpoint data array (e.g. EndpointFile.get_alldata)
containing only endpoint data with final locations in (k,i,j) or
(node) dest_cells.
@@ -1150,7 +652,7 @@ def get_destination_endpoint_data(self, dest_cells, source=False):
"""
# create local copy of _data
- ra = self.get_alldata()
+ data = self.get_alldata()
# find the intersection of endpoints and dest_cells
# convert dest_cells to same dtype for comparison
@@ -1160,7 +662,7 @@ def get_destination_endpoint_data(self, dest_cells, source=False):
else:
keys = ["k", "i", "j"]
try:
- raslice = repack_fields(ra[keys])
+ raslice = repack_fields(data[keys])
except (KeyError, ValueError):
raise KeyError(
"could not extract "
@@ -1173,7 +675,7 @@ def get_destination_endpoint_data(self, dest_cells, source=False):
else:
keys = ["node"]
try:
- raslice = repack_fields(ra[keys])
+ raslice = repack_fields(data[keys])
except (KeyError, ValueError):
msg = f"could not extract '{keys[0]}' key from endpoint data"
raise KeyError(msg)
@@ -1192,11 +694,11 @@ def get_destination_endpoint_data(self, dest_cells, source=False):
dest_cells = np.array(dest_cells, dtype=dtype)
inds = np.in1d(raslice, dest_cells)
- epdest = ra[inds].copy().view(np.recarray)
- return epdest
+ return data[inds].copy().view(np.recarray)
def write_shapefile(
self,
+ data=None,
endpoint_data=None,
shpname="endpoints.shp",
direction="ending",
@@ -1207,9 +709,15 @@ def write_shapefile(
"""
Write particle starting / ending locations to shapefile.
+ data : np.recarray
+ Record array of same form as that returned by EndpointFile.get_alldata.
+ (if none, EndpointFile.get_alldata() is exported).
endpoint_data : np.recarray
Record array of same form as that returned by EndpointFile.get_alldata.
(if none, EndpointFile.get_alldata() is exported).
+
+ .. deprecated:: 3.7
+ The ``endpoint_data`` option will be removed for FloPy 4. Use ``data`` instead.
shpname : str
File path for shapefile
direction : str
@@ -1226,10 +734,9 @@ def write_shapefile(
such as an authority string (eg "EPSG:26916") or a WKT string.
kwargs : keyword arguments to flopy.export.shapefile_utils.recarray2shp
- .. deprecated:: 3.5
- The following keyword options will be removed for FloPy 3.6:
-
- - ``epsg`` (int): use ``crs`` instead.
+ .. deprecated:: 3.5
+ The following keyword options will be removed for FloPy 3.6:
+ - ``epsg`` (int): use ``crs`` instead.
"""
from ..discretization import StructuredGrid
@@ -1237,7 +744,7 @@ def write_shapefile(
from ..utils import geometry
from ..utils.geometry import Point
- epd = endpoint_data.copy()
+ epd = (data if data is not None else endpoint_data).copy()
if epd is None:
epd = self.get_alldata()
@@ -1273,25 +780,81 @@ def write_shapefile(
recarray2shp(epd, geoms, shpname=shpname, crs=crs, **kwargs)
-class TimeseriesFile(_ModpathSeries):
+class TimeseriesFile(ModpathFile):
"""
- TimeseriesFile Class.
+ Particle timeseries file.
Parameters
----------
- filename : string
- Name of the timeseries file
+ filename : str or PathLike
+ Path of the timeseries file
verbose : bool
- Write information to the screen. Default is False.
+ Show verbose output. Default is False.
Examples
--------
>>> import flopy
- >>> tsobj = flopy.utils.TimeseriesFile('model.timeseries')
+ >>> ts_file = flopy.utils.TimeseriesFile('model.timeseries')
>>> ts1 = tsobj.get_data(partid=1)
"""
+ dtypes = {
+ **dict.fromkeys(
+ [3, 5],
+ np.dtype(
+ [
+ ("timestepindex", np.int32),
+ ("particleid", np.int32),
+ ("node", np.int32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("zloc", np.float32),
+ ("time", np.float32),
+ ("timestep", np.int32),
+ ]
+ ),
+ ),
+ 6: np.dtype(
+ [
+ ("timepointindex", np.int32),
+ ("timestep", np.int32),
+ ("time", np.float32),
+ ("particleid", np.int32),
+ ("particlegroup", np.int32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("grid", np.int32),
+ ("k", np.int32),
+ ("i", np.int32),
+ ("j", np.int32),
+ ("xloc", np.float32),
+ ("yloc", np.float32),
+ ("zloc", np.float32),
+ ]
+ ),
+ 7: np.dtype(
+ [
+ ("timepointindex", np.int32),
+ ("timestep", np.int32),
+ ("time", np.float32),
+ ("particleid", np.int32),
+ ("particlegroup", np.int32),
+ ("particleidloc", np.int32),
+ ("node", np.int32),
+ ("xloc", np.float32),
+ ("yloc", np.float32),
+ ("zloc", np.float32),
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("k", np.int32),
+ ]
+ ),
+ }
+
kijnames = [
"k",
"i",
@@ -1306,262 +869,40 @@ class TimeseriesFile(_ModpathSeries):
]
def __init__(self, filename, verbose=False):
- """
- Class constructor.
-
- """
- super().__init__(filename, verbose=verbose, output_type="timeseries")
-
- # set dtype
- self.dtype = self._get_dtypes()
-
- # read data
- self._data = loadtxt(
- self.file, dtype=self.dtype, skiprows=self.skiprows
- )
-
- # convert layer, row, and column indices; particle id and group; and
- # line segment indices to zero-based
- for n in self.kijnames:
- if n in self._data.dtype.names:
- self._data[n] -= 1
-
- # set number of particle ids
+ super().__init__(filename, verbose)
+ self.dtype, self._data = self._load()
self.nid = np.unique(self._data["particleid"])
- # sort data
- self._data.sort(order=["particleid", "time"])
-
- # close the input file
- self.file.close()
- return
-
- def _build_index(self):
- """
- Set position of the start of the timeseries data.
- """
- compact = False
- self.skiprows = 0
- self.file = open(self.fname, "r")
- while True:
- line = self.file.readline()
- if isinstance(line, bytes):
- line = line.decode()
- if self.skiprows < 1:
- if "MODPATH_TIMESERIES_FILE 6" in line.upper():
- self.version = 6
- elif "MODPATH_TIMESERIES_FILE 7" in line.upper():
- self.version = 7
- elif "MODPATH 5.0" in line.upper():
- self.version = 5
- if "COMPACT" in line.upper():
- compact = True
- elif "MODPATH Version 3.00" in line.upper():
- self.version = 3
- else:
- self.version = None
- if self.version is None:
- raise Exception(
- f"{self.fname} is not a valid timeseries file"
- )
- self.skiprows += 1
- if self.version == 6 or self.version == 7:
- if "end header" in line.lower():
- break
- elif self.version == 3 or self.version == 5:
- break
-
- # set compact
- self.compact = compact
-
- # return to the top of the file
- self.file.seek(0)
-
- def _get_dtypes(self):
- """
- Build numpy dtype for the MODPATH 6 timeseries file.
- """
- if self.version == 3 or self.version == 5:
- if self.compact:
- dtype = np.dtype(
- [
- ("timestepindex", np.int32),
- ("particleid", np.int32),
- ("node", np.int32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("zloc", np.float32),
- ("time", np.float32),
- ("timestep", np.int32),
- ]
- )
- else:
- dtype = np.dtype(
- [
- ("timestepindex", np.int32),
- ("particleid", np.int32),
- ("j", np.int32),
- ("i", np.int32),
- ("k", np.int32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("zloc", np.float32),
- ("time", np.float32),
- ("timestep", np.int32),
- ]
- )
- elif self.version == 6:
+ def _load(self) -> Tuple[np.dtype, np.ndarray]:
+ dtype = self.dtypes[self.version]
+ if self.version in [3, 5] and not self.compact:
dtype = np.dtype(
[
- ("timepointindex", np.int32),
- ("timestep", np.int32),
- ("time", np.float32),
+ ("timestepindex", np.int32),
("particleid", np.int32),
- ("particlegroup", np.int32),
+ ("j", np.int32),
+ ("i", np.int32),
+ ("k", np.int32),
("x", np.float32),
("y", np.float32),
("z", np.float32),
- ("grid", np.int32),
- ("k", np.int32),
- ("i", np.int32),
- ("j", np.int32),
- ("xloc", np.float32),
- ("yloc", np.float32),
("zloc", np.float32),
- ]
- )
- elif self.version == 7:
- dtype = np.dtype(
- [
- ("timepointindex", np.int32),
- ("timestep", np.int32),
("time", np.float32),
- ("particleid", np.int32),
- ("particlegroup", np.int32),
- ("particleidloc", np.int32),
- ("node", np.int32),
- ("xloc", np.float32),
- ("yloc", np.float32),
- ("zloc", np.float32),
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("k", np.int32),
+ ("timestep", np.int32),
]
)
- return dtype
-
- def _get_outdtype(self):
- outdtype = np.dtype(
- [
- ("x", np.float32),
- ("y", np.float32),
- ("z", np.float32),
- ("time", np.float32),
- ("k", np.int32),
- ("particleid", np.int32),
- ]
- )
- return outdtype
-
- def get_maxid(self):
- """
- Get the maximum timeseries number in the file timeseries file
-
- Returns
- ----------
- out : int
- Maximum pathline number.
-
- """
- return super().get_maxid()
-
- def get_maxtime(self):
- """
- Get the maximum time in timeseries file
-
- Returns
- ----------
- out : float
- Maximum pathline time.
-
- """
- return super().get_maxtime()
-
- def get_data(self, partid=0, totim=None, ge=True):
- """
- get timeseries data from the timeseries file for a single timeseries
- particleid.
-
- Parameters
- ----------
- partid : int
- The zero-based particle id. The first record is record 0.
- totim : float
- The simulation time. All timeseries points for particle partid
- that are greater than or equal to (ge=True) or less than or
- equal to (ge=False) totim will be returned. Default is None
- ge : bool
- Boolean that determines if timeseries times greater than or equal
- to or less than or equal to totim is used to create a subset
- of timeseries. Default is True.
-
- Returns
- ----------
- ra : numpy record array
- A numpy recarray with the x, y, z, time, k, and particleid for
- timeseries partid.
-
-
- See Also
- --------
-
- Notes
- -----
-
- Examples
- --------
-
- >>> import flopy
- >>> tsobj = flopy.utils.TimeseriesFile('model.timeseries')
- >>> ts1 = tsobj.get_data(partid=1)
-
- """
- return super().get_data(partid=partid, totim=totim, ge=ge)
-
- def get_alldata(self, totim=None, ge=True):
- """
- get timeseries data from the timeseries file for all timeseries
- and all times.
-
- Parameters
- ----------
- totim : float
- The simulation time. All timeseries points for timeseries partid
- that are greater than or equal to (ge=True) or less than or
- equal to (ge=False) totim will be returned. Default is None
- ge : bool
- Boolean that determines if timeseries times greater than or equal
- to or less than or equal to totim is used to create a subset
- of timeseries. Default is True.
- Returns
- ----------
- tlist : a list of numpy record array
- A list of numpy recarrays with the x, y, z, time, k, and
- particleid for all timeseries.
+ data = loadtxt(self.fname, dtype=dtype, skiprows=self.skiprows)
- Examples
- --------
+ # convert indices to zero-based
+ for n in self.kijnames:
+ if n in data.dtype.names:
+ data[n] -= 1
- >>> import flopy
- >>> tsobj = flopy.utils.TimeseriesFile('model.timeseries')
- >>> ts = tsobj.get_alldata()
+ # sort by particle ID and time
+ data.sort(order=["particleid", "time"])
- """
- return super().get_alldata(totim=totim, ge=ge)
+ return dtype, data
def get_destination_timeseries_data(self, dest_cells):
"""
@@ -1575,7 +916,7 @@ def get_destination_timeseries_data(self, dest_cells):
Returns
-------
- tsdest : np.recarray
+ np.recarray
Slice of timeseries data array (e.g. TmeseriesFile._data)
containing only timeseries that pass through (k,i,j) or
(node) dest_cells.
@@ -1593,6 +934,7 @@ def get_destination_timeseries_data(self, dest_cells):
def write_shapefile(
self,
+ data=None,
timeseries_data=None,
one_per_particle=True,
direction="ending",
@@ -1602,12 +944,19 @@ def write_shapefile(
**kwargs,
):
"""
- Write pathlines to a shapefile
+ Write timeseries to a shapefile
+ data : np.recarray
+ Record array of same form as that returned by
+ Timeseries.get_alldata(). (if none, Timeseries.get_alldata()
+ is exported).
timeseries_data : np.recarray
Record array of same form as that returned by
Timeseries.get_alldata(). (if none, Timeseries.get_alldata()
is exported).
+
+ .. deprecated:: 3.7
+ The ``timeseries_data`` option will be removed for FloPy 4. Use ``data`` instead.
one_per_particle : boolean (default True)
True writes a single LineString with a single set of attribute
data for each particle. False writes a record/geometry for each
@@ -1633,12 +982,11 @@ def write_shapefile(
.. deprecated:: 3.5
The following keyword options will be removed for FloPy 3.6:
-
- ``epsg`` (int): use ``crs`` instead.
-
"""
- super().write_shapefile(
- data=timeseries_data,
+ ParticleTrackFile.write_shapefile(
+ self,
+ data=data if data is not None else timeseries_data,
one_per_particle=one_per_particle,
direction=direction,
shpname=shpname,
diff --git a/flopy/utils/observationfile.py b/flopy/utils/observationfile.py
index 8ac1e082d..f2b612f8f 100644
--- a/flopy/utils/observationfile.py
+++ b/flopy/utils/observationfile.py
@@ -44,7 +44,7 @@ def get_nobs(self):
Returns
----------
out : tuple of int
- A tupe with the number of records and number of flow items
+ A tuple with the number of records and number of flow items
in the file. The number of flow items is non-zero only if
swrtype='flow'.
diff --git a/flopy/utils/optionblock.py b/flopy/utils/optionblock.py
index 0826dec8d..f999fef28 100644
--- a/flopy/utils/optionblock.py
+++ b/flopy/utils/optionblock.py
@@ -1,3 +1,5 @@
+import warnings
+
import numpy as np
from ..utils import flopy_io
@@ -49,13 +51,22 @@ def __init__(self, options_line, package, block=True):
self._attr_types = {}
self.options_line = options_line
self.package = package
- self.auxillary = []
+ self.auxiliary = []
self.noprint = False
self.block = block
self.__build_attr_types()
self._set_attributes()
+ def __getattr__(self, key):
+ if key == "auxillary": # catch typo from older version
+ key = "auxiliary"
+ warnings.warn(
+ "the atttribute 'auxillary' is deprecated, use 'auxiliary' instead",
+ category=DeprecationWarning,
+ )
+ return super().__getattribute__(key)
+
@property
def single_line_options(self):
"""
@@ -144,12 +155,19 @@ def __setattr__(self, key, value):
Parameters
----------
key : str
- string refering to an attribute
+ string referring to an attribute
value : object
a python object (int, str, float, bool) that
- is consistant with the attribute data type
+ is consistent with the attribute data type
"""
+ if key == "auxillary": # catch typo from older version
+ key = "auxiliary"
+ warnings.warn(
+ "the atttribute 'auxillary' is deprecated, use 'auxiliary' instead",
+ category=DeprecationWarning,
+ )
+
err_msg = "Data type must be compatible with {}"
if key in ("_context", "_attr_types", "options_line"):
self.__dict__[key] = value
@@ -223,7 +241,7 @@ def __build_attr_types(self):
"""
Method to build a type dictionary for type
enforcements in __setattr__. This uses the package's
- contex tree to build and enforce attribute
+ context tree to build and enforce attribute
types for the class
"""
diff --git a/flopy/utils/particletrackfile.py b/flopy/utils/particletrackfile.py
new file mode 100644
index 000000000..5029c5860
--- /dev/null
+++ b/flopy/utils/particletrackfile.py
@@ -0,0 +1,334 @@
+"""
+Utilities for parsing particle tracking output files.
+"""
+
+import os
+from abc import ABC, abstractmethod
+from pathlib import Path
+from typing import Union
+
+import numpy as np
+from numpy.lib.recfunctions import stack_arrays
+
+MIN_PARTICLE_TRACK_DTYPE = np.dtype(
+ [
+ ("x", np.float32),
+ ("y", np.float32),
+ ("z", np.float32),
+ ("time", np.float32),
+ ("k", np.int32),
+ ("particleid", np.int32),
+ ]
+)
+
+
+class ParticleTrackFile(ABC):
+ """
+ Abstract base class for particle track output files. Exposes a unified API
+ supporting MODPATH versions 3, 5, 6 and 7, as well as MODFLOW 6 PRT models.
+
+ Notes
+ -----
+
+
+ Parameters
+ ----------
+ filename : str or PathLike
+ Path of output file
+ verbose : bool
+ Show verbose output. Default is False.
+
+ """
+
+ outdtype = MIN_PARTICLE_TRACK_DTYPE
+ """
+ Minimal information shared by all particle track file formats.
+ Track data are converted to this dtype for internal storage
+ and for return from (sub-)class methods.
+ """
+
+ def __init__(
+ self,
+ filename: Union[str, os.PathLike],
+ verbose: bool = False,
+ ):
+ self.fname = Path(filename).expanduser().absolute()
+ self.verbose = verbose
+
+ def get_maxid(self) -> int:
+ """
+ Get the maximum particle ID.
+
+ Returns
+ ----------
+ out : int
+ Maximum particle ID.
+
+ """
+ return self._data["particleid"].max()
+
+ def get_maxtime(self) -> float:
+ """
+ Get the maximum tracking time.
+
+ Returns
+ ----------
+ out : float
+ Maximum tracking time.
+
+ """
+ return self._data["time"].max()
+
+ def get_data(
+ self, partid=0, totim=None, ge=True, minimal=False
+ ) -> np.recarray:
+ """
+ Get a single particle track, optionally filtering by time.
+
+ Parameters
+ ----------
+ partid : int
+ Zero-based particle id. Default is 0.
+ totim : float
+ The simulation time. Default is None.
+ ge : bool
+ Filter tracking times greater than or equal
+ to or less than or equal to totim.
+ Only used if totim is not None.
+ minimal : bool
+ Whether to return only the minimal, canonical fields. Default is False.
+
+ Returns
+ ----------
+ data : np.recarray
+ Recarray with dtype ParticleTrackFile.outdtype
+
+ """
+ data = self._data[list(self.outdtype.names)] if minimal else self._data
+ idx = (
+ np.where(data["particleid"] == partid)[0]
+ if totim is None
+ else (
+ np.where(
+ (data["time"] >= totim) & (data["particleid"] == partid)
+ )[0]
+ if ge
+ else np.where(
+ (data["time"] <= totim) & (data["particleid"] == partid)
+ )[0]
+ )
+ )
+
+ return data[idx]
+
+ def get_alldata(self, totim=None, ge=True, minimal=False):
+ """
+ Get all particle tracks separately, optionally filtering by time.
+
+ Parameters
+ ----------
+ totim : float
+ The simulation time.
+ ge : bool
+ Boolean that determines if pathline times greater than or equal
+ to or less than or equal to totim.
+ minimal : bool
+ Whether to return only the minimal, canonical fields. Default is False.
+
+ Returns
+ ----------
+ data : list of numpy record arrays
+ List of recarrays with dtype ParticleTrackFile.outdtype
+
+ """
+ nids = np.unique(self._data["particleid"]).size
+ data = self._data[list(self.outdtype.names)] if minimal else self._data
+ if totim is not None:
+ idx = (
+ np.where(data["time"] >= totim)[0]
+ if ge
+ else np.where(data["time"] <= totim)[0]
+ )
+ if len(idx) > 0:
+ data = data[idx]
+ return [data[data["particleid"] == i] for i in range(nids)]
+
+ def get_destination_data(
+ self, dest_cells, to_recarray=True
+ ) -> np.recarray:
+ """
+ Get data for set of destination cells.
+
+ Parameters
+ ----------
+ dest_cells : list or array of tuples
+ (k, i, j) of each destination cell for MODPATH versions less than
+ MODPATH 7 or node number of each destination cell. (zero based)
+ to_recarray : bool
+ Boolean that controls returned series. If to_recarray is True,
+ a single recarray with all of the pathlines that intersect
+ dest_cells are returned. If to_recarray is False, a list of
+ recarrays (the same form as returned by get_alldata method)
+ that intersect dest_cells are returned (default is False).
+
+ Returns
+ -------
+ data : np.recarray
+ Slice of data array (e.g. PathlineFile._data, TimeseriesFile._data)
+ containing endpoint, pathline, or timeseries data that intersect
+ (k,i,j) or (node) dest_cells.
+
+ """
+
+ return self.intersect(dest_cells, to_recarray)
+
+ @abstractmethod
+ def intersect(self, cells, to_recarray) -> np.recarray:
+ """Find intersection of pathlines with cells."""
+ pass
+
+ def write_shapefile(
+ self,
+ data=None,
+ one_per_particle=True,
+ direction="ending",
+ shpname="endpoints.shp",
+ mg=None,
+ crs=None,
+ **kwargs,
+ ):
+ """
+ Write particle track data to a shapefile.
+
+ data : np.recarray
+ Record array of same form as that returned by
+ get_alldata(). (if none, get_alldata() is exported).
+ one_per_particle : boolean (default True)
+ True writes a single LineString with a single set of attribute
+ data for each particle. False writes a record/geometry for each
+ pathline segment (each row in the PathLine file). This option can
+ be used to visualize attribute information (time, model layer,
+ etc.) across a pathline in a GIS.
+ direction : str
+ String defining if starting or ending particle locations should be
+ included in shapefile attribute information. Only used if
+ one_per_particle=False. (default is 'ending')
+ shpname : str
+ File path for shapefile
+ mg : flopy.discretization.grid instance
+ Used to scale and rotate Global x,y,z values.
+ crs : pyproj.CRS, int, str, optional
+ Coordinate reference system (CRS) for the model grid
+ (must be projected; geographic CRS are not supported).
+ The value can be anything accepted by
+ :meth:`pyproj.CRS.from_user_input() `,
+ such as an authority string (eg "EPSG:26916") or a WKT string.
+ kwargs : keyword arguments to flopy.export.shapefile_utils.recarray2shp
+
+ .. deprecated:: 3.5
+ The following keyword options will be removed for FloPy 3.6:
+
+ - ``epsg`` (int): use ``crs`` instead.
+
+ """
+ from ..export.shapefile_utils import recarray2shp
+ from . import geometry
+ from .geometry import LineString
+
+ series = data
+ if series is None:
+ series = self._data.view(np.recarray)
+ else:
+ # convert pathline list to a single recarray
+ if isinstance(series, list):
+ s = series[0]
+ print(s.dtype)
+ for n in range(1, len(series)):
+ s = stack_arrays((s, series[n]))
+ series = s.view(np.recarray)
+
+ series = series.copy()
+ series.sort(order=["particleid", "time"])
+
+ if mg is None:
+ raise ValueError("A modelgrid object was not provided.")
+
+ particles = np.unique(series.particleid)
+ geoms = []
+
+ # create dtype with select attributes in pth
+ names = series.dtype.names
+ dtype = []
+ atts = ["particleid", "particlegroup", "time", "k", "i", "j", "node"]
+ for att in atts:
+ if att in names:
+ t = np.int32
+ if att == "time":
+ t = np.float32
+ dtype.append((att, t))
+ dtype = np.dtype(dtype)
+
+ # reset names to the selected names in the created dtype
+ names = dtype.names
+
+ # 1 geometry for each path
+ if one_per_particle:
+ loc_inds = 0
+ if direction == "ending":
+ loc_inds = -1
+
+ sdata = []
+ for pid in particles:
+ ra = series[series.particleid == pid]
+
+ x, y = geometry.transform(
+ ra.x, ra.y, mg.xoffset, mg.yoffset, mg.angrot_radians
+ )
+ z = ra.z
+ geoms.append(LineString(list(zip(x, y, z))))
+
+ t = [pid]
+ if "particlegroup" in names:
+ t.append(ra.particlegroup[0])
+ t.append(ra.time.max())
+ if "node" in names:
+ t.append(ra.node[loc_inds])
+ else:
+ if "k" in names:
+ t.append(ra.k[loc_inds])
+ if "i" in names:
+ t.append(ra.i[loc_inds])
+ if "j" in names:
+ t.append(ra.j[loc_inds])
+ sdata.append(tuple(t))
+
+ sdata = np.array(sdata, dtype=dtype).view(np.recarray)
+
+ # geometry for each row in PathLine file
+ else:
+ dtype = series.dtype
+ sdata = []
+ for pid in particles:
+ ra = series[series.particleid == pid]
+ if mg is not None:
+ x, y = geometry.transform(
+ ra.x, ra.y, mg.xoffset, mg.yoffset, mg.angrot_radians
+ )
+ else:
+ x, y = geometry.transform(ra.x, ra.y, 0, 0, 0)
+ z = ra.z
+ geoms += [
+ LineString(
+ [(x[i - 1], y[i - 1], z[i - 1]), (x[i], y[i], z[i])]
+ )
+ for i in np.arange(1, (len(ra)))
+ ]
+ sdata += ra[1:].tolist()
+ sdata = np.array(sdata, dtype=dtype).view(np.recarray)
+
+ # convert back to one-based
+ for n in set(self.kijnames).intersection(set(sdata.dtype.names)):
+ sdata[n] += 1
+
+ # write the final recarray to a shapefile
+ recarray2shp(sdata, geoms, shpname=shpname, crs=crs, **kwargs)
diff --git a/flopy/utils/rasters.py b/flopy/utils/rasters.py
index dbba70510..72e32eabf 100644
--- a/flopy/utils/rasters.py
+++ b/flopy/utils/rasters.py
@@ -45,7 +45,7 @@ class Raster:
"""
- FLOAT32 = (float, np.float32, np.float_)
+ FLOAT32 = (float, np.float32, np.float64)
FLOAT64 = (np.float64,)
INT8 = (np.int8, np.uint8)
INT16 = (np.int16, np.uint16)
@@ -688,7 +688,7 @@ def get_array(self, band, masked=True):
"""
Method to get a numpy array corresponding to the
provided raster band. Nodata vals are set to
- np.NaN
+ np.nan
Parameters
----------
diff --git a/flopy/utils/recarray_utils.py b/flopy/utils/recarray_utils.py
index 0712eda8f..27114c732 100644
--- a/flopy/utils/recarray_utils.py
+++ b/flopy/utils/recarray_utils.py
@@ -34,7 +34,7 @@ def create_empty_recarray(length, dtype, default_value=0):
assert isinstance(dtype, np.dtype), msg
for name in dtype.names:
dt = dtype.fields[name][0]
- if np.issubdtype(dt, np.float_):
+ if np.issubdtype(dt, np.float64):
r[name] = default_value
return r.view(np.recarray)
diff --git a/flopy/utils/sfroutputfile.py b/flopy/utils/sfroutputfile.py
index 797bcfdad..7754d4da8 100644
--- a/flopy/utils/sfroutputfile.py
+++ b/flopy/utils/sfroutputfile.py
@@ -165,7 +165,7 @@ def get_dataframe(self):
"""
kwargs = {
"filepath_or_buffer": self.filename,
- "delim_whitespace": True,
+ "sep": "\\s+",
"header": None,
"names": self.names,
"skiprows": self.sr,
diff --git a/flopy/utils/swroutputfile.py b/flopy/utils/swroutputfile.py
index b99e99243..a75beeb7a 100644
--- a/flopy/utils/swroutputfile.py
+++ b/flopy/utils/swroutputfile.py
@@ -136,7 +136,7 @@ def get_nrecords(self):
Returns
----------
out : tuple of int
- A tupe with the number of records and number of flow items
+ A tuple with the number of records and number of flow items
in the file. The number of flow items is non-zero only if
swrtype='flow'.
diff --git a/flopy/utils/util_array.py b/flopy/utils/util_array.py
index 18923e8aa..b307a2353 100644
--- a/flopy/utils/util_array.py
+++ b/flopy/utils/util_array.py
@@ -488,7 +488,7 @@ class Util3d(DataInterface):
ext_filename is reset to value.
bin : bool
flag to control writing external arrays as binary (optional)
- (the defaut is False)
+ (the default is False)
Attributes
----------
@@ -1405,7 +1405,7 @@ def from_4d(cls, model, pak_name, m4ds):
pak_name : str package name (e.g. RCH)
m4ds : dict(name,(masked) 4d numpy.ndarray)
each ndarray must have shape (nper,1,nrow,ncol).
- if an entire (nrow,ncol) slice is np.NaN, then
+ if an entire (nrow,ncol) slice is np.nan, then
that kper is skipped.
Returns
-------
@@ -2391,7 +2391,7 @@ def string(self):
record multiplier - this method is used primarily for writing model input files
"""
- # convert array to sting with specified format
+ # convert array to string with specified format
a_string = self.array2string(
self.shape, self._array, python_format=self.format.py
)
diff --git a/flopy/utils/util_list.py b/flopy/utils/util_list.py
index dad0b7a5d..66d2baf35 100644
--- a/flopy/utils/util_list.py
+++ b/flopy/utils/util_list.py
@@ -296,6 +296,16 @@ def fmt_string(self):
fmt_string = "".join(fmts)
return fmt_string
+ def __cast_tabular(self, data):
+ data = pd.DataFrame(data)
+ if "kper" in data.dtypes:
+ groups = data.groupby("kper")
+ data = {kper: group.drop("kper", axis=1) for kper, group in groups}
+ for kper, d in data.items():
+ self.__cast_dataframe(kper, d)
+ else:
+ self.__cast_dataframe(0, data)
+
# Private method to cast the data argument
# Should only be called by the constructor
def __cast_data(self, data):
@@ -350,15 +360,18 @@ def __cast_data(self, data):
f"{type(d)} at kper {kper}"
)
- # A single recarray - same MfList for all stress periods
+ # A single dataframe
+ elif isinstance(data, pd.DataFrame):
+ self.__cast_tabular(data)
+
+ # A single recarray
elif isinstance(data, np.recarray):
- self.__cast_recarray(0, data)
+ self.__cast_tabular(data)
+
# A single ndarray
elif isinstance(data, np.ndarray):
self.__cast_ndarray(0, data)
- # A single dataframe
- elif isinstance(data, pd.DataFrame):
- self.__cast_dataframe(0, data)
+
# A single filename
elif isinstance(data, str):
self.__cast_str(0, data)
@@ -417,7 +430,9 @@ def __cast_ndarray(self, kper, d):
self.__vtype[kper] = np.recarray
def __cast_dataframe(self, kper, d):
- self.__cast_recarray(kper, d.to_records(index=False))
+ self.__cast_recarray(
+ kper, d.to_records(index=False).astype(self.dtype)
+ )
def get_dataframe(self, squeeze=False):
"""
@@ -1028,7 +1043,7 @@ def to_array(self, kper=0, mask=False):
kper : int
MODFLOW zero-based stress period number to return. (default is zero)
mask : boolean
- return array with np.NaN instead of zero
+ return array with np.nan instead of zero
Returns
----------
out : dict of numpy.ndarrays
@@ -1079,7 +1094,7 @@ def to_array(self, kper=0, mask=False):
if kper < kpers[0]:
if mask:
for name, arr in arrays.items():
- arrays[name][:] = np.NaN
+ arrays[name][:] = np.nan
return arrays
# find the last kper
else:
@@ -1094,7 +1109,7 @@ def to_array(self, kper=0, mask=False):
if sarr == 0:
if mask:
for name, arr in arrays.items():
- arrays[name][:] = np.NaN
+ arrays[name][:] = np.nan
return arrays
raise ValueError(
f"MfList: expected no entries for period {kper} but found {sarr}"
@@ -1124,12 +1139,12 @@ def to_array(self, kper=0, mask=False):
arr[idx] /= cnt[idx]
if mask:
arr = np.ma.masked_where(cnt == 0.0, arr)
- arr[cnt == 0.0] = np.NaN
+ arr[cnt == 0.0] = np.nan
arrays[name] = arr.copy()
# elif mask:
# for name, arr in arrays.items():
- # arrays[name][:] = np.NaN
+ # arrays[name][:] = np.nan
return arrays
@property
diff --git a/flopy/utils/voronoi.py b/flopy/utils/voronoi.py
index a3adfe0c6..15982d205 100644
--- a/flopy/utils/voronoi.py
+++ b/flopy/utils/voronoi.py
@@ -258,7 +258,7 @@ class VoronoiGrid:
Parameters
----------
input : flopy.utils.Triangle
- Constructred and built flopy Triangle object.
+ Constructed and built flopy Triangle object.
kwargs : dict
List of additional keyword arguments that will be passed through to
scipy.spatial.Voronoi. For circular shaped model grids, the
@@ -368,7 +368,7 @@ def get_patch_collection(self, ax=None, **kwargs):
ax : matplotlib.pyplot.Axes
axes to plot the patch collection
kwargs : dict
- Additional keyward arguments to pass to the flopy.plot.plot_cvfd
+ Additional keyword arguments to pass to the flopy.plot.plot_cvfd
function that returns a patch collection from verts and iverts
Returns
diff --git a/flopy/utils/zonbud.py b/flopy/utils/zonbud.py
index 5740669c1..91a0a8910 100644
--- a/flopy/utils/zonbud.py
+++ b/flopy/utils/zonbud.py
@@ -611,7 +611,7 @@ def _accumulate_flow_frf(self, recname, ich, kstpkper, totim):
# Get the face flow
q = data[k, i, jl]
- # Get indices where flow face values are positive (flow out of higher zone)
+ # Get indices with positive flow face values (out of higher zone)
# Don't include CH to CH flow (can occur if CHTOCH option is used)
# Create an iterable tuple of (from zone, to zone, flux)
# Then group tuple by (from_zone, to_zone) and sum the flux values
@@ -623,7 +623,7 @@ def _accumulate_flow_frf(self, recname, ich, kstpkper, totim):
fzi, tzi, np.abs(fi), kstpkper, totim
)
- # Get indices where flow face values are negative (flow into higher zone)
+ # Get indices with negative flow face values (into higher zone)
# Don't include CH to CH flow (can occur if CHTOCH option is used)
# Create an iterable tuple of (from zone, to zone, flux)
# Then group tuple by (from_zone, to_zone) and sum the flux values
@@ -650,7 +650,7 @@ def _accumulate_flow_frf(self, recname, ich, kstpkper, totim):
# Get the face flow
q = data[k, i, j]
- # Get indices where flow face values are positive (flow out of higher zone)
+ # Get indices with positive flow face values (out of higher zone)
# Don't include CH to CH flow (can occur if CHTOCH option is used)
# Create an iterable tuple of (from zone, to zone, flux)
# Then group tuple by (from_zone, to_zone) and sum the flux values
@@ -662,7 +662,7 @@ def _accumulate_flow_frf(self, recname, ich, kstpkper, totim):
fzi, tzi, np.abs(fi), kstpkper, totim
)
- # Get indices where flow face values are negative (flow into higher zone)
+ # Get indices with negative flow face values (into higher zone)
# Don't include CH to CH flow (can occur if CHTOCH option is used)
# Create an iterable tuple of (from zone, to zone, flux)
# Then group tuple by (from_zone, to_zone) and sum the flux values
@@ -1380,7 +1380,7 @@ def _get_otype(cls, fname):
elif "totim" in line.lower():
otype = 2
else:
- raise AssertionError("Cant distinguish output type")
+ raise AssertionError("Can't distinguish output type")
return otype
@classmethod
@@ -1774,7 +1774,7 @@ class ZoneBudget6:
model_ws : str
path to model
exe_name : str
- excutable name
+ executable name
extension : str
name file extension
"""
diff --git a/flopy/version.py b/flopy/version.py
index b6e10dc98..f2ed5789f 100644
--- a/flopy/version.py
+++ b/flopy/version.py
@@ -1,3 +1,4 @@
-# flopy version file automatically created using update_version.py on February 08, 2024 03:40:54
+# flopy version file automatically created using
+# update_version.py on May 23, 2024 20:49:48
-__version__ = "3.6.0"
+__version__ = "3.7.0"
diff --git a/pyproject.toml b/pyproject.toml
index 672459186..3d9e0607e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -38,11 +38,8 @@ dynamic = ["version", "readme"]
[project.optional-dependencies]
dev = ["flopy[lint,test,optional,doc]"]
lint = [
- "black",
"cffconvert",
- "flake8",
- "isort",
- "pylint",
+ "ruff"
]
test = [
"flopy[lint]",
@@ -52,11 +49,13 @@ test = [
"jupyter",
"jupytext",
"modflow-devtools",
- "pytest",
+ "pytest !=8.1.0",
"pytest-benchmark",
"pytest-cov",
"pytest-dotenv",
"pytest-xdist",
+ "pyzmq >=25.1.2",
+ "syrupy",
"virtualenv"
]
optional = [
@@ -115,11 +114,33 @@ include = ["flopy", "flopy.*"]
"flopy.mf6.data" = ["dfn/*.dfn"]
"flopy.plot" = ["mplstyle/*.mplstyle"]
-[tool.black]
+[tool.ruff]
line-length = 79
-target_version = ["py38"]
+target-version = "py38"
+include = [
+ "pyproject.toml",
+ "flopy/**/*.py",
+ "autotest/**/*.py",
+ "examples/**/*.py",
+ "scripts/**/*.py",
+ ".docs/**/*.py",
+]
+extend-include = [
+ "examples/**/*.ipynb"
+]
-[tool.isort]
-profile = "black"
-src_paths = ["flopy"]
-line_length = 79
\ No newline at end of file
+[tool.ruff.lint]
+select = ["F", "E", "I001"]
+ignore = [
+ "E402", # module level import not at top of file
+ "E501", # line too long TODO FIXME
+ "E712", # Avoid equality comparisons to `True`
+ "E722", # do not use bare `except`
+ "E741", # ambiguous variable name
+ "F401", # unused import
+ "F403", # unable to detect undefined names (star imports)
+ "F524", # `.format` missing argument(s) for placeholder(s)
+ "F811", # Redefinition of unused variable
+ "F821", # undefined name TODO FIXME
+ "F841", # local variable assigned but never used
+]
\ No newline at end of file
diff --git a/scripts/README.md b/scripts/README.md
index e64f9c728..71ed667f2 100644
--- a/scripts/README.md
+++ b/scripts/README.md
@@ -6,7 +6,6 @@ This document describes the utility scripts in this directory.
- [Processing benchmarks](#processing-benchmarks)
-- [Preparing for PRs](#preparing-for-prs)
- [Running notebooks](#running-notebooks)
- [Updating version](#updating-version)
@@ -29,20 +28,6 @@ For instance, `e689af57e7439b9005749d806248897ad550eab5_20150811_041632_uncommit
**Note**: the `process_benchmarks.py` script depends on `seaborn`, which is not included as a dependency in either `etc/environment.yml` or in any of the optional groups in `pyproject.toml`, since this is the only place it is used in this repository.
-## Preparing for PRs
-
-The `pull_request_prepare.py` script lints Python source code files by running `black` and `isort` on the `flopy` subdirectory. This script should be run before opening a pull request, as CI will fail if the code is not properly formatted. For instance, from the project root:
-
-```shell
-python scripts/pull_request_prepare.py
-```
-
-## Running notebooks
-
-The `run_notebooks.py` script runs notebooks located in the `.docs/Notebooks` directory.
-
-Notebooks are run using `jupytext --from_ipynb --execute `. Note that notebooks are under version control, and running them with this script will produce large changesets in your working tree as outputs and execution metadata are updated. See the [developer docs](../DEVELOPER.md) for instructions to configure `git` to automatically strip notebook outputs before commits.
-
## Updating version
The `update_version.py` script can be used to update FloPy version numbers. Running the script first updates the version in `version.txt`, then propagates the change to various other places version strings or timestamps are embedded in the repository:
diff --git a/scripts/process_benchmarks.py b/scripts/process_benchmarks.py
index d61e8b453..1b29da52e 100644
--- a/scripts/process_benchmarks.py
+++ b/scripts/process_benchmarks.py
@@ -62,7 +62,7 @@ def get_benchmarks(paths):
# create data frame and save to CSV
benchmarks_df = pd.DataFrame(get_benchmarks(json_paths))
benchmarks_df["time"] = pd.to_datetime(benchmarks_df["time"])
-benchmarks_df.to_csv(str(outdir / f"benchmarks.csv"), index=False)
+benchmarks_df.to_csv(str(outdir / "benchmarks.csv"), index=False)
def matplotlib_plot(stats):
diff --git a/scripts/pull_request_prepare.py b/scripts/pull_request_prepare.py
deleted file mode 100644
index af663f7f0..000000000
--- a/scripts/pull_request_prepare.py
+++ /dev/null
@@ -1,21 +0,0 @@
-import os
-
-try:
- import isort
-
- print(f"isort version: {isort.__version__}")
-except ModuleNotFoundError:
- print("isort not installed\n\tInstall using pip install isort")
-
-try:
- import black
-
- print(f"black version: {black.__version__}")
-except ModuleNotFoundError:
- print("black not installed\n\tInstall using pip install black")
-
-print("running isort...")
-os.system("isort -v ../flopy")
-
-print("running black...")
-os.system("black -v ../flopy")
diff --git a/scripts/run_notebooks.py b/scripts/run_notebooks.py
deleted file mode 100644
index 7569c2259..000000000
--- a/scripts/run_notebooks.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import os
-import sys
-
-# path to notebooks
-src_pths = (os.path.join("..", ".docs", "Notebooks"),)
-
-# parse command line arguments for notebook to create
-nb_files = None
-for idx, arg in enumerate(sys.argv):
- if arg in ("-f", "--file"):
- file_name = sys.argv[idx + 1]
- if not file_name.endswith(".ipynb"):
- file_name += ".ipynb"
- for src_pth in src_pths:
- src = os.path.join(src_pth, file_name)
- if os.path.isfile(src):
- nb_files = [src]
- break
-
-# get list of notebooks
-if nb_files is None:
- nb_files = []
- for src_pth in src_pths:
- nb_files += [
- os.path.join(src_pth, file_name)
- for file_name in sorted(os.listdir(src_pth))
- if file_name.endswith(".ipynb")
- ]
-
-failed_runs = []
-
-# run the notebooks
-for src in nb_files:
- arg = (
- "jupytext",
- "--from ipynb",
- "--execute",
- src,
- )
- print(" ".join(arg))
- return_code = os.system(" ".join(arg))
- if return_code != 0:
- failed_runs.append(src)
-
-# write out failed runs
-for idx, src in enumerate(failed_runs):
- print(f"{idx + 1:2d}...{src} FAILED")
diff --git a/scripts/update_version.py b/scripts/update_version.py
index 4720d98fb..3f309f19c 100644
--- a/scripts/update_version.py
+++ b/scripts/update_version.py
@@ -1,17 +1,13 @@
import argparse
import json
import re
-import subprocess
import textwrap
from datetime import datetime
-from enum import Enum
-from os import PathLike, environ
from pathlib import Path
-from typing import NamedTuple, Optional
import yaml
from filelock import FileLock
-from packaging.version import Version, parse
+from packaging.version import Version
_project_name = "flopy"
_project_root_path = Path(__file__).parent.parent
@@ -77,8 +73,8 @@ def update_version_txt(version: Version):
def update_version_py(timestamp: datetime, version: Version):
with open(_version_py_path, "w") as f:
f.write(
- f"# {_project_name} version file automatically created using "
- f"{Path(__file__).name} on {timestamp:%B %d, %Y %H:%M:%S}\n\n"
+ f"# {_project_name} version file automatically created using\n"
+ f"# {Path(__file__).name} on {timestamp:%B %d, %Y %H:%M:%S}\n\n"
)
f.write(f'__version__ = "{version}"\n')
f.close()
@@ -93,7 +89,7 @@ def get_software_citation(
sb = ""
if not approved:
- sb = f" (preliminary)"
+ sb = " (preliminary)"
# format author names
authors = []
for author in citation["authors"]:
@@ -168,7 +164,7 @@ def update_readme_markdown(
if "### Version " in line:
line = f"### Version {version}"
if not approved:
- line += f" (preliminary)"
+ line += " (preliminary)"
elif "[flopy continuous integration]" in line:
line = (
"[![flopy continuous integration](https://github.com/"
@@ -310,14 +306,14 @@ def update_version(
"--approve",
required=False,
action="store_true",
- help="Approve the release (defaults to false for preliminary/development distributions)",
+ help="Approve the release (defaults false)",
)
parser.add_argument(
"-g",
"--get",
required=False,
action="store_true",
- help="Just get the current version number, don't update anything (defaults to false)",
+ help="Just get the current version number, no updates (defaults false)",
)
args = parser.parse_args()
diff --git a/version.txt b/version.txt
index 084e244ce..240bba906 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-3.6.0
\ No newline at end of file
+3.7.0
\ No newline at end of file