forked from seravee08/cv4aec.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfilespecs.html
150 lines (133 loc) · 5.97 KB
/
filespecs.html
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Computer Vision in the Built Environment</title>
<!-- Bootstrap core CSS -->
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom fonts for this template -->
<link href="vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
<link href='https://fonts.googleapis.com/css?family=Kaushan+Script' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700' rel='stylesheet' type='text/css'>
<!-- Custom styles for this template -->
<link href="css/agency.min.css" rel="stylesheet">
</head>
<body id="page-top">
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-dark fixed-top" id="mainNav">
<div class="container">
<a class="navbar-brand js-scroll-trigger" href="index.html">Computer Vision in the Built Environment</a>
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
Menu
<i class="fa fa-bars"></i>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav text-uppercase ml-auto text-center">
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#description">About</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#challenge">Challenge</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#schedule">Schedule</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#dates">Important Dates</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#organizers">Organizers</a>
</li>
</ul>
</div>
</div>
</nav>
<section id="filespecs">
<DIV class="container" align="left">
<p>
<style>
code {
font-family: Consolas,"courier new";
color: rgb(2, 2, 2);
background-color: #f1f1f1;
padding: 2px;
font-size: 105%;
}
</style>
<p> <b> Point Cloud Data </b></p>
<p>
The point cloud is in LAS format, a popular format for the AEC community. Instructions for using laspy (a Python Package) to load data: <br>
 1. Detailed instructions can be fount in <a href="url">https://laspy.readthedocs.io/en/latest/</a>; <br>
 2. Demo Code: <br><br>
<code>
<font style="color:rgb(0, 60, 255);">from</font> laspy.file <font style="color:rgb(0, 60, 255);">import</font> File<br>
<font style="color:rgb(0, 60, 255);">import</font> numpy <font style="color:rgb(0, 60, 255);">as</font> np<br><br>
inFile = File('/path/to/file.las', mode='r')<br>
scale_x, scale_y, scale_z = inFile.header.scale<br><br>
<font style="color:rgb(58, 133, 68);">#load coordinates</font><br>
X, Y, Z = inFile.X * scale_x, inFile.Y * scale_y, inFile.Z * scale_z<br>
coord = np.stack([X, Y, Z], axis = -1).astype(np.float32)<br><br>
<font style="color:rgb(58, 133, 68);">#load color</font><br>
R, G, B = inFile.red, inFile.green, inFile.blue<br>
rgb = np.stack([R, G, B], axis = -1).astype(np.float32)<br>
</code>
</p>
</DIV>
<DIV class="container" align="left">
<p><b>Floorplan Data Format</b><br>
The floorplan is available in both a binary obj format and a plain text JSON format. For the OBJ format,
The header contains following information:<br>
 1. number of layer (unsigned int)<br>
 2. number of structures for each layer (unsigned int array)<br>
Followed by information for layer 1:<br>
 1. length of layer name (unsigned int)<br>
 2. layer name (bytes array)<br>
 3. information for layer 1/structure 1:<br>
  a. number of points for structure (unsigned int)<br>
  b. pt1.X, pt1.Y, pt2.X, pt2.Y, ... (float in meters)<br>
 4. information for layer 1/structure 2:<br>
 ...<br>
Followed by information for layer 2:<br>
...<br>
<br>
The detailed file format is provided here:<br>
[number of layers][number of structures for each layer]<br>
[length of layer 1's name][layer 1 name]<br>
[number of points for structure 1][pt1.X][pt1.Y][pt2.X][pt2.Y]...<br>
[number of points for structure 2][pt1.X][pt1.Y][pt2.X][pt2.Y]...<br>
...<br>
[length of layer 2's name][layer 2 name]<br>
[number of points for structure 1][pt1.X][pt1.Y][pt2.X][pt2.Y]...<br>
[number of points for structure 2][pt1.X][pt1.Y][pt2.X][pt2.Y]...<br>
...<br>
<br>
A sample obj file is given below (it should be in binary practically):<br>
2 32 15<br>
6 "A_WALL"<br>
2 320.12 442.55 320.12 445.55<br>
2 322.12 447.55 322.12 449.55<br>
...<br>
6 "A_DOOR"<br>
4 178.12 336.55 225.12 482.55 389.12 557.55 175.12 882.55<br>
2 389.12 557.55 175.12 882.55<br>
</p>
</DIV>
<DIV class="container" align="left">
<p>=============== JSON File Format ===============<br>
JSON file provides following information:<br>
1. number of layers<br>
2. number of structures in each layer<br>
3. layer details<br>
 - layer name<br>
 - number of points<br>
 - x y coordinates for each point<br>
</p>
</DIV>
</section>
</body>
</html>