Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Mayer
CircularGreenSimCity
Commits
79bd3336
Commit
79bd3336
authored
1 year ago
by
Eric Duminil
Browse files
Options
Download
Email Patches
Plain Diff
Check if trees are duplicate.
parent
e6ba2d4d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
python_scripts/add_trees_to_open_street_map/import_existing_trees.py
+6
-4
...pts/add_trees_to_open_street_map/import_existing_trees.py
python_scripts/add_trees_to_open_street_map/tree.py
+3
-1
python_scripts/add_trees_to_open_street_map/tree.py
with
9 additions
and
5 deletions
+9
-5
python_scripts/add_trees_to_open_street_map/import_existing_trees.py
+
6
-
4
View file @
79bd3336
...
...
@@ -5,18 +5,20 @@ from tree import Tree, Forest
def
get_existing_forest
(
shp_input
):
print
(
f
"Importing
{
shp_input
}
"
)
df
=
gpd
.
read_file
(
shp_input
)
tre
es
=
[]
for
es
t
=
Forest
()
for
tree_row
in
df
.
itertuples
():
point
=
tree_row
.
geometry
tre
es
.
a
ppend
(
Tree
(
point
.
x
,
point
.
y
,
added
=
for
es
t
.
a
dd_tree_if_possible
(
0.1
,
point
.
x
,
point
.
y
,
description
=
tree_row
.
Bezeichnun
,
diameter
=
tree_row
.
Kronenbrei
,
type
=
tree_row
.
Baumart
,
trunk_diameter
=
tree_row
.
Stammumfan
,
height
=
tree_row
.
Baumhöhe
,
source
=
Path
(
shp_input
).
name
))
return
Forest
(
trees
)
)
if
not
added
:
print
(
f
"Warning, tree seems to be too close to others! Is it a duplicate?
\n\t
{
tree_row
}
"
)
return
forest
if
__name__
==
"__main__"
:
print
(
repr
(
get_existing_forest
(
'existing_trees/Trees_ideal_2_20240227.shp'
)))
...
...
This diff is collapsed.
Click to expand it.
python_scripts/add_trees_to_open_street_map/tree.py
+
3
-
1
View file @
79bd3336
...
...
@@ -39,11 +39,13 @@ class Forest(UserList):
self
.
data
=
existing_trees
def
add_tree_if_possible
(
self
,
min_distance_2
,
x
,
y
,
**
kparams
):
def
add_tree_if_possible
(
self
,
min_distance_2
,
x
,
y
,
**
kparams
)
->
bool
:
_nearest_tree
,
distance_2
=
self
.
kd_tree
.
search_nn
((
x
,
y
))
if
distance_2
>
min_distance_2
:
self
.
kd_tree
.
add
((
x
,
y
))
self
.
append
(
Tree
(
x
,
y
,
**
kparams
))
return
True
return
False
@
property
def
xs_ys_cs
(
self
):
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment