Skip to content

Instantly share code, notes, and snippets.

View hugoledoux's full-sized avatar

Hugo Ledoux hugoledoux

View GitHub Profile
@hugoledoux
hugoledoux / icuc_shady_ams.md
Last active January 23, 2025 13:26
submission for ICUC12 in Rotterdam

Shady Amsterdam: Identifying the shady places and routes of Amsterdam

Authors

Jessica Monahan, Victoria Tsalapati, Haohua Gan, Yan Gao, Citra Andinasari, Hugo Ledoux , Lukas Beuster

all affiliated to: Delft University of Technology

Abstract

Introducing City4CFD, your gateway to seamless urban 3D modelling for microscale flow simulations! This open-source software (GitHub code) revolutionises how we reconstruct city geometries.

With City4CFD, creating detailed urban 3D scenes (with terrain and buildings) from point clouds is automated and intuitive, complete with imprinted surfaces like green areas and water bodies. Its versatility allows you to reconstruct buildings in various levels of detail, combining data from multiple sources:

  1. Fusion of 2D polygons and point clouds for precise reconstruction
  2. Footprint extrusion using height or floor-number attributes
  3. Import of existing 3D building models for effortless integration

The result? A watertight, seamlessly integrated 3D geometry ready for high-resolution microscale simulations. City4CFD transforms city modelling into an exciting, efficient, and open-access experience.

@hugoledoux
hugoledoux / phd_multiroof.md
Last active January 6, 2025 07:13
MultiRoofs job ad multiroof_phd.md
layout title permalink
page
PhD position vacancy
/jobs/phdmultiroofs/

@hugoledoux
hugoledoux / cube.city.json
Last active August 21, 2024 05:39
test for extra attributes for Semantics objects
{
"CityObjects": {
"id-1": {
"geometry": [
{
"boundaries": [
[
[
0,
1,
@hugoledoux
hugoledoux / rr_rerun_ahn.py
Last active May 7, 2024 09:19
ahn4 viewer with rerun
import rerun as rr
import numpy as np
import trimesh
import laspy
import startinpy
las = laspy.read("/Users/hugo/data/ahn4/crop.laz")
d = np.vstack((las.x, las.y, las.z)). transpose()
c = np. vstack((las.red, las.green, las.blue) ).transpose()
@hugoledoux
hugoledoux / reto5.py
Created February 9, 2024 15:27 — forked from lokilloboss/reto5.py
Reto del dia 5
import re
# Variable global para almacenar ids
ids_usuarios = []
# Variable global para almacenar información de usuarios
usuarios = {}
# Función para generar ID único
def generate_id():
@hugoledoux
hugoledoux / bos_geomatics_2223.md
Last active February 13, 2024 12:28
Draft BoS geomatics summary 2022-2023

Position of the BoS MSc Geomatics within the A+BE Faculty

The Board of Studies (BoS) for the program "MSc Geomatics" was established on 2023-01-01 as a separate and independent board of studies at the Faculty of Architecture and the Built Environment (A+BE).

Before 2023-01-01, there were 2 members from the MSc Geomatics (one teacher and one student) in the BoS of the Faculty A+BE. This BoS covered 5 different programmes (at both the BSc and MSc levels, on different topics, and having different teaching languages (Dutch and English)). The general feeling was that since the program MSc Geomatics is somewhat different from the other ones, a specific BoS that would address the specificities of the program would be better for ensuring that the quality of the education stays high.

We therefore present the activities and advices we gave during the period 2023-01-01 to 2023-08-30.

import startinpy
import laspy
import numpy as np
import sys
np.set_printoptions(precision=3, suppress=True)
las = laspy.read('/Users/hugo/teaching/hw04-marking/data/area_full.laz')
print(las)
pts = np.vstack((las.x, las.y, las.z)).transpose()
@hugoledoux
hugoledoux / laspy_create.py
Created January 26, 2024 10:00
laspy create file + matplotlib
import laspy
import numpy as np
import sys
np.set_printoptions(precision=2, suppress=True)
# 0. Creating some dummy data
my_data_xx, my_data_yy = (np.random.random_sample(size=1000) * 100, np.random.random_sample(size=1000) * 100)
# print(my_data_xx)
my_data_zz = np.random.random_sample(size=1000) * 2
my_data = np.hstack((my_data_xx.reshape((-1, 1)), my_data_yy.reshape((-1, 1)), my_data_zz.reshape((-1, 1))))
@hugoledoux
hugoledoux / laspy_filter1.py
Last active January 25, 2024 13:25
laspy filter
import laspy
import numpy as np
import sys
las = laspy.read('/Users/hugo/teaching/hw04-marking/data/area_full.laz')
#-- fetch all points within 100m of the median xyz of the file
coords = np.vstack((las.x, las.y, las.z)).transpose()
median = np.median(coords, axis=0)