desdeo 1.2__py3-none-any.whl → 2.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- desdeo/__init__.py +8 -8
- desdeo/adm/ADMAfsar.py +551 -0
- desdeo/adm/ADMChen.py +414 -0
- desdeo/adm/BaseADM.py +119 -0
- desdeo/adm/__init__.py +11 -0
- desdeo/api/README.md +73 -0
- desdeo/api/__init__.py +15 -0
- desdeo/api/app.py +50 -0
- desdeo/api/config.py +90 -0
- desdeo/api/config.toml +64 -0
- desdeo/api/db.py +27 -0
- desdeo/api/db_init.py +85 -0
- desdeo/api/db_models.py +164 -0
- desdeo/api/malaga_db_init.py +27 -0
- desdeo/api/models/__init__.py +266 -0
- desdeo/api/models/archive.py +23 -0
- desdeo/api/models/emo.py +128 -0
- desdeo/api/models/enautilus.py +69 -0
- desdeo/api/models/gdm/gdm_aggregate.py +139 -0
- desdeo/api/models/gdm/gdm_base.py +69 -0
- desdeo/api/models/gdm/gdm_score_bands.py +114 -0
- desdeo/api/models/gdm/gnimbus.py +138 -0
- desdeo/api/models/generic.py +104 -0
- desdeo/api/models/generic_states.py +401 -0
- desdeo/api/models/nimbus.py +158 -0
- desdeo/api/models/preference.py +128 -0
- desdeo/api/models/problem.py +717 -0
- desdeo/api/models/reference_point_method.py +18 -0
- desdeo/api/models/session.py +49 -0
- desdeo/api/models/state.py +463 -0
- desdeo/api/models/user.py +52 -0
- desdeo/api/models/utopia.py +25 -0
- desdeo/api/routers/_EMO.backup +309 -0
- desdeo/api/routers/_NAUTILUS.py +245 -0
- desdeo/api/routers/_NAUTILUS_navigator.py +233 -0
- desdeo/api/routers/_NIMBUS.py +765 -0
- desdeo/api/routers/__init__.py +5 -0
- desdeo/api/routers/emo.py +497 -0
- desdeo/api/routers/enautilus.py +237 -0
- desdeo/api/routers/gdm/gdm_aggregate.py +234 -0
- desdeo/api/routers/gdm/gdm_base.py +420 -0
- desdeo/api/routers/gdm/gdm_score_bands/gdm_score_bands_manager.py +398 -0
- desdeo/api/routers/gdm/gdm_score_bands/gdm_score_bands_routers.py +377 -0
- desdeo/api/routers/gdm/gnimbus/gnimbus_manager.py +698 -0
- desdeo/api/routers/gdm/gnimbus/gnimbus_routers.py +591 -0
- desdeo/api/routers/generic.py +233 -0
- desdeo/api/routers/nimbus.py +705 -0
- desdeo/api/routers/problem.py +307 -0
- desdeo/api/routers/reference_point_method.py +93 -0
- desdeo/api/routers/session.py +100 -0
- desdeo/api/routers/test.py +16 -0
- desdeo/api/routers/user_authentication.py +520 -0
- desdeo/api/routers/utils.py +187 -0
- desdeo/api/routers/utopia.py +230 -0
- desdeo/api/schema.py +100 -0
- desdeo/api/tests/__init__.py +0 -0
- desdeo/api/tests/conftest.py +151 -0
- desdeo/api/tests/test_enautilus.py +330 -0
- desdeo/api/tests/test_models.py +1179 -0
- desdeo/api/tests/test_routes.py +1075 -0
- desdeo/api/utils/_database.py +263 -0
- desdeo/api/utils/_logger.py +29 -0
- desdeo/api/utils/database.py +36 -0
- desdeo/api/utils/emo_database.py +40 -0
- desdeo/core.py +34 -0
- desdeo/emo/__init__.py +159 -0
- desdeo/emo/hooks/archivers.py +188 -0
- desdeo/emo/methods/EAs.py +541 -0
- desdeo/emo/methods/__init__.py +0 -0
- desdeo/emo/methods/bases.py +12 -0
- desdeo/emo/methods/templates.py +111 -0
- desdeo/emo/operators/__init__.py +1 -0
- desdeo/emo/operators/crossover.py +1282 -0
- desdeo/emo/operators/evaluator.py +114 -0
- desdeo/emo/operators/generator.py +459 -0
- desdeo/emo/operators/mutation.py +1224 -0
- desdeo/emo/operators/scalar_selection.py +202 -0
- desdeo/emo/operators/selection.py +1778 -0
- desdeo/emo/operators/termination.py +286 -0
- desdeo/emo/options/__init__.py +108 -0
- desdeo/emo/options/algorithms.py +435 -0
- desdeo/emo/options/crossover.py +164 -0
- desdeo/emo/options/generator.py +131 -0
- desdeo/emo/options/mutation.py +260 -0
- desdeo/emo/options/repair.py +61 -0
- desdeo/emo/options/scalar_selection.py +66 -0
- desdeo/emo/options/selection.py +127 -0
- desdeo/emo/options/templates.py +383 -0
- desdeo/emo/options/termination.py +143 -0
- desdeo/explanations/__init__.py +6 -0
- desdeo/explanations/explainer.py +100 -0
- desdeo/explanations/utils.py +90 -0
- desdeo/gdm/__init__.py +22 -0
- desdeo/gdm/gdmtools.py +45 -0
- desdeo/gdm/score_bands.py +114 -0
- desdeo/gdm/voting_rules.py +50 -0
- desdeo/mcdm/__init__.py +41 -0
- desdeo/mcdm/enautilus.py +338 -0
- desdeo/mcdm/gnimbus.py +484 -0
- desdeo/mcdm/nautili.py +345 -0
- desdeo/mcdm/nautilus.py +477 -0
- desdeo/mcdm/nautilus_navigator.py +656 -0
- desdeo/mcdm/nimbus.py +417 -0
- desdeo/mcdm/pareto_navigator.py +269 -0
- desdeo/mcdm/reference_point_method.py +186 -0
- desdeo/problem/__init__.py +83 -0
- desdeo/problem/evaluator.py +561 -0
- desdeo/problem/external/__init__.py +18 -0
- desdeo/problem/external/core.py +356 -0
- desdeo/problem/external/pymoo_provider.py +266 -0
- desdeo/problem/external/runtime.py +44 -0
- desdeo/problem/gurobipy_evaluator.py +562 -0
- desdeo/problem/infix_parser.py +341 -0
- desdeo/problem/json_parser.py +944 -0
- desdeo/problem/pyomo_evaluator.py +487 -0
- desdeo/problem/schema.py +1829 -0
- desdeo/problem/simulator_evaluator.py +348 -0
- desdeo/problem/sympy_evaluator.py +244 -0
- desdeo/problem/testproblems/__init__.py +88 -0
- desdeo/problem/testproblems/benchmarks_server.py +120 -0
- desdeo/problem/testproblems/binh_and_korn_problem.py +88 -0
- desdeo/problem/testproblems/cake_problem.py +185 -0
- desdeo/problem/testproblems/dmitry_forest_problem_discrete.py +71 -0
- desdeo/problem/testproblems/dtlz2_problem.py +102 -0
- desdeo/problem/testproblems/forest_problem.py +283 -0
- desdeo/problem/testproblems/knapsack_problem.py +163 -0
- desdeo/problem/testproblems/mcwb_problem.py +831 -0
- desdeo/problem/testproblems/mixed_variable_dimenrions_problem.py +83 -0
- desdeo/problem/testproblems/momip_problem.py +172 -0
- desdeo/problem/testproblems/multi_valued_constraints.py +119 -0
- desdeo/problem/testproblems/nimbus_problem.py +143 -0
- desdeo/problem/testproblems/pareto_navigator_problem.py +89 -0
- desdeo/problem/testproblems/re_problem.py +492 -0
- desdeo/problem/testproblems/river_pollution_problems.py +440 -0
- desdeo/problem/testproblems/rocket_injector_design_problem.py +140 -0
- desdeo/problem/testproblems/simple_problem.py +351 -0
- desdeo/problem/testproblems/simulator_problem.py +92 -0
- desdeo/problem/testproblems/single_objective.py +289 -0
- desdeo/problem/testproblems/spanish_sustainability_problem.py +945 -0
- desdeo/problem/testproblems/zdt_problem.py +274 -0
- desdeo/problem/utils.py +245 -0
- desdeo/tools/GenerateReferencePoints.py +181 -0
- desdeo/tools/__init__.py +120 -0
- desdeo/tools/desc_gen.py +22 -0
- desdeo/tools/generics.py +165 -0
- desdeo/tools/group_scalarization.py +3090 -0
- desdeo/tools/gurobipy_solver_interfaces.py +258 -0
- desdeo/tools/indicators_binary.py +117 -0
- desdeo/tools/indicators_unary.py +362 -0
- desdeo/tools/interaction_schema.py +38 -0
- desdeo/tools/intersection.py +54 -0
- desdeo/tools/iterative_pareto_representer.py +99 -0
- desdeo/tools/message.py +265 -0
- desdeo/tools/ng_solver_interfaces.py +199 -0
- desdeo/tools/non_dominated_sorting.py +134 -0
- desdeo/tools/patterns.py +283 -0
- desdeo/tools/proximal_solver.py +99 -0
- desdeo/tools/pyomo_solver_interfaces.py +477 -0
- desdeo/tools/reference_vectors.py +229 -0
- desdeo/tools/scalarization.py +2065 -0
- desdeo/tools/scipy_solver_interfaces.py +454 -0
- desdeo/tools/score_bands.py +627 -0
- desdeo/tools/utils.py +388 -0
- desdeo/tools/visualizations.py +67 -0
- desdeo/utopia_stuff/__init__.py +0 -0
- desdeo/utopia_stuff/data/1.json +15 -0
- desdeo/utopia_stuff/data/2.json +13 -0
- desdeo/utopia_stuff/data/3.json +15 -0
- desdeo/utopia_stuff/data/4.json +17 -0
- desdeo/utopia_stuff/data/5.json +15 -0
- desdeo/utopia_stuff/from_json.py +40 -0
- desdeo/utopia_stuff/reinit_user.py +38 -0
- desdeo/utopia_stuff/utopia_db_init.py +212 -0
- desdeo/utopia_stuff/utopia_problem.py +403 -0
- desdeo/utopia_stuff/utopia_problem_old.py +415 -0
- desdeo/utopia_stuff/utopia_reference_solutions.py +79 -0
- desdeo-2.1.0.dist-info/METADATA +186 -0
- desdeo-2.1.0.dist-info/RECORD +180 -0
- {desdeo-1.2.dist-info → desdeo-2.1.0.dist-info}/WHEEL +1 -1
- desdeo-2.1.0.dist-info/licenses/LICENSE +21 -0
- desdeo-1.2.dist-info/METADATA +0 -16
- desdeo-1.2.dist-info/RECORD +0 -4
desdeo/tools/utils.py
ADDED
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
"""General utilities related to solvers."""
|
|
2
|
+
|
|
3
|
+
import shutil
|
|
4
|
+
from collections.abc import Callable
|
|
5
|
+
|
|
6
|
+
import numpy as np
|
|
7
|
+
import polars as pl
|
|
8
|
+
|
|
9
|
+
from desdeo.problem import (
|
|
10
|
+
ObjectiveTypeEnum,
|
|
11
|
+
Problem,
|
|
12
|
+
TensorVariable,
|
|
13
|
+
VariableDimensionEnum,
|
|
14
|
+
VariableDomainTypeEnum,
|
|
15
|
+
numpy_array_to_objective_dict,
|
|
16
|
+
variable_dimension_enumerate,
|
|
17
|
+
)
|
|
18
|
+
from desdeo.tools.generics import BaseSolver
|
|
19
|
+
from desdeo.tools.gurobipy_solver_interfaces import GurobipySolver, PersistentGurobipySolver
|
|
20
|
+
from desdeo.tools.ng_solver_interfaces import NevergradGenericOptions, NevergradGenericSolver
|
|
21
|
+
from desdeo.tools.proximal_solver import ProximalSolver
|
|
22
|
+
from desdeo.tools.pyomo_solver_interfaces import (
|
|
23
|
+
BonminOptions,
|
|
24
|
+
CbcOptions,
|
|
25
|
+
IpoptOptions,
|
|
26
|
+
PyomoBonminSolver,
|
|
27
|
+
PyomoCBCSolver,
|
|
28
|
+
PyomoGurobiSolver,
|
|
29
|
+
PyomoIpoptSolver,
|
|
30
|
+
)
|
|
31
|
+
from desdeo.tools.scipy_solver_interfaces import (
|
|
32
|
+
ScipyDeOptions,
|
|
33
|
+
ScipyDeSolver,
|
|
34
|
+
ScipyMinimizeOptions,
|
|
35
|
+
ScipyMinimizeSolver,
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
available_solvers = {
|
|
39
|
+
"scipy_minimize": {
|
|
40
|
+
"constructor": ScipyMinimizeSolver,
|
|
41
|
+
"options": ScipyMinimizeOptions,
|
|
42
|
+
},
|
|
43
|
+
"scipy_de": {
|
|
44
|
+
"constructor": ScipyDeSolver,
|
|
45
|
+
"options": ScipyDeOptions,
|
|
46
|
+
},
|
|
47
|
+
"proximal": {
|
|
48
|
+
"constructor": ProximalSolver,
|
|
49
|
+
"options": None,
|
|
50
|
+
},
|
|
51
|
+
"nevergrad": {"constructor": NevergradGenericSolver, "options": NevergradGenericOptions},
|
|
52
|
+
"pyomo_bonmin": {
|
|
53
|
+
"constructor": PyomoBonminSolver,
|
|
54
|
+
"options": BonminOptions,
|
|
55
|
+
},
|
|
56
|
+
"pyomo_cbc": {
|
|
57
|
+
"constructor": PyomoCBCSolver,
|
|
58
|
+
"options": CbcOptions,
|
|
59
|
+
},
|
|
60
|
+
"pyomo_ipopt": {
|
|
61
|
+
"constructor": PyomoIpoptSolver,
|
|
62
|
+
"options": IpoptOptions,
|
|
63
|
+
},
|
|
64
|
+
"pyomo_gurobi": {"constructor": PyomoGurobiSolver, "options": None},
|
|
65
|
+
"gurobipy": {
|
|
66
|
+
"constructor": GurobipySolver,
|
|
67
|
+
"options": None,
|
|
68
|
+
},
|
|
69
|
+
"gurobipy_persistent": {
|
|
70
|
+
"constructor": PersistentGurobipySolver,
|
|
71
|
+
"options": None,
|
|
72
|
+
},
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def find_compatible_solvers(problem: Problem) -> list[BaseSolver]:
|
|
77
|
+
"""Find solvers that are compatible with the problem that is being solved.
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
problem (Problem): The problem being solved.
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
list[BaseSolver]: A list of solvers that are compatible with the problem.
|
|
84
|
+
"""
|
|
85
|
+
solvers = []
|
|
86
|
+
|
|
87
|
+
# check for variable dimensions
|
|
88
|
+
# This could be also done by just checking if all the variables are Variables instead of TensorVariables
|
|
89
|
+
# as solvers at the moment do not care about the difference between 1D tensors and higher dimensions.
|
|
90
|
+
# This is because the solvers that utilize the polars evaluator (the only evaluator that works with
|
|
91
|
+
# scalars and 1D tensors and not higher dimensions) only support scalar valued variables at the moment.
|
|
92
|
+
var_dim = variable_dimension_enumerate(problem)
|
|
93
|
+
|
|
94
|
+
# check if problem has only data-based objectives
|
|
95
|
+
all_data_based = all(objective.objective_type == ObjectiveTypeEnum.data_based for objective in problem.objectives)
|
|
96
|
+
|
|
97
|
+
# check if problem has a discrete definition
|
|
98
|
+
has_discrete = problem.discrete_representation is not None
|
|
99
|
+
|
|
100
|
+
# check if problem is data-based
|
|
101
|
+
if all_data_based and has_discrete and var_dim == VariableDimensionEnum.scalar:
|
|
102
|
+
# problem has only data-based objectives and a discrete definition is available
|
|
103
|
+
# return ProximalSolver as it is the only solver for data-based problems at the moment
|
|
104
|
+
return [available_solvers["proximal"]["constructor"]]
|
|
105
|
+
|
|
106
|
+
# check if the problem is differentiable and if it is mixed integer
|
|
107
|
+
if (
|
|
108
|
+
problem.is_twice_differentiable
|
|
109
|
+
and shutil.which("bonmin")
|
|
110
|
+
and problem.variable_domain
|
|
111
|
+
in [
|
|
112
|
+
VariableDomainTypeEnum.integer,
|
|
113
|
+
VariableDomainTypeEnum.mixed,
|
|
114
|
+
]
|
|
115
|
+
):
|
|
116
|
+
solvers.append(available_solvers["pyomo_bonmin"]["constructor"]) # bonmin has to be installed
|
|
117
|
+
|
|
118
|
+
# check if the problem is differentiable and continuous
|
|
119
|
+
if (
|
|
120
|
+
problem.is_twice_differentiable
|
|
121
|
+
and shutil.which("ipopt")
|
|
122
|
+
and problem.variable_domain in [VariableDomainTypeEnum.continuous]
|
|
123
|
+
):
|
|
124
|
+
solvers.append(available_solvers["pyomo_ipopt"]["constructor"]) # ipopt has to be installed
|
|
125
|
+
|
|
126
|
+
# check if the problem is linear
|
|
127
|
+
if problem.is_linear:
|
|
128
|
+
solvers.append(available_solvers["gurobipy"]["constructor"])
|
|
129
|
+
if problem.is_linear and shutil.which("gurobi"):
|
|
130
|
+
solvers.append(available_solvers["pyomo_gurobi"]["constructor"]) # gurobi has to be installed
|
|
131
|
+
if problem.is_linear and shutil.which("cbc"):
|
|
132
|
+
solvers.append(available_solvers["pyomo_cbc"]["constructor"])
|
|
133
|
+
|
|
134
|
+
# check if problem's variables are all scalars
|
|
135
|
+
if var_dim == VariableDimensionEnum.scalar:
|
|
136
|
+
# nevergrad and scipy solvers work with all(?) problems with only scalar valued variables
|
|
137
|
+
solvers.append(available_solvers["nevergrad"]["constructor"])
|
|
138
|
+
solvers.append(available_solvers["scipy_minimize"]["constructor"])
|
|
139
|
+
solvers.append(available_solvers["scipy_de"]["constructor"])
|
|
140
|
+
return solvers
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def guess_best_solver(problem: Problem) -> BaseSolver: # noqa: PLR0911
|
|
144
|
+
"""Given a problem, tries to guess the best solver to handle it.
|
|
145
|
+
|
|
146
|
+
Args:
|
|
147
|
+
problem (Problem): the problem being solved.
|
|
148
|
+
|
|
149
|
+
Note:
|
|
150
|
+
Needs to be extended as new solvers are implemented.
|
|
151
|
+
|
|
152
|
+
Returns:
|
|
153
|
+
BaseSolver: a solver class that uses BaseSolver as a base class
|
|
154
|
+
"""
|
|
155
|
+
# needs to be extended as new solver are implemented
|
|
156
|
+
|
|
157
|
+
# check if problem has only data-based objectives
|
|
158
|
+
all_data_based = all(objective.objective_type == ObjectiveTypeEnum.data_based for objective in problem.objectives)
|
|
159
|
+
|
|
160
|
+
# check if problem has a discrete definition
|
|
161
|
+
has_discrete = problem.discrete_representation is not None
|
|
162
|
+
|
|
163
|
+
# TODO: when figured out what solver is best for problems with tensor variables: it seems that e.g. the
|
|
164
|
+
# forest problems don't work with pyomo_cbc. So VERY MUCH a quick fix to get something working, as those types of
|
|
165
|
+
# problems have been ok with gurobipy.
|
|
166
|
+
|
|
167
|
+
# if True in [isinstance(variable, TensorVariable) for variable in problem.variables]:
|
|
168
|
+
if False:
|
|
169
|
+
if problem.is_linear and shutil.which("cbc"):
|
|
170
|
+
return available_solvers["pyomo_cbc"]["constructor"]
|
|
171
|
+
|
|
172
|
+
if problem.is_linear:
|
|
173
|
+
return available_solvers["gurobipy"]["constructor"]
|
|
174
|
+
|
|
175
|
+
# check if the problem is differentiable and if it is mixed integer
|
|
176
|
+
if (
|
|
177
|
+
problem.is_twice_differentiable
|
|
178
|
+
and shutil.which("bonmin")
|
|
179
|
+
and problem.variable_domain
|
|
180
|
+
in [
|
|
181
|
+
VariableDomainTypeEnum.integer,
|
|
182
|
+
VariableDomainTypeEnum.mixed,
|
|
183
|
+
]
|
|
184
|
+
):
|
|
185
|
+
return available_solvers["pyomo_bonmin"]["constructor"]
|
|
186
|
+
|
|
187
|
+
# check if the problem is differentiable and continuous
|
|
188
|
+
if (
|
|
189
|
+
problem.is_twice_differentiable
|
|
190
|
+
and shutil.which("ipopt")
|
|
191
|
+
and problem.variable_domain in [VariableDomainTypeEnum.continuous]
|
|
192
|
+
):
|
|
193
|
+
return available_solvers["pyomo_ipopt"]["constructor"]
|
|
194
|
+
|
|
195
|
+
if all_data_based and has_discrete:
|
|
196
|
+
# problem has only data-based objectives and a discrete definition is available
|
|
197
|
+
# guess proximal solver is best
|
|
198
|
+
return available_solvers["proximal"]["constructor"]
|
|
199
|
+
|
|
200
|
+
# check if the problem is linear
|
|
201
|
+
if problem.is_linear:
|
|
202
|
+
return available_solvers["gurobipy"]["constructor"]
|
|
203
|
+
|
|
204
|
+
# check if the problem is differentiable and if it is mixed integer
|
|
205
|
+
if (
|
|
206
|
+
problem.is_twice_differentiable
|
|
207
|
+
and shutil.which("bonmin")
|
|
208
|
+
and problem.variable_domain
|
|
209
|
+
in [
|
|
210
|
+
VariableDomainTypeEnum.integer,
|
|
211
|
+
VariableDomainTypeEnum.mixed,
|
|
212
|
+
]
|
|
213
|
+
):
|
|
214
|
+
return available_solvers["pyomo_bonmin"]["constructor"]
|
|
215
|
+
|
|
216
|
+
# check if the problem is differentiable and continuous
|
|
217
|
+
if (
|
|
218
|
+
problem.is_twice_differentiable
|
|
219
|
+
and shutil.which("ipopt")
|
|
220
|
+
and problem.variable_domain in [VariableDomainTypeEnum.continuous]
|
|
221
|
+
):
|
|
222
|
+
return available_solvers["pyomo_ipopt"]["constructor"]
|
|
223
|
+
|
|
224
|
+
# else, guess nevergrad heuristics to be the best
|
|
225
|
+
return available_solvers["nevergrad"]["constructor"]
|
|
226
|
+
|
|
227
|
+
# thigs to check: variable types, does the problem have constraint, constraint types, etc...
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
def get_corrected_ideal_and_nadir(problem: Problem) -> tuple[dict[str, float | None], dict[str, float | None] | None]:
|
|
231
|
+
"""Compute the corrected ideal and nadir points depending if an objective function is to be maximized or not.
|
|
232
|
+
|
|
233
|
+
I.e., the ideal and nadir point element for objectives to be maximized will be multiplied by -1.
|
|
234
|
+
|
|
235
|
+
Args:
|
|
236
|
+
problem (Problem): the problem with the ideal and nadir points.
|
|
237
|
+
|
|
238
|
+
Raises:
|
|
239
|
+
ValueError: some of the ideal or nadir point components have not been defined
|
|
240
|
+
for some of the objectives.
|
|
241
|
+
|
|
242
|
+
Returns:
|
|
243
|
+
tuple[list[float], list[float]]: a list with the corrected ideal point
|
|
244
|
+
and a list with the corrected nadir point. Will return None for missing
|
|
245
|
+
elements.
|
|
246
|
+
"""
|
|
247
|
+
# check that ideal and nadir points are actually defined
|
|
248
|
+
if any(obj.ideal is None for obj in problem.objectives) or any(obj.nadir is None for obj in problem.objectives):
|
|
249
|
+
msg = "Some of the objectives have not a defined ideal or nadir value."
|
|
250
|
+
raise ValueError(msg)
|
|
251
|
+
|
|
252
|
+
ideal_point = {
|
|
253
|
+
objective.symbol: objective.ideal if not objective.maximize else -objective.ideal
|
|
254
|
+
for objective in problem.objectives
|
|
255
|
+
}
|
|
256
|
+
nadir_point = {
|
|
257
|
+
objective.symbol: objective.nadir if not objective.maximize else -objective.nadir
|
|
258
|
+
for objective in problem.objectives
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return ideal_point, nadir_point
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
def get_corrected_ideal(problem: Problem) -> dict[str, float | None]:
|
|
265
|
+
"""Compute the corrected ideal point depending if an objective function is to be maximized or not.
|
|
266
|
+
|
|
267
|
+
I.e., the ideal point element for objectives to be maximized will be multiplied by -1.
|
|
268
|
+
|
|
269
|
+
Args:
|
|
270
|
+
problem (Problem): the problem with the ideal point.
|
|
271
|
+
|
|
272
|
+
Raises:
|
|
273
|
+
ValueError: some of the ideal point components have not been defined
|
|
274
|
+
for some of the objectives.
|
|
275
|
+
|
|
276
|
+
Returns:
|
|
277
|
+
list[float]: a list with the corrected ideal point. Will return None for missing elements.
|
|
278
|
+
"""
|
|
279
|
+
# check that ideal points are actually defined
|
|
280
|
+
if any(obj.ideal is None for obj in problem.objectives):
|
|
281
|
+
msg = "Some of the objectives have not a defined ideal value."
|
|
282
|
+
raise ValueError(msg)
|
|
283
|
+
|
|
284
|
+
return {
|
|
285
|
+
objective.symbol: objective.ideal if not objective.maximize else -objective.ideal
|
|
286
|
+
for objective in problem.objectives
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
def get_corrected_nadir(problem: Problem) -> dict[str, float | None]:
|
|
291
|
+
"""Compute the corrected nadir point depending if an objective function is to be maximized or not.
|
|
292
|
+
|
|
293
|
+
I.e., the nadir point element for objectives to be maximized will be multiplied by -1.
|
|
294
|
+
|
|
295
|
+
Args:
|
|
296
|
+
problem (Problem): the problem with the nadir points.
|
|
297
|
+
|
|
298
|
+
Raises:
|
|
299
|
+
ValueError: some of the nadir point components have not been defined
|
|
300
|
+
for some of the objectives.
|
|
301
|
+
|
|
302
|
+
Returns:
|
|
303
|
+
list[float]: a list with the corrected nadir point. Will return None for missing elements.
|
|
304
|
+
"""
|
|
305
|
+
# check that nadir points are actually defined
|
|
306
|
+
if any(obj.nadir is None for obj in problem.objectives):
|
|
307
|
+
msg = "Some of the objectives have not a defined nadir value."
|
|
308
|
+
raise ValueError(msg)
|
|
309
|
+
|
|
310
|
+
return {
|
|
311
|
+
objective.symbol: objective.nadir if not objective.maximize else -objective.nadir
|
|
312
|
+
for objective in problem.objectives
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
def flip_maximized_objective_values(problem: Problem, objective_values: dict[str, float]) -> dict[str, float]:
|
|
317
|
+
"""Flips the objective values if the objective function is to be maximized.
|
|
318
|
+
|
|
319
|
+
Flips the objective values if the objective function is to be maximized by multiplying
|
|
320
|
+
the values related to maximized objective functions by -1.
|
|
321
|
+
|
|
322
|
+
Args:
|
|
323
|
+
problem (Problem): the problem the objective values are related to.
|
|
324
|
+
objective_values (dict[str, float]): the objective values to be flipped.
|
|
325
|
+
|
|
326
|
+
Returns:
|
|
327
|
+
dict[str, float]: the flipped objective values.
|
|
328
|
+
"""
|
|
329
|
+
return {
|
|
330
|
+
obj.symbol: objective_values[obj.symbol] * -1 if obj.maximize else objective_values[obj.symbol]
|
|
331
|
+
for obj in problem.objectives
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
def payoff_table_method(problem: Problem, solver: BaseSolver = None) -> tuple[dict[str, float], dict[str, float]]:
|
|
336
|
+
"""Solves a representation for the ideal and nadir points for a multiobjective optimization problem.
|
|
337
|
+
|
|
338
|
+
Args:
|
|
339
|
+
problem (Problem): The problem for which the ideal and nadir are solved.
|
|
340
|
+
solver (BaseSolver): The solver to be used in solving the points. Defaults to None.
|
|
341
|
+
|
|
342
|
+
Returns:
|
|
343
|
+
tuple[dict[str, float], dict[str, float]]: The estimated ideal and nadir points.
|
|
344
|
+
"""
|
|
345
|
+
solver = solver if solver is not None else guess_best_solver(problem)
|
|
346
|
+
solver = solver(problem)
|
|
347
|
+
|
|
348
|
+
k = len(problem.objectives)
|
|
349
|
+
po_table = np.zeros((k, k))
|
|
350
|
+
|
|
351
|
+
for i in range(k):
|
|
352
|
+
res = solver.solve(f"{problem.objectives[i].symbol}_min")
|
|
353
|
+
for j in range(k):
|
|
354
|
+
po_table[i][j] = res.optimal_objectives[problem.objectives[j].symbol]
|
|
355
|
+
|
|
356
|
+
ideal = np.diag(po_table)
|
|
357
|
+
nadir = []
|
|
358
|
+
|
|
359
|
+
for i in range(k):
|
|
360
|
+
if problem.objectives[i].maximize:
|
|
361
|
+
nadir.append(np.min(po_table.T[i]))
|
|
362
|
+
else:
|
|
363
|
+
nadir.append(np.max(po_table.T[i]))
|
|
364
|
+
return numpy_array_to_objective_dict(problem, ideal), numpy_array_to_objective_dict(problem, nadir)
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
def repair(lower_bounds: dict[str, float], upper_bounds: dict[str, float]) -> Callable[[pl.DataFrame], pl.DataFrame]:
|
|
368
|
+
"""Repairs the offspring by clipping the values to be within the specified bounds.
|
|
369
|
+
|
|
370
|
+
Useful in evolutionary algorithms where offspring may go out of bounds due to crossover or mutation operations.
|
|
371
|
+
|
|
372
|
+
Args:
|
|
373
|
+
offspring (pl.DataFrame): The offspring to be repaired.
|
|
374
|
+
lower_bounds (dict[str, float]): The lower bounds for each variable.
|
|
375
|
+
upper_bounds (dict[str, float]): The upper bounds for each variable.
|
|
376
|
+
|
|
377
|
+
Returns:
|
|
378
|
+
Callable[[pl.DataFrame], pl.DataFrame]: A function that takes a DataFrame and returns a repaired DataFrame.
|
|
379
|
+
"""
|
|
380
|
+
|
|
381
|
+
def actual_repair(offspring: pl.DataFrame) -> pl.DataFrame:
|
|
382
|
+
for var in offspring.columns:
|
|
383
|
+
offspring = offspring.with_columns(
|
|
384
|
+
pl.col(var).clip(lower_bound=lower_bounds[var], upper_bound=upper_bounds[var])
|
|
385
|
+
)
|
|
386
|
+
return offspring
|
|
387
|
+
|
|
388
|
+
return actual_repair
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import plotly.graph_objects as go
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def scatter_plot_comparison(
|
|
5
|
+
*results, x_key="f_1", y_key="f_2", z_key=None, reference_point=None, names=None
|
|
6
|
+
):
|
|
7
|
+
"""
|
|
8
|
+
Plots multiple sets of data in a scatter plot (2D or 3D depending on the data).
|
|
9
|
+
|
|
10
|
+
Parameters:
|
|
11
|
+
*results: Variable number of result objects, each containing outputs with keys for x, y, and optionally z.
|
|
12
|
+
x_key: Key for the x-axis data in the outputs.
|
|
13
|
+
y_key: Key for the y-axis data in the outputs.
|
|
14
|
+
z_key: Key for the z-axis data in the outputs (optional, for 3D plots).
|
|
15
|
+
reference_point: A dictionary with keys matching x_key, y_key, and optionally z_key, representing the reference point to plot.
|
|
16
|
+
names: List of names for each data set to display in the legend.
|
|
17
|
+
"""
|
|
18
|
+
traces = []
|
|
19
|
+
is_3d = z_key is not None and all(z_key in result.outputs for result in results)
|
|
20
|
+
|
|
21
|
+
if names is None:
|
|
22
|
+
names = [f"Dataset {i+1}" for i in range(len(results))]
|
|
23
|
+
|
|
24
|
+
for i, (result, name) in enumerate(zip(results, names)):
|
|
25
|
+
color = f"hsl({i * 360 / len(results)}, 100%, 50%)" # Generate distinct colors
|
|
26
|
+
if is_3d:
|
|
27
|
+
trace = go.Scatter3d(
|
|
28
|
+
x=result.outputs[x_key],
|
|
29
|
+
y=result.outputs[y_key],
|
|
30
|
+
z=result.outputs[z_key],
|
|
31
|
+
mode="markers",
|
|
32
|
+
marker=dict(size=4, color=color, symbol="circle"),
|
|
33
|
+
name=name,
|
|
34
|
+
)
|
|
35
|
+
else:
|
|
36
|
+
trace = go.Scatter(
|
|
37
|
+
x=result.outputs[x_key],
|
|
38
|
+
y=result.outputs[y_key],
|
|
39
|
+
mode="markers",
|
|
40
|
+
marker=dict(size=8, color=color, symbol="circle"),
|
|
41
|
+
name=name,
|
|
42
|
+
)
|
|
43
|
+
traces.append(trace)
|
|
44
|
+
|
|
45
|
+
if reference_point:
|
|
46
|
+
if is_3d:
|
|
47
|
+
ref_trace = go.Scatter3d(
|
|
48
|
+
x=[reference_point[x_key]],
|
|
49
|
+
y=[reference_point[y_key]],
|
|
50
|
+
z=[reference_point[z_key]],
|
|
51
|
+
mode="markers",
|
|
52
|
+
marker=dict(size=4, color="black", symbol="circle"),
|
|
53
|
+
name="Reference Point",
|
|
54
|
+
)
|
|
55
|
+
else:
|
|
56
|
+
ref_trace = go.Scatter(
|
|
57
|
+
x=[reference_point[x_key]],
|
|
58
|
+
y=[reference_point[y_key]],
|
|
59
|
+
mode="markers",
|
|
60
|
+
marker=dict(size=8, color="black", symbol="circle"),
|
|
61
|
+
name="Reference Point",
|
|
62
|
+
)
|
|
63
|
+
traces.append(ref_trace)
|
|
64
|
+
|
|
65
|
+
fig = go.Figure(data=traces)
|
|
66
|
+
|
|
67
|
+
return fig
|
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{"type":"FeatureCollection", "features": [
|
|
2
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356335.0831461464,6858133.939323606],[356333.2308989554,6858130.499435965],[356333.76011243934,6858125.207862936],[356337.7292135623,6858114.624716867],[356339.14325850626,6858105.498874176],[356334.66516861843,6858102.979211247],[356328.53426974267,6858105.215166304],[356307.2831461467,6858119.02190787],[356296.9657304167,6858120.995503381],[356289.64382030466,6858119.329211239],[356281.19269670884,6858125.418537089],[356270.62528097886,6858130.362357308],[356258.1123596311,6858130.260671916],[356251.21011244005,6858133.145503373],[356229.77865176526,6858179.447750561],[356229.25842704636,6858186.202244941],[356232.5994382824,6858199.99381798],[356094.6629214294,6858155.82303144],[356093.8842697445,6858155.573593242],[356091.1106742385,6858154.685390993],[356083.6831461486,6858152.3067393005],[356083.57584277866,6858150.474716829],[356083.5601124416,6858148.47584043],[356083.5707865985,6858146.79718874],[356083.6977528907,6858143.999997731],[356083.7522472726,6858142.802806719],[356083.8691012055,6858141.24718874],[356083.9949439018,6858139.925278631],[356085.1320225535,6858127.99999773],[356085.41179783444,6858125.066851662],[356085.62921356445,6858117.074155032],[356085.5151686204,6858111.99999773],[356085.4230337895,6858107.903930313],[356085.35280907043,6858104.788761781],[356085.08988772135,6858095.99999773],[356084.9938203067,6858092.799997731],[356084.82921356463,6858090.584829191],[356084.6977528904,6858088.811795481],[356084.6550562614,6858088.353930321],[356084.34887648653,6858084.367975261],[356084.3308989574,6858082.370222452],[356084.6735955874,6858079.999997732],[356084.70674165455,6858079.770222453],[356085.2848315424,6858077.857862902],[356086.0870787335,6858076.026964021],[356087.00393266545,6858074.251121331],[356087.4129214294,6858073.538199981],[356088.9932585085,6858070.782020203],[356089.2949439013,6858070.284267391],[356089.90112367645,6858068.379211212],[356090.37303378945,6858066.437076381],[356090.8550562615,6858063.999997732],[356091.27977536246,6858061.848874133],[356091.53595513746,6858060.553930323],[356091.83426974446,6858059.330896613],[356092.42696637334,6858057.423031443],[356093.94325850846,6858053.724155033],[356094.83426974446,6858051.935952793],[356096.0000000813,6858049.777525823],[356096.96011244145,6858047.999997732],[356097.7000000815,6858046.629773015],[356098.04438210337,6858046.139885374],[356100.1994382832,6858043.0690988535],[356100.52471918234,6858041.585952795],[356100.5483146883,6858041.479211214],[356100.76910120534,6858041.137076383],[356102.6421349124,6858038.239323574],[356103.2623596324,6858036.642132566],[356104.1971910922,6858034.235952795],[356105.20224727213,6858032.507862903],[356105.5117978343,6858031.999997736],[356105.86516862025,6858031.420222457],[356108.07078659825,6858028.085952797],[356110.44606749713,6858024.870222454],[356112.00000008126,6858023.013480886],[356115.57696637337,6858018.738761786],[356116.91404502525,6858017.251121337],[356116.96123603615,6858017.199997738],[356117.8342697442,6858016.247750546],[356118.0573034523,6858015.999997735],[356121.8471910923,6858011.791008977],[356123.0898877211,6858010.226964026],[356124.1949439011,6858008.561795487],[356124.6797753622,6858007.720784258],[356125.55000008113,6858005.9230314465],[356126.276966373,6858004.0612336965],[356126.9022472721,6858002.161233699],[356127.4977528902,6857999.99999774],[356127.71460682305,6857999.212919087],[356128.000000081,6857998.176402237],[356129.02584277815,6857994.452244931],[356129.46404502506,6857993.057862909],[356130.946067497,6857989.346065159],[356131.8230337892,6857987.549997739],[356132.78202255303,6857985.796065158],[356133.80617985595,6857984.079773018],[356133.85786525,6857983.99999774],[356134.89325850783,6857982.401121339],[356135.74269671,6857981.174155038],[356135.7651686201,6857981.142132569],[356136.95112367696,6857979.532020209],[356138.19101131696,6857977.96404268],[356139.4859551368,6857976.441008979],[356139.910674238,6857975.978649429],[356139.5129214289,6857976.456177518],[356140.410674238,6857976.689323579],[356145.53314614785,6857978.017413471],[356154.5859551369,6857975.191570771],[356162.31573041785,6857971.447750554],[356166.4544944628,6857969.442694373],[356175.69044951885,6857957.898874156],[356181.40449446253,6857953.136514596],[356185.21460682247,6857942.660110106],[356185.8713483955,6857937.404492126],[356186.1668540137,6857935.0410089865],[356184.2617978336,6857929.3269640375],[356194.2320225525,6857918.021346059],[356224.53988772025,6857941.37696404],[356238.3455056982,6857947.330896632],[356243.9500000801,6857952.016289894],[356254.67977536086,6857973.784267416],[356262.59494389984,6857986.106739326],[356262.825280979,6857993.705053937],[356259.1213483951,6858002.1719078645],[356258.062921428,6858009.580334836],[356263.88370794494,6858018.576402254],[356271.29213491187,6858025.191008996],[356292.98764052865,6858029.95336855],[356317.06516861846,6858041.065728103],[356326.58988771937,6858041.594941584],[356339.4792135622,6858037.963480917],[356345.1623596303,6858046.149997767],[356348.93314614636,6858058.698874178],[356352.5910113152,6858077.060671927],[356356.90224727034,6858086.484829227],[356362.5567416521,6858090.149997772],[356373.5084270451,6858090.642132602],[356376.50224726996,6858094.801683161],[356374.706179854,6858117.369098892],[356371.51573041617,6858123.776402261],[356362.1162922142,6858135.084829229],[356355.6488764844,6858139.99437979],[356345.34044951724,6858135.103930357],[356335.0831461464,6858133.939323606]]]},"properties":{"id":909,"standid":34478868,"parcelid":null,"realestate":null,"standnumbe":26,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"T2","standquali":10,"maintreesp":2,"accessibil":4,"standinfo":"","datasource":11,"growthplac":101,"area":4.357,"areadecrea":0,"creationti":"2021/04/13 21:06:27.000","updatetime":"2021/04/13 21:06:27.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
3
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356370.870786596,6858043.43089665],[356362.189887719,6858056.821907879],[356348.93314614636,6858058.698874178],[356345.1623596303,6858046.149997767],[356339.4792135622,6858037.963480917],[356326.58988771937,6858041.594941584],[356317.06516861846,6858041.065728103],[356292.98764052865,6858029.95336855],[356271.29213491187,6858025.191008996],[356263.88370794494,6858018.576402254],[356258.062921428,6858009.580334836],[356259.1213483951,6858002.1719078645],[356262.825280979,6857993.705053937],[356262.59494389984,6857986.106739326],[356254.67977536086,6857973.784267416],[356243.9500000801,6857952.016289894],[356238.3455056982,6857947.330896632],[356224.53988772025,6857941.37696404],[356194.2320225525,6857918.021346059],[356189.4561798555,6857906.4522449365],[356184.5960674966,6857903.798312356],[356181.2516854735,6857897.751683136],[356176.03707873257,6857859.488761795],[356182.0365169345,6857855.748874147],[356182.7578652495,6857855.220784265],[356189.3398877204,6857849.508986508],[356192.00000008044,6857850.659548306],[356199.8421349115,6857854.049997749],[356201.9584270463,6857854.965166288],[356291.3202247985,6857893.602806748],[356326.0331461464,6857908.612357317],[356363.43539333704,6857924.7837056415],[356365.2511236739,6857925.569098892],[356368.000000079,6857926.75786294],[356372.4359551348,6857928.67584047],[356365.3224719891,6857949.882582039],[356364.82022479805,6857951.182020241],[356364.529213562,6857952.2471887795],[356364.48146075313,6857952.5679753],[356363.096629292,6857964.012357322],[356361.50617985404,6857976.875840469],[356361.466854012,6857977.3426944],[356360.83707873104,6857991.359548329],[356360.8314607531,6857991.667413499],[356360.93876412406,6858000.07696406],[356360.956741652,6858000.260671929],[356360.95449446107,6858000.445503391],[356361.27752816916,6858004.785391032],[356361.3522472701,6858005.38202024],[356361.40280906827,6858005.635952829],[356363.695505697,6858015.99999777],[356363.3539326633,6858030.046065192],[356366.449438281,6858041.0168517],[356370.870786596,6858043.43089665]]]},"properties":{"id":910,"standid":34478871,"parcelid":null,"realestate":null,"standnumbe":27,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"03","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":1.999,"areadecrea":0,"creationti":"2020/10/01 21:22:18.000","updatetime":"2020/10/01 21:22:18.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
4
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356512.77977535874,6857989.32696408],[356504.33707873,6857997.002244979],[356489.1235955842,6858004.278087677],[356475.8943821012,6858012.877525875],[356458.0348315392,6858026.106739354],[356440.83707873046,6858034.043818002],[356429.59213491064,6858038.674155079],[356418.1432585056,6858048.73145845],[356395.2634832248,6858039.389885415],[356379.26685401186,6858022.698312382],[356373.21235963,6858003.465166313],[356373.44438210106,6857978.115728111],[356375.0078652479,6857965.469660692],[356376.30449446087,6857954.752806765],[356382.1786517638,6857939.546065193],[356382.4056180568,6857938.796065193],[356383.6314607529,6857933.516289912],[356384.0000000789,6857933.675840473],[356389.375280978,6857935.999997773],[356390.8977528879,6857936.6578629445],[356393.0904495169,6857937.606177555],[356394.4056180568,6857938.175278676],[356437.2432585054,6857956.697188791],[356462.02415738115,6857967.401683175],[356471.71067423525,6857971.586514635],[356505.6696629989,6857986.255615771],[356506.63539333583,6857986.673031499],[356512.0000000778,6857988.9904472325],[356512.77977535874,6857989.32696408]]]},"properties":{"id":911,"standid":34478872,"parcelid":null,"realestate":null,"standnumbe":28,"standnum_1":"","maingroup":1,"subgroup":2,"fertilityc":3,"soiltype":60,"drainagest":8,"ditchingye":1983,"thinningye":null,"developmen":"03","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":0.891,"areadecrea":0,"creationti":"2020/10/01 21:22:18.000","updatetime":"2020/10/01 21:22:18.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
5
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356512.77977535874,6857989.32696408],[356525.7842697407,6857994.944379813],[356526.92471917864,6857995.437076444],[356528.00000007777,6857995.901683183],[356537.48707872967,6857999.999997795],[356541.6612360325,6858001.803368585],[356544.0000000774,6858002.813480944],[356560.0000000774,6858009.724716898],[356566.7404495154,6858012.636514648],[356583.52415738045,6858019.887076451],[356592.00000007707,6858023.548312412],[356593.02247198706,6858023.989885441],[356594.53932592017,6858024.644941619],[356605.84044951515,6858029.526964093],[356590.7780899651,6858025.89606522],[356589.9595506394,6858025.75786297],[356589.12921356026,6858025.73370566],[356573.5612360325,6858026.3640427375],[356572.7634832235,6858026.449997798],[356544.5179776056,6858031.423031504],[356543.6174158075,6858031.655053975],[356497.518539404,6858047.421907897],[356469.2033708651,6858054.266851714],[356468.9207865951,6858054.265728124],[356455.30449446046,6858054.124155084],[356449.2640450226,6858054.189323621],[356428.4870787306,6858052.95505396],[356418.1432585056,6858048.73145845],[356429.59213491064,6858038.674155079],[356440.83707873046,6858034.043818002],[356458.0348315392,6858026.106739354],[356475.8943821012,6858012.877525875],[356489.1235955842,6858004.278087677],[356504.33707873,6857997.002244979],[356512.77977535874,6857989.32696408]]]},"properties":{"id":912,"standid":34478873,"parcelid":null,"realestate":null,"standnumbe":29,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":10,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"T1","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":0.5,"areadecrea":0,"creationti":"2021/04/13 21:06:27.000","updatetime":"2021/04/13 21:06:27.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
6
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356557.76853940345,6858155.699435997],[356547.85842704354,6858163.882020265],[356540.89662929164,6858166.743256224],[356532.1758427746,6858164.843256222],[356528.42977535876,6858158.348312402],[356515.9331461451,6858159.53595285],[356502.910674235,6858169.598874188],[356489.07584277506,6858175.321907897],[356474.4561798532,6858187.105053963],[356456.89157311234,6858191.928649472],[356454.7898877184,6858195.511795532],[356456.11123603326,6858202.472469692],[356439.24157311255,6858219.688761819],[356424.0011236747,6858240.643817997],[356417.01629221375,6858244.665728118],[356410.0314607529,6858241.914042717],[356408.76123603387,6858234.928649466],[356417.0162922137,6858220.324155076],[356414.2646068208,6858213.973593285],[356414.47640457284,6858203.602244967],[356416.9235955847,6858197.137076428],[356420.9382023257,6858193.313480928],[356427.1876405276,6858174.161233738],[356436.60000007856,6858157.242694411],[356441.8050562585,6858135.6207843],[356440.2505618766,6858124.4511213815],[356429.8617978316,6858114.44269441],[356422.90112367366,6858111.116851709],[356417.41460682056,6858110.574155079],[356397.97977535974,6858122.271346085],[356391.5870787308,6858129.062919123],[356388.5955056971,6858136.004492152],[356383.607865248,6858136.426402273],[356378.051685472,6858139.865728111],[356368.7910113152,6858139.865728111],[356362.1162922142,6858135.084829229],[356371.51573041617,6858123.776402261],[356374.706179854,6858117.369098892],[356376.50224726996,6858094.801683161],[356373.5084270451,6858090.642132602],[356362.5567416521,6858090.149997772],[356356.90224727034,6858086.484829227],[356352.5910113152,6858077.060671927],[356348.93314614636,6858058.698874178],[356362.189887719,6858056.821907879],[356370.870786596,6858043.43089665],[356387.8022472698,6858056.906739342],[356401.0522472698,6858063.962919124],[356408.2820225507,6858064.147750585],[356415.2691012027,6858060.648312387],[356424.9325843486,6858064.452244969],[356425.7882023256,6858064.7168517085],[356426.6735955847,6858064.85168317],[356444.57022479735,6858066.217413511],[356445.05955064064,6858066.234829241],[356455.3061798533,6858066.124155083],[356465.16853940435,6858066.226964073],[356468.4393259213,6858074.671346105],[356468.5898877182,6858075.026964074],[356476.57303378615,6858092.253930366],[356477.0938203031,6858093.160671945],[356477.7640450224,6858093.963480937],[356478.5640450222,6858094.637638236],[356479.4685394041,6858095.162919136],[356480.4500000782,6858095.523031496],[356481.4797753593,6858095.706739356],[356482.52584277536,6858095.709548345],[356483.55617985304,6858095.530334868],[356484.5398877179,6858095.174716884],[356485.4466292912,6858094.653930367],[356486.2494382801,6858093.983705656],[356486.9235955841,6858093.184267447],[356487.44887648313,6858092.279773067],[356487.808988842,6858091.297750596],[356487.992696707,6858090.267975316],[356487.99550569616,6858089.222469696],[356487.81629221304,6858088.192132617],[356487.460674235,6858087.208424756],[356482.84831468534,6858077.254492166],[356477.41741580825,6858064.6269640755],[356500.607865247,6858059.020784309],[356501.139887718,6858058.866289929],[356547.0589888415,6858043.160110155],[356574.44831468444,6858038.337638249],[356588.77921356016,6858037.75786297],[356613.780898953,6858045.106177586],[356611.90168547,6858057.543818034],[356598.7247191781,6858077.788761851],[356557.61179783056,6858097.514042746],[356553.72359558346,6858104.7578629665],[356549.9134832236,6858120.6331438655],[356551.6674158076,6858137.393256225],[356557.76853940345,6858155.699435997]]]},"properties":{"id":913,"standid":34478874,"parcelid":null,"realestate":null,"standnumbe":14,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":10,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"03","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":2.226,"areadecrea":0,"creationti":"2020/10/01 21:22:18.000","updatetime":"2020/10/01 21:22:18.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
7
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356335.0831461464,6858133.939323606],[356324.87022479845,6858143.834829226],[356315.0808989556,6858159.974155064],[356306.87865176465,6858167.117975291],[356292.32640457386,6858190.6657281],[356280.94943828194,6858200.191008999],[356274.8842697429,6858213.534267417],[356273.6191012041,6858213.129211238],[356241.52696637216,6858202.8522449415],[356232.5994382824,6858199.99381798],[356229.25842704636,6858186.202244941],[356229.77865176526,6858179.447750561],[356251.21011244005,6858133.145503373],[356258.1123596311,6858130.260671916],[356270.62528097886,6858130.362357308],[356281.19269670884,6858125.418537089],[356289.64382030466,6858119.329211239],[356296.9657304167,6858120.995503381],[356307.2831461467,6858119.02190787],[356328.53426974267,6858105.215166304],[356334.66516861843,6858102.979211247],[356339.14325850626,6858105.498874176],[356337.7292135623,6858114.624716867],[356333.76011243934,6858125.207862936],[356333.2308989554,6858130.499435965],[356335.0831461464,6858133.939323606]]]},"properties":{"id":915,"standid":34478876,"parcelid":null,"realestate":null,"standnumbe":11,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"02","standquali":0,"maintreesp":2,"accessibil":4,"standinfo":"","datasource":11,"growthplac":101,"area":0.62,"areadecrea":0,"creationti":"2020/10/01 21:22:19.000","updatetime":"2020/10/01 21:22:19.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
8
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356416.9235955847,6858197.137076428],[356392.00000007893,6858214.999997772],[356384.07303378714,6858228.889885411],[356380.7702247981,6858238.467975302],[356383.21348322503,6858248.224155072],[356363.07359558524,6858241.774716868],[356361.9117978323,6858229.03033485],[356345.8061798542,6858213.024716866],[356353.02752816933,6858199.993256199],[356367.5528090681,6858187.752806761],[356369.2831461462,6858170.643817989],[356370.1747191801,6858162.06235732],[356379.1595506409,6858157.857301141],[356384.95730345,6858150.778087664],[356388.5955056971,6858136.004492152],[356391.5870787308,6858129.062919123],[356397.97977535974,6858122.271346085],[356417.41460682056,6858110.574155079],[356422.90112367366,6858111.116851709],[356429.8617978316,6858114.44269441],[356440.2505618766,6858124.4511213815],[356441.8050562585,6858135.6207843],[356436.60000007856,6858157.242694411],[356427.1876405276,6858174.161233738],[356420.9382023257,6858193.313480928],[356416.9235955847,6858197.137076428]]]},"properties":{"id":916,"standid":34478877,"parcelid":null,"realestate":null,"standnumbe":13,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"T2","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":0.618,"areadecrea":0,"creationti":"2020/10/01 21:22:19.000","updatetime":"2020/10/01 21:22:19.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
9
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356388.5955056971,6858136.004492152],[356384.95730345,6858150.778087664],[356379.1595506409,6858157.857301141],[356370.1747191801,6858162.06235732],[356369.2831461462,6858170.643817989],[356367.5528090681,6858187.752806761],[356353.02752816933,6858199.993256199],[356345.8061798542,6858213.024716866],[356361.9117978323,6858229.03033485],[356363.07359558524,6858241.774716868],[356328.86404502345,6858230.820222484],[356303.7702247987,6858222.78426742],[356274.8842697429,6858213.534267417],[356280.94943828194,6858200.191008999],[356292.32640457386,6858190.6657281],[356306.87865176465,6858167.117975291],[356315.0808989556,6858159.974155064],[356324.87022479845,6858143.834829226],[356335.0831461464,6858133.939323606],[356345.34044951724,6858135.103930357],[356355.6488764844,6858139.99437979],[356362.1162922142,6858135.084829229],[356368.7910113152,6858139.865728111],[356378.051685472,6858139.865728111],[356383.607865248,6858136.426402273],[356388.5955056971,6858136.004492152]]]},"properties":{"id":918,"standid":34478879,"parcelid":null,"realestate":null,"standnumbe":12,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":10,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"02","standquali":0,"maintreesp":2,"accessibil":3,"standinfo":"","datasource":11,"growthplac":101,"area":0.619,"areadecrea":0,"creationti":"2020/10/01 21:22:19.000","updatetime":"2020/10/01 21:22:19.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
10
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356546.1365169317,6858239.357862965],[356541.6179776058,6858248.783143862],[356533.40337086486,6858255.041570822],[356511.1786517631,6858264.778087679],[356501.90000007825,6858264.641009029],[356476.3494382802,6858247.210110146],[356464.29943828046,6858251.526964073],[356459.32022479747,6858259.486514633],[356455.42078659544,6858271.3466269905],[356443.26348322455,6858267.453930361],[356426.3713483937,6858262.044379796],[356400.73089895496,6858253.833705644],[356383.21348322503,6858248.224155072],[356380.7702247981,6858238.467975302],[356384.07303378714,6858228.889885411],[356392.00000007893,6858214.999997772],[356416.9235955847,6858197.137076428],[356414.47640457284,6858203.602244967],[356414.2646068208,6858213.973593285],[356417.0162922137,6858220.324155076],[356408.76123603387,6858234.928649466],[356410.0314607529,6858241.914042717],[356417.01629221375,6858244.665728118],[356424.0011236747,6858240.643817997],[356439.24157311255,6858219.688761819],[356456.11123603326,6858202.472469692],[356454.7898877184,6858195.511795532],[356456.89157311234,6858191.928649472],[356474.4561798532,6858187.105053963],[356489.07584277506,6858175.321907897],[356502.910674235,6858169.598874188],[356515.9331461451,6858159.53595285],[356528.42977535876,6858158.348312402],[356532.1758427746,6858164.843256222],[356540.89662929164,6858166.743256224],[356547.85842704354,6858163.882020265],[356557.76853940345,6858155.699435997],[356567.6983146845,6858151.803930377],[356573.1775281674,6858152.946627008],[356575.18483153824,6858155.535391058],[356574.52303378534,6858160.088761849],[356565.0713483925,6858180.775278696],[356568.48483153846,6858212.506739366],[356562.76573041454,6858225.930334876],[356560.76797760546,6858235.321346108],[356552.18370794266,6858235.338761846],[356546.1365169317,6858239.357862965]]]},"properties":{"id":920,"standid":34478881,"parcelid":null,"realestate":null,"standnumbe":15,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":10,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"T2","standquali":0,"maintreesp":2,"accessibil":4,"standinfo":"","datasource":11,"growthplac":101,"area":1.211,"areadecrea":0,"creationti":"2020/10/01 21:22:19.000","updatetime":"2020/10/01 21:22:19.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
11
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356546.1365169317,6858239.357862965],[356551.5275281676,6858256.205615775],[356547.29438209976,6858276.948874195],[356536.5112360328,6858297.314042733],[356455.42078659544,6858271.3466269905],[356459.32022479747,6858259.486514633],[356464.29943828046,6858251.526964073],[356476.3494382802,6858247.210110146],[356501.90000007825,6858264.641009029],[356511.1786517631,6858264.778087679],[356533.40337086486,6858255.041570822],[356541.6179776058,6858248.783143862],[356546.1365169317,6858239.357862965]]]},"properties":{"id":923,"standid":34478884,"parcelid":null,"realestate":null,"standnumbe":16,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"02","standquali":0,"maintreesp":2,"accessibil":1,"standinfo":"","datasource":11,"growthplac":101,"area":0.269,"areadecrea":0,"creationti":"2020/10/01 21:22:19.000","updatetime":"2020/10/01 21:22:19.000","layer":"x4tmp1","path":"C:\\temp\\HYDE\\export\\x4tmp1.shp|layername=x4tmp1"}},
|
|
12
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356184.2617978336,6857929.3269640375],[356186.1668540137,6857935.0410089865],[356185.8713483955,6857937.404492126],[356185.21460682247,6857942.660110106],[356181.40449446253,6857953.136514596],[356175.69044951885,6857957.898874156],[356166.4544944628,6857969.442694373],[356154.5859551369,6857975.191570771],[356145.53314614785,6857978.017413471],[356140.410674238,6857976.689323579],[356139.5129214289,6857976.456177518],[356139.910674238,6857975.978649429],[356140.83820232796,6857974.969098861],[356142.2511236769,6857973.55393032],[356142.8280899689,6857973.006739311],[356144.2752809798,6857971.629211219],[356145.638764126,6857970.1668516705],[356146.46179783385,6857969.035952802],[356147.2280899688,6857967.19437976],[356147.4921349118,6857964.974716841],[356147.13426974387,6857963.015166281],[356146.3140450248,6857961.194941561],[356145.26797760883,6857959.493256172],[356144.83089895686,6857958.86516628],[356143.62303378887,6857957.270784262],[356142.32977536187,6857955.747188751],[356140.9432585079,6857954.308986499],[356139.45000008086,6857952.97921122],[356138.33876412583,6857952.11685167],[356136.676966373,6857951.005053919],[356134.929775362,6857950.034829198],[356133.10786525,6857949.212919088],[356131.382022553,6857948.599997738],[356129.45112367696,6857948.087076389],[356129.167415811,6857948.029211219],[356129.07921356393,6857948.011233699],[356128.0000000809,6857947.791008978],[356123.57528098003,6857946.888761788],[356122.28707873315,6857946.580896617],[356120.371910193,6857946.008986498],[356118.49606749706,6857945.320222458],[356114.8000000813,6857943.793817967],[356114.1494382831,6857943.517975266],[356112.31910120504,6857942.714042675],[356112.0000000811,6857942.557862905],[356110.5230337894,6857941.835952795],[356108.8511236771,6857940.747188746],[356107.46404502506,6857939.406177516],[356106.4730337892,6857938.266851667],[356104.86011244124,6857936.889323576],[356102.90000008134,6857936.606177514],[356100.91292142926,6857936.815166274],[356099.26516862033,6857937.129211215],[356097.2971910923,6857937.485952794],[356095.8162922163,6857937.684267394],[356095.3157304182,6857937.751121333],[356093.3252809803,6857937.932020205],[356092.51966300234,6857937.974155032],[356087.2988764864,6857938.246065152],[356085.30617985653,6857938.3977505425],[356083.32078659843,6857938.628087622],[356081.3488764864,6857938.955615712],[356082.3550562614,6857932.183143802],[356084.2601124414,6857928.373593242],[356089.97471918224,6857922.659548292],[356102.0443821032,6857913.437076386],[356105.40337086824,6857906.299435934],[356109.1314607553,6857901.221346046],[356116.7061798563,6857891.863480887],[356121.183707946,6857890.518537067],[356125.770786598,6857890.1910089785],[356133.4573034521,6857889.642132571],[356138.7174158108,6857894.025840439],[356140.4707865978,6857907.17640224],[356152.74438210274,6857922.95673931],[356160.31573041773,6857925.882020211],[356168.2140450246,6857923.515166285],[356173.88539333886,6857922.618537075],[356182.3573034516,6857926.469660666],[356184.2617978336,6857929.3269640375]]]},"properties":{"id":856,"standid":34478867,"parcelid":null,"realestate":null,"standnumbe":25,"standnum_1":"","maingroup":3,"subgroup":4,"fertilityc":5,"soiltype":60,"drainagest":6,"ditchingye":null,"thinningye":null,"developmen":"","standquali":0,"maintreesp":1,"accessibil":4,"standinfo":"","datasource":31,"growthplac":101,"area":0.421,"areadecrea":0,"creationti":"2021/04/13 21:06:27.000","updatetime":"2021/04/13 21:06:27.000","layer":"x4tmp2","path":"C:\\temp\\HYDE\\export\\x4tmp2.shp|layername=x4tmp2"}},
|
|
13
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356133.4573034521,6857889.642132571],[356131.19943828287,6857889.803368528],[356125.770786598,6857890.1910089785],[356121.183707946,6857890.518537067],[356116.7061798563,6857891.863480887],[356109.1314607553,6857901.221346046],[356107.4438203062,6857903.520222455],[356115.36123603606,6857881.837638186],[356116.1550562611,6857871.915728076],[356118.678089969,6857863.473031446],[356125.32752817095,6857865.438761779],[356129.7179776089,6857866.73707639],[356130.37696637283,6857866.891570769],[356130.9713483959,6857866.966289869],[356134.623033789,6857867.239323581],[356139.61910120485,6857867.60730111],[356142.3848315418,6857867.8106719],[356140.65842704684,6857878.00224493],[356136.84831468796,6857885.833705611],[356134.067977609,6857890.151121342],[356133.4573034521,6857889.642132571]]]},"properties":{"id":858,"standid":34478869,"parcelid":null,"realestate":null,"standnumbe":42,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":10,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"03","standquali":0,"maintreesp":1,"accessibil":4,"standinfo":"","datasource":11,"growthplac":101,"area":0.062,"areadecrea":0,"creationti":"2020/10/01 21:22:18.000","updatetime":"2020/10/01 21:22:18.000","layer":"x4tmp2","path":"C:\\temp\\HYDE\\export\\x4tmp2.shp|layername=x4tmp2"}},
|
|
14
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356142.3848315418,6857867.8106719],[356153.8516854737,6857868.653930332],[356154.6247191819,6857868.660671902],[356155.39213491173,6857868.568537073],[356156.1410113169,6857868.3780876305],[356167.17078659753,6857864.805053922],[356167.85224727186,6857864.537638194],[356168.4955056986,6857864.188761795],[356176.03707873257,6857859.488761795],[356181.2516854735,6857897.751683136],[356184.5960674966,6857903.798312356],[356189.4561798555,6857906.4522449365],[356194.2320225525,6857918.021346059],[356184.2617978336,6857929.3269640375],[356182.3573034516,6857926.469660666],[356173.88539333886,6857922.618537075],[356168.2140450246,6857923.515166285],[356160.31573041773,6857925.882020211],[356152.74438210274,6857922.95673931],[356140.4707865978,6857907.17640224],[356138.7174158108,6857894.025840439],[356134.067977609,6857890.151121342],[356136.84831468796,6857885.833705611],[356140.65842704684,6857878.00224493],[356142.3848315418,6857867.8106719]]]},"properties":{"id":859,"standid":34478870,"parcelid":null,"realestate":null,"standnumbe":44,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"A0","standquali":0,"maintreesp":null,"accessibil":4,"standinfo":"","datasource":11,"growthplac":101,"area":0.247,"areadecrea":0,"creationti":"2020/10/01 21:22:18.000","updatetime":"2020/10/01 21:22:18.000","layer":"x4tmp2","path":"C:\\temp\\HYDE\\export\\x4tmp2.shp|layername=x4tmp2"}}
|
|
15
|
+
]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{"type":"FeatureCollection", "features": [
|
|
2
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356824.8915731093,6858184.908424802],[356816.7758427723,6858192.403368621],[356803.5219101875,6858199.898874231],[356795.13988771563,6858203.169660748],[356785.45842704177,6858203.112357375],[356774.443258503,6858172.933705697],[356774.0129214237,6858171.711795575],[356773.84044951375,6858171.282582096],[356766.6882023227,6858155.306177593],[356766.5977528848,6858155.112919173],[356761.2865169299,6858144.299997822],[356761.09719108674,6858143.944941642],[356760.64775288483,6858143.275278725],[356760.2955056939,6858142.819098944],[356734.67808996397,6858106.85280681],[356734.4668540092,6858106.53707647],[356734.11235962703,6858106.058424789],[356720.5589888401,6858089.5803349],[356710.3410113123,6858077.3556157965],[356710.2657304132,6858077.267975348],[356706.7011236723,6858073.174155116],[356713.1893259192,6858075.983705687],[356716.32303378405,6858077.340447257],[356721.22752816614,6858079.464042759],[356722.46404502005,6858079.99999782],[356722.67921355914,6858080.09325625],[356730.93820232333,6858083.6696607405],[356731.00000007614,6858083.6960652415],[356736.00000007596,6858085.861233782],[356743.8634832219,6858089.266851751],[356744.2786517609,6858089.4460652415],[356746.7314607501,6858090.508424791],[356749.851123672,6858091.8595483815],[356751.037078728,6858092.373031532],[356752.000000076,6858093.579773103],[356753.93202254805,6858095.999997822],[356754.6617978288,6858096.914604563],[356757.3955056939,6858100.339323663],[356766.7016854688,6858111.9999978235],[356768.0000000758,6858113.626402314],[356779.4719101877,6858127.999997825],[356784.0000000759,6858133.673593339],[356784.01966299664,6858133.698312437],[356824.8915731093,6858184.908424802]]]},"properties":{"id":904,"standid":34478858,"parcelid":null,"realestate":null,"standnumbe":21,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":10,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"03","standquali":0,"maintreesp":29,"accessibil":4,"standinfo":"","datasource":11,"growthplac":101,"area":0.388,"areadecrea":0,"creationti":"2020/10/01 21:22:17.000","updatetime":"2020/10/01 21:22:17.000"}},
|
|
3
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356824.8915731093,6858184.908424802],[356832.5011236713,6858194.442132664],[356836.5589888393,6858199.526964124],[356875.7780899629,6858248.665728177],[356939.22921355744,6858328.165166386],[356959.0331461414,6858352.97864954],[356967.7651686133,6858363.91909897],[356934.70674164756,6858394.002806835],[356928.1168540077,6858399.999997845],[356928.0000000746,6858400.106177624],[356912.00000007486,6858414.666851773],[356910.53483153577,6858415.999997842],[356908.82022479386,6858417.560110203],[356899.5033708608,6858426.03876188],[356896.00000007486,6858429.226964127],[356892.95224726596,6858431.99999784],[356880.000000075,6858443.787076487],[356876.05168546806,6858447.380334917],[356875.370224794,6858447.999997838],[356868.6926967041,6858454.076964127],[356867.126966367,6858450.981458505],[356866.02022479416,6858447.999997837],[356864.72415737814,6858444.508424805],[356864.0000000751,6858442.5578630045],[356861.3207865924,6858435.340447275],[356861.15617985034,6858434.897188848],[356861.00617985043,6858434.292694465],[356860.43764052424,6858431.999997835],[356856.4679776032,6858415.999997833],[356854.47865176026,6858407.981458506],[356852.3314607492,6858399.999997834],[356851.55000007525,6858397.094941654],[356848.01067423227,6858383.999997835],[356848.0000000753,6858383.961233793],[356844.0820225473,6858369.465166374],[356843.65617985034,6858367.999997834],[356840.93932591856,6858358.653930413],[356826.2382023224,6858305.616851762],[356826.10224726645,6858305.175840531],[356816.38483153656,6858277.459548392],[356816.34606749145,6858277.352806819],[356806.0308989516,6858250.118537158],[356805.92921355856,6858249.867413559],[356793.6584270417,6858221.420784347],[356785.45842704177,6858203.112357375],[356795.13988771563,6858203.169660748],[356803.5219101875,6858199.898874231],[356816.7758427723,6858192.403368621],[356824.8915731093,6858184.908424802]]]},"properties":{"id":905,"standid":34478859,"parcelid":null,"realestate":null,"standnumbe":10,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":10,"drainagest":3,"ditchingye":null,"thinningye":null,"developmen":"02","standquali":0,"maintreesp":2,"accessibil":4,"standinfo":"","datasource":11,"growthplac":101,"area":2.002,"areadecrea":0,"creationti":"2021/04/13 21:06:27.000","updatetime":"2021/04/13 21:06:27.000"}},
|
|
4
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356832.26179782837,6858371.791009072],[356824.17528097436,6858370.715166369],[356817.75112367154,6858367.739323668],[356810.9000000757,6858368.499997829],[356803.20280906477,6858377.76741356],[356775.79887647985,6858394.651121422],[356779.3662922108,6858402.982582093],[356777.8842697389,6858409.967975356],[356779.15449445776,6858419.280896703],[356786.77415737876,6858424.784267485],[356785.92752816586,6858434.732582096],[356782.117977604,6858436.214604564],[356771.746067492,6858445.104492202],[356764.3376405259,6858456.111233782],[356758.622471986,6858456.111233781],[356750.9505618741,6858453.569098941],[356754.7264045701,6858448.419660741],[356756.2224719862,6858441.867413551],[356752.0904495141,6858432.09606524],[356749.73988771613,6858419.85954838],[356752.8404495141,6858399.9898854615],[356748.65955063805,6858389.296627029],[356748.89157311,6858372.043256252],[356747.202247267,6858362.154492199],[356740.6073034471,6858356.257301191],[356726.55112367123,6858353.812357367],[356715.13202254823,6858365.991570847],[356702.6494382784,6858360.287076464],[356699.75449445867,6858356.3893236555],[356684.4353933345,6858326.893818043],[356680.5207865936,6858322.542132641],[356678.79550569464,6858316.078087703],[356699.8005618744,6858305.4185371455],[356702.34044951445,6858298.115728155],[356698.2129214246,6858289.860671974],[356688.05280906556,6858286.685952874],[356685.6707865937,6858283.350559611],[356698.83089895244,6858279.318537143],[356703.47584277345,6858269.952806806],[356714.93426973926,6858256.777525907],[356721.4702247952,6858244.555615796],[356728.1376405251,6858241.900559618],[356739.457865245,6858240.419098941],[356751.69269670494,6858234.105615801],[356753.3904495139,6858231.786514671],[356752.89606749197,6858228.333143892],[356762.2825843458,6858217.212919172],[356767.76966299675,6858214.147188836],[356776.50617985066,6858212.480896707],[356794.85674164863,6858254.496065249],[356814.70168546855,6858308.928087719],[356822.4640450195,6858338.079773111],[356822.50056187354,6858338.21067199],[356832.26179782837,6858371.791009072]]]},"properties":{"id":906,"standid":34478860,"parcelid":null,"realestate":null,"standnumbe":8,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":4,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"02","standquali":0,"maintreesp":1,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":1.762,"areadecrea":0,"creationti":"2021/04/13 21:06:27.000","updatetime":"2021/04/13 21:06:27.000"}},
|
|
5
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356832.26179782837,6858371.791009072],[356832.27134839044,6858371.825278732],[356832.5275281654,6858372.705054012],[356835.58033715433,6858383.999997833],[356839.9050562554,6858399.999997832],[356839.9651686144,6858400.219098953],[356840.86235962657,6858403.557863003],[356841.6679776033,6858406.552806824],[356842.8606742324,6858410.984829294],[356843.5865169294,6858413.911233783],[356844.10505625524,6858415.999997833],[356846.90224726626,6858427.2764023235],[356848.0000000753,6858431.702245025],[356848.0741573784,6858431.999997834],[356849.5904495134,6858438.113480982],[356849.7825843454,6858438.739323673],[356853.22022479423,6858447.999997833],[356854.4286517602,6858451.255054015],[356855.9949438954,6858455.475278734],[356856.2657304122,6858456.094941655],[356859.48370794044,6858462.457301205],[356857.78820232226,6858463.999997835],[356856.0808989513,6858465.553930416],[356849.7134832213,6858471.348312444],[356849.1382023223,6858471.871907943],[356848.23595513136,6858472.693256263],[356848.00000007544,6858472.907863003],[356840.2061798505,6858479.999997833],[356832.0000000755,6858487.46853716],[356826.14438209846,6858492.79718884],[356823.9730337835,6858494.77303154],[356823.7831461425,6858495.1584248],[356823.36853940156,6858495.999997829],[356819.77359558165,6858503.2932562595],[356816.1303371547,6858510.683705698],[356816.00000007567,6858510.948874229],[356815.48202254786,6858511.999997829],[356807.5949438958,6858527.999997826],[356800.0000000758,6858543.4084247975],[356799.70842704177,6858543.999997826],[356791.82191018795,6858559.999997824],[356784.0000000759,6858575.8690989455],[356783.9353933339,6858575.999997824],[356780.217415806,6858583.542694453],[356776.56685400923,6858590.948874223],[356770.1623596271,6858584.237638273],[356768.000000076,6858581.971907933],[356762.301123672,6858575.9999978235],[356752.0000000761,6858565.2061776],[356749.8949438961,6858562.99999782],[356747.03202254826,6858559.999997819],[356736.0000000762,6858548.439885458],[356731.7629214243,6858543.999997817],[356731.69887648046,6858543.933143888],[356731.63876412157,6858543.999997817],[356726.0859551323,6858550.167413546],[356725.43033715547,6858550.895503434],[356724.64606749243,6858551.766851748],[356711.46292142454,6858537.097750625],[356710.6393259195,6858525.191570845],[356713.1668540096,6858517.853930405],[356720.4842697393,6858505.716289957],[356720.00000007637,6858471.999997817],[356728.40224726725,6858468.323593328],[356750.9505618741,6858453.569098941],[356758.622471986,6858456.111233781],[356764.3376405259,6858456.111233782],[356771.746067492,6858445.104492202],[356782.117977604,6858436.214604564],[356785.92752816586,6858434.732582096],[356786.77415737876,6858424.784267485],[356779.15449445776,6858419.280896703],[356777.8842697389,6858409.967975356],[356779.3662922108,6858402.982582093],[356775.79887647985,6858394.651121422],[356803.20280906477,6858377.76741356],[356810.9000000757,6858368.499997829],[356817.75112367154,6858367.739323668],[356824.17528097436,6858370.715166369],[356832.26179782837,6858371.791009072]]]},"properties":{"id":907,"standid":34478861,"parcelid":null,"realestate":null,"standnumbe":9,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"T1","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":1.621,"areadecrea":0,"creationti":"2020/10/01 21:22:17.000","updatetime":"2020/10/01 21:22:17.000"}},
|
|
6
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356621.7359551332,6858229.254492186],[356609.41853940306,6858236.118537131],[356599.5758427742,6858245.3258405],[356592.5910113134,6858259.613480949],[356591.53370794235,6858291.4752787],[356585.4106742344,6858294.527525891],[356581.47303378547,6858304.474155098],[356577.16292142554,6858310.33202027],[356576.82191018964,6858310.222469708],[356576.00000007736,6858309.959548359],[356567.7707865945,6858307.324155097],[356536.5112360328,6858297.314042733],[356547.29438209976,6858276.948874195],[356551.5275281676,6858256.205615775],[356546.1365169317,6858239.357862965],[356552.18370794266,6858235.338761846],[356560.76797760546,6858235.321346108],[356562.76573041454,6858225.930334876],[356568.48483153846,6858212.506739366],[356565.0713483925,6858180.775278696],[356574.52303378534,6858160.088761849],[356575.18483153824,6858155.535391058],[356573.1775281674,6858152.946627008],[356567.6983146845,6858151.803930377],[356557.76853940345,6858155.699435997],[356551.6674158076,6858137.393256225],[356549.9134832236,6858120.6331438655],[356553.72359558346,6858104.7578629665],[356557.61179783056,6858097.514042746],[356598.7247191781,6858077.788761851],[356611.90168547,6858057.543818034],[356613.780898953,6858045.106177586],[356632.56179782975,6858052.869098925],[356655.23539333465,6858062.07359332],[356655.43988771667,6858062.152244999],[356655.5803371556,6858062.201121409],[356682.08314614336,6858071.108986572],[356695.07696636836,6858078.097750626],[356726.89775288507,6858116.80898658],[356708.14213490736,6858127.185952877],[356699.8522472674,6858139.270222535],[356690.99550569436,6858146.385391075],[356667.3280899646,6858162.87190792],[356662.73876412166,6858173.085391071],[356660.79382030165,6858183.98763826],[356653.7224719869,6858184.51291916],[356644.1449438969,6858188.011233767],[356641.7567416498,6858183.172469717],[356638.05617985176,6858188.892694438],[356625.187640526,6858200.643256234],[356619.15505625703,6858217.788200054],[356621.7359551332,6858229.254492186]]]},"properties":{"id":914,"standid":34478875,"parcelid":null,"realestate":null,"standnumbe":17,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"02","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":2.198,"areadecrea":0,"creationti":"2020/10/01 21:22:18.000","updatetime":"2020/10/01 21:22:18.000"}},
|
|
7
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356726.89775288507,6858116.80898658],[356738.7348315369,6858134.526964109],[356738.97696636815,6858134.864042761],[356750.7831461432,6858150.134829283],[356762.78651692986,6858175.960110184],[356772.4134832218,6858203.299436025],[356772.58595513174,6858203.729773105],[356776.50617985066,6858212.480896707],[356767.76966299675,6858214.147188836],[356762.2825843458,6858217.212919172],[356752.89606749197,6858228.333143892],[356753.3904495139,6858231.786514671],[356751.69269670494,6858234.105615801],[356739.457865245,6858240.419098941],[356728.1376405251,6858241.900559618],[356721.4702247952,6858244.555615796],[356719.5466292903,6858230.034829275],[356710.2780899643,6858220.010671978],[356708.97471917723,6858216.697188826],[356709.4101124364,6858215.285952876],[356705.72415737936,6858202.683143887],[356702.8707865934,6858195.906177595],[356697.4011236714,6858191.269098933],[356694.6668540094,6858184.967413544],[356693.94213490735,6858184.939885453],[356691.5455056944,6858175.243256244],[356690.99550569436,6858146.385391075],[356699.8522472674,6858139.270222535],[356708.14213490736,6858127.185952877],[356726.89775288507,6858116.80898658]]]},"properties":{"id":917,"standid":34478878,"parcelid":null,"realestate":null,"standnumbe":20,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":4,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"03","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":0.648,"areadecrea":0,"creationti":"2021/03/09 14:19:23.000","updatetime":"2021/03/09 14:19:23.000"}},
|
|
8
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356721.4702247952,6858244.555615796],[356714.93426973926,6858256.777525907],[356703.47584277345,6858269.952806806],[356698.83089895244,6858279.318537143],[356685.6707865937,6858283.350559611],[356688.05280906556,6858286.685952874],[356698.2129214246,6858289.860671974],[356702.34044951445,6858298.115728155],[356699.8005618744,6858305.4185371455],[356678.79550569464,6858316.078087703],[356677.3359551326,6858313.169660732],[356668.52247198677,6858306.4769641],[356668.99550569477,6858302.30449219],[356673.7365169306,6858295.330334891],[356667.0758427737,6858281.117975339],[356664.9915731107,6858270.610110169],[356661.4134832227,6858269.069660729],[356652.4511236729,6858272.952244998],[356645.43595513294,6858267.638200056],[356638.21853940294,6858264.805053985],[356644.073033785,6858256.970222527],[356641.40617985185,6858249.534267466],[356641.47752816696,6858239.946065226],[356632.8786517619,6858231.667413534],[356621.7359551332,6858229.254492186],[356619.15505625703,6858217.788200054],[356625.187640526,6858200.643256234],[356638.05617985176,6858188.892694438],[356641.7567416498,6858183.172469717],[356644.1449438969,6858188.011233767],[356653.7224719869,6858184.51291916],[356660.79382030165,6858183.98763826],[356662.73876412166,6858173.085391071],[356667.3280899646,6858162.87190792],[356690.99550569436,6858146.385391075],[356691.5455056944,6858175.243256244],[356693.94213490735,6858184.939885453],[356688.3651686155,6858184.729773095],[356683.1337079416,6858184.729773093],[356677.7606742336,6858187.276964103],[356677.7359551325,6858187.262919164],[356676.74213490763,6858187.7601101715],[356668.2117978299,6858192.025278711],[356661.54494389694,6858195.834829272],[356657.81685400964,6858206.190447249],[356657.8691012007,6858206.519660729],[356658.42078659375,6858210.01067197],[356658.5039326608,6858219.075840509],[356664.4016854698,6858235.835391071],[356667.2589888406,6858239.644941631],[356673.92584277363,6858241.54999781],[356676.35786524555,6858241.549997809],[356677.5455056946,6858242.632582083],[356683.74550569453,6858241.549997812],[356684.4022472675,6858241.549997812],[356684.6915731105,6858241.3848292725],[356692.52640457044,6858240.016851743],[356702.1573034474,6858232.645503436],[356706.4376405253,6858224.916851746],[356708.97471917723,6858216.697188826],[356710.2780899643,6858220.010671978],[356719.5466292903,6858230.034829275],[356721.4702247952,6858244.555615796]]]},"properties":{"id":919,"standid":34478880,"parcelid":null,"realestate":null,"standnumbe":18,"standnum_1":"","maingroup":1,"subgroup":3,"fertilityc":3,"soiltype":60,"drainagest":8,"ditchingye":null,"thinningye":null,"developmen":"03","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":0.641,"areadecrea":0,"creationti":"2021/03/09 14:19:23.000","updatetime":"2021/03/09 14:19:23.000"}},
|
|
9
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356706.4376405253,6858224.916851746],[356702.1573034474,6858232.645503436],[356692.52640457044,6858240.016851743],[356684.6915731105,6858241.3848292725],[356684.4022472675,6858241.549997812],[356683.74550569453,6858241.549997812],[356677.5455056946,6858242.632582083],[356676.35786524555,6858241.549997809],[356673.92584277363,6858241.54999781],[356667.2589888406,6858239.644941631],[356664.4016854698,6858235.835391071],[356658.5039326608,6858219.075840509],[356658.42078659375,6858210.01067197],[356657.81685400964,6858206.190447249],[356661.54494389694,6858195.834829272],[356668.2117978299,6858192.025278711],[356676.74213490763,6858187.7601101715],[356677.7359551325,6858187.262919164],[356677.7606742336,6858187.276964103],[356683.1337079416,6858184.729773093],[356688.3651686155,6858184.729773095],[356694.6668540094,6858184.967413544],[356697.4011236714,6858191.269098933],[356702.8707865934,6858195.906177595],[356705.72415737936,6858202.683143887],[356709.4101124364,6858215.285952876],[356706.4376405253,6858224.916851746]]]},"properties":{"id":921,"standid":34478882,"parcelid":null,"realestate":null,"standnumbe":19,"standnum_1":"","maingroup":3,"subgroup":4,"fertilityc":6,"soiltype":60,"drainagest":6,"ditchingye":null,"thinningye":null,"developmen":"","standquali":0,"maintreesp":null,"accessibil":4,"standinfo":"","datasource":31,"growthplac":101,"area":0.227,"areadecrea":0,"creationti":"2021/03/09 14:19:23.000","updatetime":"2021/03/09 14:19:23.000"}},
|
|
10
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356672.4741573798,6858547.445503429],[356660.091573111,6858576.020222529],[356652.80000007694,6858580.452806797],[356651.57528097625,6858576.070222526],[356651.56067423406,6858576.018537136],[356651.55561805493,6858575.999997807],[356647.08483153814,6858559.999997806],[356642.614045021,6858543.999997805],[356640.00000007707,6858534.643818035],[356639.77808996505,6858533.850559605],[356635.65112367214,6858519.079773084],[356583.85000007745,6858333.691570829],[356580.18426974036,6858320.57134611],[356580.02415738034,6858319.999997798],[356577.3387641225,6858310.388200047],[356577.16292142554,6858310.33202027],[356581.47303378547,6858304.474155098],[356585.4106742344,6858294.527525891],[356591.53370794235,6858291.4752787],[356592.5910113134,6858259.613480949],[356599.5758427742,6858245.3258405],[356609.41853940306,6858236.118537131],[356621.7359551332,6858229.254492186],[356632.8786517619,6858231.667413534],[356641.47752816696,6858239.946065226],[356641.40617985185,6858249.534267466],[356644.073033785,6858256.970222527],[356638.21853940294,6858264.805053985],[356645.43595513294,6858267.638200056],[356652.4511236729,6858272.952244998],[356661.4134832227,6858269.069660729],[356664.9915731107,6858270.610110169],[356667.0758427737,6858281.117975339],[356673.7365169306,6858295.330334891],[356668.99550569477,6858302.30449219],[356668.52247198677,6858306.4769641],[356677.3359551326,6858313.169660732],[356678.79550569464,6858316.078087703],[356680.5207865936,6858322.542132641],[356684.4353933345,6858326.893818043],[356699.75449445867,6858356.3893236555],[356702.6494382784,6858360.287076464],[356715.13202254823,6858365.991570847],[356713.86516861536,6858371.788200066],[356715.1157304134,6858384.891570846],[356712.89943827834,6858401.683705684],[356715.9926967055,6858424.784267476],[356713.2837079416,6858441.8870764645],[356703.9702247955,6858446.797750625],[356660.72359558276,6858453.804492188],[356651.930337156,6858457.799436007],[356648.392696706,6858462.197750616],[356646.67359558295,6858468.191570837],[356650.08426974004,6858494.7483124165],[356641.68146075105,6858518.466851735],[356653.258427043,6858528.262919156],[356659.87303378497,6858529.585952868],[356665.16460681905,6858535.53932365],[356672.4741573798,6858547.445503429]]]},"properties":{"id":922,"standid":34478883,"parcelid":null,"realestate":null,"standnumbe":6,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":3,"soiltype":30,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"T2","standquali":11,"maintreesp":2,"accessibil":4,"standinfo":"","datasource":11,"growthplac":101,"area":2.265,"areadecrea":0,"creationti":"2020/10/01 21:22:19.000","updatetime":"2020/10/01 21:22:19.000"}},
|
|
11
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356710.6393259195,6858525.191570845],[356672.4741573798,6858547.445503429],[356665.16460681905,6858535.53932365],[356659.87303378497,6858529.585952868],[356653.258427043,6858528.262919156],[356641.68146075105,6858518.466851735],[356650.08426974004,6858494.7483124165],[356646.67359558295,6858468.191570837],[356648.392696706,6858462.197750616],[356651.930337156,6858457.799436007],[356660.72359558276,6858453.804492188],[356703.9702247955,6858446.797750625],[356713.2837079416,6858441.8870764645],[356715.9926967055,6858424.784267476],[356712.89943827834,6858401.683705684],[356715.1157304134,6858384.891570846],[356713.86516861536,6858371.788200066],[356715.13202254823,6858365.991570847],[356726.55112367123,6858353.812357367],[356740.6073034471,6858356.257301191],[356747.202247267,6858362.154492199],[356748.89157311,6858372.043256252],[356748.65955063805,6858389.296627029],[356752.8404495141,6858399.9898854615],[356749.73988771613,6858419.85954838],[356752.0904495141,6858432.09606524],[356756.2224719862,6858441.867413551],[356754.7264045701,6858448.419660741],[356750.9505618741,6858453.569098941],[356728.40224726725,6858468.323593328],[356720.00000007637,6858471.999997817],[356720.4842697393,6858505.716289957],[356713.1668540096,6858517.853930405],[356710.6393259195,6858525.191570845]]]},"properties":{"id":924,"standid":34478885,"parcelid":null,"realestate":null,"standnumbe":7,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":2,"soiltype":20,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"03","standquali":0,"maintreesp":2,"accessibil":2,"standinfo":"","datasource":11,"growthplac":101,"area":0.973,"areadecrea":0,"creationti":"2020/10/01 21:22:20.000","updatetime":"2020/10/01 21:22:20.000"}},
|
|
12
|
+
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[356724.64606749243,6858551.766851748],[356720.00000007637,6858556.926402316],[356717.23258434644,6858559.999997815],[356709.1803371556,6858568.943256246],[356704.0000000766,6858574.696627023],[356702.8264045706,6858575.999997813],[356688.42078659363,6858591.999997811],[356688.0000000769,6858592.467413541],[356674.014606819,6858607.99999781],[356672.3162922119,6858609.88595287],[356672.00000007683,6858610.237638258],[356667.4578652459,6858615.282020279],[356666.4825843469,6858616.365728148],[356663.7477528859,6858619.402806799],[356662.01741580694,6858613.247188818],[356660.92078659416,6858609.3466270175],[356660.54213490896,6858607.999997809],[356659.4106742339,6858603.974155108],[356656.04438209895,6858591.999997808],[356656.00000007695,6858591.842132637],[356653.04606749327,6858581.334267466],[356652.80000007694,6858580.452806797],[356660.091573111,6858576.020222529],[356672.4741573798,6858547.445503429],[356710.6393259195,6858525.191570845],[356711.46292142454,6858537.097750625],[356724.64606749243,6858551.766851748]]]},"properties":{"id":925,"standid":34478886,"parcelid":null,"realestate":null,"standnumbe":5,"standnum_1":"","maingroup":1,"subgroup":1,"fertilityc":2,"soiltype":20,"drainagest":1,"ditchingye":null,"thinningye":null,"developmen":"04","standquali":0,"maintreesp":2,"accessibil":3,"standinfo":"","datasource":11,"growthplac":101,"area":0.297,"areadecrea":0,"creationti":"2020/10/01 21:22:20.000","updatetime":"2020/10/01 21:22:20.000"}}
|
|
13
|
+
]}
|