-
Notifications
You must be signed in to change notification settings - Fork 0
/
geotables.jl
123 lines (68 loc) · 1.52 KB
/
geotables.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
using Meshes
using GeoTables
using GeoIO
import GLMakie as Mke
## GeometrySet
p = Point(1, 2)
s = Segment((0, 2), (1, 3))
t = Triangle((0, 0), (1, 0), (1, 1))
b = Ball((2, 2), 1)
geoms = [p, s, t, b]
gset = GeometrySet(geoms)
##
viz(gset)
##
viz(gset, color = 1:4)
##
fig, ax = viz(gset, color = 1:4)
ax.aspect = Mke.DataAspect()
viz!(boundary(b), color = "red")
viz!(boundary(t), color = "black")
## GeoTable
geotable = georef(nothing, gset)
##
geotable = georef((a=1:4, b=rand(4)), gset)
##
geotable[1:2, :]
##
geotable.a
##
geotable |> viewer
## Grid
grid = CartesianGrid(5, 5)
##
fig, ax = viz(grid, color = 1:25)
ax.aspect = Mke.DataAspect()
##
fig, ax = viz(grid, color = 1:25, showfacets = true)
ax.aspect = Mke.DataAspect()
##
fig, ax = viz(grid, color = 1:25, showfacets = true, facetcolor = "red")
ax.aspect = Mke.DataAspect()
##
fig, ax = viz(grid, color = 1:36)
ax.aspect = Mke.DataAspect()
##
table = (; centroid = centroid.(grid))
geotable = georef(table, grid)
## Mesh
sphere = Sphere((0, 0, 0), 1)
mesh = discretize(sphere, RegularDiscretization(30, 50))
##
viz(mesh, showfacets = true)
##
geotable = georef((; area = area.(mesh)), mesh)
##
geotable |> viewer
## GeoIO.load
geotable = GeoIO.load("data/airplane.stl")
##
viz(geotable.geometry)
## GeoIO.save
GeoIO.save("data/airplane.obj", geotable)
GeoIO.save("data/airplane.off", geotable)
GeoIO.save("data/airplane.msh", geotable)
## Other example
geotable = GeoIO.load("data/world.tif")
##
viz(geotable.geometry, color = geotable.BAND1)