A maquette of the Netherlands
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Alternative Title |
| |
Title of Series | ||
Number of Parts | 295 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/43320 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
Point (geometry)Multiplication signPresentation of a groupXMLComputer animationLecture/ConferenceMeeting/Interview
00:41
Data dictionaryData modelEndliche ModelltheoriePoint cloudProcess (computing)Real numberComputer animation
01:11
Point (geometry)Level (video gaming)
01:31
Computer configurationElectronic mailing listType theoryBuildingLevel (video gaming)Endliche ModelltheorieExtension (kinesiology)Line (geometry)WebsiteSet (mathematics)Universe (mathematics)
02:21
BuildingBuildingProcess (computing)Point (geometry)BitEndliche ModelltheoriePRINCE2Cellular automatonPoint cloudComputer animation
03:03
AreaPoint cloudLine (geometry)Closed setBitMedical imagingBuildingGraph coloringPosition operatorPoint (geometry)System callComputer animation
03:41
Process (computing)Point (geometry)DatabaseBoss CorporationBitMultiplication signProgramming languagePlastikkarteDot productComputer configurationSubject indexingPoint (geometry)DatabaseCodePoint cloudProcess (computing)TesselationComputer animation
04:53
File formatBound stateStructural loadArray data structureProcedural programmingPoint (geometry)Pointer (computer programming)ImplementationFunctional (mathematics)BitReal number
05:16
Bound stateFile formatStructural loadArray data structurePoint (geometry)File formatTable (information)Dot productUniform resource locatorBuildingResultantoutputGeometryQuery languageLecture/ConferenceComputer animation
05:49
Point (geometry)Curve fittingPort scannerObject (grammar)View (database)BuildingScaling (geometry)Point (geometry)CASE <Informatik>ResultantCodeGene clusterGraph coloringQuery languagePopulation densityLine (geometry)Closed setMathematicsComputer animation
06:36
Shape (magazine)Library (computing)BuildingPoint (geometry)BitMereologyNoise (electronics)Computer animation
06:58
Alpha (investment)Boundary value problemPattern recognitionPoint (geometry)Vertex (graph theory)Point (geometry)ResultantDegree (graph theory)Process (computing)MereologyShape (magazine)BuildingLibrary (computing)Different (Kate Ryan album)Endliche ModelltheorieGene clusterCASE <Informatik>Boundary value problemPerfect groupMultiplication signComputer animation
08:21
TopologyGeometryPerfect groupPoint (geometry)BitGene clusterShape (magazine)Group actionComputer animationLecture/Conference
08:47
TopologyGeometryCurve fittingBuildingLevel (video gaming)PlanningShape (magazine)CuboidCASE <Informatik>CurvatureNetwork topologySheaf (mathematics)Vertex (graph theory)Perfect groupDifferent (Kate Ryan album)BuildingSet (mathematics)MereologyRight angleMetropolitan area networkMultiplication signLibrary (computing)Sound effectLevel (video gaming)PolygonVoronoi diagramLine (geometry)SpacetimeDatabasePoint (geometry)CodeProcedural programmingBasis <Mathematik>Flow separationProcess (computing)Rule of inferenceDoubling the cubeDensity of statesProjective planeDeterminismComputer animation
11:57
VolumeAreaInclined planeDirected setResultantBuildingLevel (video gaming)Rule of inferenceMereologyBitAreaFreewareFood energyLecture/ConferenceDiagram
12:34
BefehlsprozessorBuildingWater vaporRule of inferenceBit rateLevel (video gaming)Goodness of fitNetwork topologyClosed setPopulation density2 (number)StatisticsBitMultiplication signBuildingResultantPresentation of a groupPoint (geometry)Water vaporBefehlsprozessorMaxima and minimaSingle-precision floating-point formatTrianglePoint cloudComputer animation
14:50
BuildingComputer animation
15:15
TriangleInstance (computer science)AngleLine (geometry)Endliche ModelltheorieDot product
15:35
Line (geometry)ResultantInstance (computer science)Engineering drawing
15:55
TriangleInstance (computer science)BitProcess (computing)Medical imagingComputer animation
16:22
Computer programFunction (mathematics)BuildingPolygonGeometryGoodness of fitDatabaseProcess (computing)BitSpacetimeMatching (graph theory)Multiplication signContext awarenessForm (programming)Polygon meshTriangulation (psychology)PolygonTesselationTriangleComputer animation
17:16
Open sourceKey (cryptography)WebsiteComputer animation
17:55
Hill differential equationMereologyLine (geometry)AreaComputer configurationBookmark (World Wide Web)Zoom lensComputer animation
18:22
MereologyBookmark (World Wide Web)Sound effectProcess (computing)Level (video gaming)2 (number)BuildingSkewnessWater vaporLine (geometry)1 (number)
19:07
Multiplication signBitNetwork topologyMereologyExecution unitScaling (geometry)Shared memoryGeometryResultantProcess (computing)BuildingLink (knot theory)Term (mathematics)
19:53
Open setSource codeOpen sourceBitComplex (psychology)BuildingPoint (geometry)Insertion lossStructural loadProjective planeComputer animation
20:22
Graph coloringSource codeMereologyOpen sourcePerspective (visual)Slide ruleChaos (cosmogony)Process (computing)Insertion lossLecture/Conference
21:05
Source codeMereologyPatch (Unix)Boundary value problemWeightStatisticsMultiplication signFunctional (mathematics)Point (geometry)Point cloudWater vaporCodeNetwork topologyDatabaseCloningTesselation.NET FrameworkComputer animation
22:10
WebsiteData structureHexagonSlide ruleLecture/Conference
22:51
Water vaporCurve fittingTopologyGeometryStructural loadBound stateFile formatArray data structureProcess (computing)BitProcess (computing)Point (geometry)Workstation <Musikinstrument>Computer animationXML
23:23
Population densityDot productoutputNoise (electronics)Control flowInformationMultiplication signPlanningMoment (mathematics)DivisorPoint (geometry)NumberMereologyFitness functionCurveProcess (computing)PolygonCellular automatonParameter (computer programming)Lecture/Conference
Transcript: English(auto-generated)
00:07
I'll introduce Tom van Tilburg, if I pronounce it correctly, and he's going to show us Marquette of Netherlands Automatically from point clouds. Thank you. Thank you. I have to admit something. I didn't prepare the timing for this one
00:28
I have no clue how long it takes. So please if we are halfway do and then I know I have to speed up Okay There was a little text going with presentation show you have an idea what it's about
00:43
Many it's about Getting data from point clouds Into a processing pipeline and then returning markets for the whole country But first what is a market? Myself I thought it was just that but everybody has a kind of idea what a market might be
01:00
If you look it up, it's a small model used by a sculptor before beginning the real work of art I'm not sure that really fits what I wanted to do, but This is what I have in mind with a market and I think most people know it I've seen it at some point so what I want to create is Something that looks like you are surrounding but is not perfectly like you're surrounding
01:24
But at least it's a beginning of a stage. You can't come fast if you will to continue drawing on Now what is in our market the one we're making? There is a whole list of options of types of buildings you can choose from and level of detail
01:42
this one I am I took from work from the University of Delft and where they Set out a nice list of options. We chose to go for This level level of detail 2.2. Which means if you put buildings in it the dormers will be there And the extensions will be there, but there's no overhanging features in it
02:04
For the terrain I took this from the S3 website It's actually the manual on how to make terrains as we has quite a nice manual on how to make Elevation models so you see brake lines brake lines is the key feature here what we want to make
02:22
Okay, what goes into the model? First of all Netherlands is not a very big country, but we do have a point cloud for the whole country That's a lot of data That's about three terabytes if you compress it if you decompress it depends a bit on on what's in it You go to roughly 30 terabytes. I never tried myself to decompress, but that's what you might end up
02:45
We use entwine and poodle to process it together with Building footprints it helps if you already know the footprints the buildings luckily in Netherlands We have all the building footprints at least where they should be and we put them into post JS 10 million of them
03:04
Now to give you an idea what is in that point clouds of the Netherlands This is a short abstract. We made this is in the west of the country Close to Amsterdam. It's an industrial area, and you get an idea of the quality of the roof data in it So look at the roofs you see here. There's some you can obviously see the lines
03:22
I faked it a bit with the color images on it the color image is not really in the data It is super imposed later on what you'll see happening is soon. It will get into Less colors yeah, this is the real data, so you see buildings have been already Extracted from this point cloud. That's very useful. We have a luxury position here a
03:44
premise We use a database to do most of the work Why a database because you can also run all your things in in Python or whatever processing language you like because it's so much data We or I at least feel more comfortable keeping it all together in a database
04:01
And that database will solve all my indexing problems And you can do a lot which I'll show We have only one option serious option for that which will be posters and postgres to run About point clouds in the database now the obvious first Thing that pops onto mind is PG point cloud
04:22
We tried working with PG point cloud which is really great for a lot of things But it's a little bit tedious to get your data into it So in the end we chose to use it directly from entwined point tiles EBT and That works because you can use Python in your database now
04:42
And I hope you're not afraid a bit of code because I've put in a lot of cards actually Who have you knows SQL? Okay, I'm on the safe side There's actually more Python SQL in it, but what you see here is a procedural Language implementation of Python
05:03
All the way on the top do I have a pointer Maybe not I don't know All the way on the top is a little bit SQL creates a function and then for the rest It's all Python until down there where it returns your points I would actually does it builds a small poodle reader it reads from the
05:20
EBT Data and returns the points for you in a nice table format. Oh You put a footprint of the building and it will cut out exactly where you have that footprint So that's the result and this is the query that actually is run So you give your geometry with it your footprint geometry
05:40
And you save the EU this is the location of my points And then you get that you get a little building here with you see obviously lighter points over there with heights on it This is 3d view so indeed we got the roof of a certain building now how to recognize this roof as an object Again we use Python
06:02
Eski learn SK learn has a lot of features to do clustering on your points, which is very useful in this case. We used density based cluster scan which is just four lines of codes in your SQL environment, and then you have the clustering on your points
06:20
which results in This you saw the color change, maybe now we have two clusters of points which showed two sides of the roof It's a gable roof, and and it's this simple. It's just this query you run and yet for every building a Little bit more complex building just to show you idea where you go to so you start with this actually
06:44
it's a hospital with lots of things on the roof and you go to this kind of segmentation of course the trick is to get rid of all the the noise and the points you don't need and And from there you continue building your buildings Okay an important part where we spent a lot of effort on one of my colleagues built a nice library
07:08
To find what actually is the shape of all these points now you have your clusters Two of them two colors, and you want to know what what what kind of shape is in this cluster Now these points are very nice
07:21
you can see almost exactly how the roof shape should look like but you also see that the The actual find the boundary is difficult because you see such cutting corners where it thinks the points are not really part of the roof It looks like this and to go very quickly through the process this is what it does
07:42
It takes your points of either building or a roof It tries to find the segments into it Which is a kind of simplification it does It tries to regularize According to the shapes it already knows of the building it knows that probably if it is like one two degrees difference with the wall
08:00
It has to fit along the wall so that does what it does and in the end it's fits a kind of model to it, which is likely the roof shape in this case and This the end result you can check it with the points again, and then it it's supposed to fit It usually depends on the quality of your points of course I could come back to that later
08:23
Just have any harm. I'm doing in the time. I'm perfect okay Maybe I'll do a bit easier Okay now we got Clusters of points we got a kind of the idea of the roof shape But this is not perfect at all because it will be quite messy if you just implement this
08:41
straight away So you need to do a couple of more steps to it Topology is a great way to go if you have a topological correct Roof a set of roof polygons It becomes more easy to work with because you can start moving vertices around without Having to be afraid that your damage you make some kind of slivers of holes in it
09:03
So topology is the way to go And how do you create an easy topology of the roof to start with you do Voronoi polygons Voronoi polygons will Kind of fill up the space in your roof or in your building And you can apply I hope I have a picture. Yeah, I do You can apply the the classifications to those polygons, and then you have a kind of poor man's segmentation
09:27
so the effect is this this is a lot of Voronoi polygons that are my points and What you? Consecutively do and I hope yeah, I wrote it there We use another procedural language in the database which is JavaScript because there's a couple of great JavaScript libraries to do
09:47
topology simplification It's actually based on the top adjacent code and What happens next is that you see it's being? Merged first and on top of that merges simplify
10:01
And then you start seeing the roof shape although far from perfect because the middle of the roof is very rough So we need to do a little bit of fitting How can you fit this in case of a roof? It looks like this. It's easy Because you know it has a perfect Intersection line on the top like that you visualize it so you can find it intersection line
10:24
You can be sure that in section I will be the place where the points meet and you can draw a line versus the separation between my two roof parts So that's exactly what we do these are the vertices we found on the roof we snap them to a center line and
10:40
You get to a shape that looks like a very regular roof Now there's one caveat Snapping is no fun. Try to avoid it I think we spent about half of our time to get the snapping right and it's still not right
11:00
Snapping is a horrible thing to do if I would do it again Maybe I would try to avoid it completely, but we got into it over and next now. We have to kind of continue with it That yeah, I can tell you for another couple of hours on snapping I will not do Okay, we got planes From the top you saw it looked like a roof shape now how to get a building out of that
11:24
It is not as easy as it seemed at first because you cannot do a simple extrude extrude would create lots of Boxes, especially if you do postures extrude All the boxes that go to the grounds but they are not not not flats on the grounds
11:40
Also what you actually want to do if you have different levels of roof you want to connect the levels to each other instead of to the ground Luckily we use topology if your data still topology correct It is not very difficult to connect two parts which are like this separated to each other so you have a wall in between them and
12:00
Then this is more or less the end result for a simple building You see what I mean with connecting the roofs if it turns a bit more Yet this part you see it's connecting only Two levels of roofs Now you get a couple of things for free once you have this you have a lot of data on it So we can calculate the volume area. You can calculate how it's connecting with neighboring houses
12:25
That might be interesting things like energy consumption How many solar panels you can put on your roof that kind of thing? So this is already very useful stuff But this is just one building and how long did they take?
12:40
Now this little building might be just under ten seconds if we get into that hospital you saw first You might get more close to one minute. It depends a bit on the size But there's a minimum of hundred fifteen days if you want to run the whole country That's a single CPU though, so we might speed that up But we hope to get it also running a bit faster because there's definitely some bottlenecks we can tackle
13:06
Okay, this is I was actually months ago when I was Sending in the abstract for this presentation. I thought okay. I'll show you the whole Netherlands no problem You recognize the city, maybe it's the city of Amsterdam. This is as far as I got up to now
13:24
That's mainly due to the snapping. I've been improving improving until last week So I've been running it now for for a couple of days, and this is this is what we have I'll show you the real result of this later And about some of the issues And I think people who work with point clouds will recognize this
13:43
If you have water on your roofs You have no points We have a lot of water on roofs because they always fly in the winter And there's always rain, and it's cold and the water never evaporates. There's always water If you have ceramic roofs or plastic towels on them they scatter the signal. It's gone
14:02
You have no roof or no point This is the situation in Amsterdam for one out of three houses Actually people pay a lot This is this is really rich people living that I pay a lot of money to put this on top of the house But we can't do anything with if you look Google Maps Google also tried to do their best you also see it's it's a
14:24
lots of triangles that made them Okay, this this is not a serious picture of course, but overhanging trees are Are a problem my own house is under that Which big ten pretty large tree and though they shoot it in the winter
14:41
The still the big trees take away a lot of points and to do your clustering you need some statistics And you need some density of points and this poses a problem Okay, now I've been talking about buildings all the time, but how about the terrain? Maybe you know situation in Netherlands. I think about 75% of the country looks as flat as this
15:07
So actually the terrain becomes more important because when it's this flat you want to see every little detail that might be available And there's another reason Which is this thing there's a lot of dykes in the country and Dykes you want to have properly modeled
15:22
Not just roughly because what you get some triangles will cut corners And then you you miss the angle of the Dykes for instance so for us It's actually important. We find this kind of lines in the data And we do that first So this is a DM of this at the same the same dyke Of course more yellow is higher
15:41
And you see these lines either the foot lines and the top lines of the dyke and between them you can triangulate And you have a kind of kind of tin This would be the end result So that's not bad now to compare we also Put the same data into For instance for example cesium ion platform, which does a great job. It gives a very nice
16:06
Detailed terrain, but it's a lot of triangles If you compare this to if you do only with the brake lines with at least the triangles you go to this It it doesn't look nice, but believe me It's the same area, and if you drape your image over this it will look the same. It's a lot less triangles
16:22
So from here to here. That's good for your performance Now how to put all this together because you want to see the data in the end We wrote a little tool for that is running on the docker and It's what it does for you. It's processes all your roofs or whatever 3d polygons you have in the database into 3d tiles
16:49
Takes a bit of time still this was only amsterdam. We're working on that and this is your Triangles as I said you do a triangulate your database and does brake lines get triangulated in a nice mesh
17:02
Which forms your landscape and you export that into? Contacts mesh tiles works very well with cesium I don't expect you to memorize any of this by the way only a triangulation Okay, I usually try to avoid this, but there's no other way it already goes wrong
17:30
I was supposed to click on it, but I don't think anything happens here. No you see So I'll open a new site
18:03
Yes, that's what I wanted to show Okay, stupidly enough. I let the debug option on this morning I just recognized so all those white lines you see I'm not supposed to be them But what happens is that all of that area in amsterdam which you saw in in red the beginning is now three details
18:21
I'll zoom in a little and take my favorite part of course not the part that gone all wrong Okay, and this is this is roughly the effect of that process. It's completely awesome. I saw there's no hand working it
18:45
Still you have to imagine about 10 seconds per building More big buildings, and we try to get to the level of dormers Dormers are especially tedious because that's where the water is on So you see some of them go horribly wrong The easiest part is if the roofs are like like skew as you see here it gets more difficult once they are straight
19:12
So here's the the hospital you saw first you see there's a little bit of clutter on the roof We start to get rid of that Actually most difficult part is simplifying your geometries in a way that doesn't damage too much
19:25
Also, it's very difficult on this kind of houses you want to keep a very small scale Dormers if you go to this kind of buildings where an air conditioning unit is already the size of two dormers You kind of want to get rid of that that kind of air conditioning units that makes it
19:41
Hard to do I think most of the time went into into that kind of process into making it simple Okay, you can see this result yourself. I'll share the link later. Let's see if I can go back. Yes, okay
20:02
It should have a roadmap of course any projects, what do we want to improve? Improve that's one of the points, but I want this was my last last slide and last minute obviously we want to Improve the speed in which it loads what you just saw it. It loads pretty slowly
20:21
That's due to some over complexity in the terrain and a bit of over complexity in the buildings. We need to cut that out It needs to look better. I'm not a ux designer. I'm not a designer at all I just put some colors on it this can be much better And I'm sure people who are specialized in rendering in season or any other 3d rendering can make a lot nicer job out of it
20:44
And not everything you saw is open source yet the part which is I will show you later In my opinion. We should try to open source its source it, but from a commercial Commercial perspective it is also a matter of First trying to find out what you actually want to sell and then seeing what you can open source
21:03
So as a last slide This is the part which is open-sourced first one is First two are how to create the boundaries around points you can actually get building footprints with that It's very useful. I think myself. We are still working hard on it, but the code which is there still runs pretty well
21:22
And Fill the holes in point clouds. This is what we try to use to fill those Dormers where water is on the roof, so we just fill up the points kind of patch it together and then run our statistics Pg2 be 3d. I'm it's actually it's a clone. It started as a clone from Pi 3d tiles from Ocelot
21:41
It's written in dotnet though, and we wanted to have our own flexibility to make 3d tiles and the last one is to work with Topology Functionality from G3 in the database. I think it was perfectly in time Thank you, Tom
22:06
Nice crowd We have five minutes for questions You mean if it's like it like dome structure No
22:22
It's hard no don't search if it's a large dome it will segments properly So you get a kind of segmentation it looks like all kind of like hexagons, but not necessarily hexagons If it's small, it's just gone basically yeah
22:43
What are we using to filter the vegetation out of the canopies if you saw the slides in the beginning? We were very fortunate. That's already been done took for us This goes a bit far back, but in that little movie. I showed
23:01
Right yeah, it's already classified. It actually has been done by hand. It's quite an amazing job The something that it was sent to some countries where you pay less money for doing that kind of hand work and They really have been selecting about every points in where in or out vegetation
23:47
Very good question yes, how do you like if you do before annoy you obviously lose all your 3d information because it just for noise over all your 2d 2d points at the moment What we later we stitch together the foreigner cells
24:01
And then you get kind of polygons We know what points used to be in those polygons from those points you derive that your parameters you do a plane fit So you derived your premise your normal factor and your XYZ and you apply that to your polygon again And then your polygon becomes in 3d polygon
24:25
Yes, we started with We started with tins and the promise with tins you have They look of course tins and for noise are very much alike in a way but especially where they meet you have double points like the point is either a
24:42
Part of one polygon or the other war noise fix the problem for you any other questions Yeah, the way we do it is
25:01
Just go take your pot 3d polygon and see how many points fit in If you have a very low and low density of points fitting in there You know something went wrong either in your input data or your process Okay, our time is up. Thank you very much Tom. We'll take five minutes break