A library to automatically general built configurations that respect urban regulations and optimize a utility function.
This research library is developed as part of COGIT team researches concerning processing of urban regulation.
It provides an implementation of multi-dimensionnal simulated annealing algorithm to produce built configuration from a set of boxes constrained by urban regulation that optimizes a utility function.
The project is developed over 3D GIS Open-Source library GeOxygene concerning geometric operators and 3D visualization, librjmcmc4j for simulated annealing implementation and simplu3d-rules for geographical model and regulation management.
The official website is hosted on GitHub and the javadoc is deployed in the gh-pages branch of this project.
This software is free to use under CeCILL license. However, if you use this library in a research paper, you are kindly requested to acknowledge the use of this software.
Furthermore, we are interested in every feedbacks about this library if you find it useful, if you want to contribute or if you have some suggestions to improve it.
The project is build with Maven and is coded in Java (JDK 1.8 or higher is required), it has been tested in most common OS. If you are not familiar with Maven, we suggest installing developer tools and versions as described in GeOxygene install guide.
Generating a building with n boxes
Generating n buildings with 1 box
fr.ign.cogit.simplu3d.exec.BasicSimulator class using predefined resource files is runnable. It generates a built composed by a set of intersecting boxes.
public static void main(String[] args) throws Exception {
// Loading of configuration file that contains sampling space
// information and simulated annealing configuration
String folderName = BasicSimulator.class.getClassLoader().getResource("scenario/").getPath();
String fileName = "building_parameters_project_expthese_3.json";
SimpluParameters p = new SimpluParametersJSON(new File(folderName + fileName));
// Load default environment with no DTM (data are in resource directory)
Environnement env = LoaderSHP.loadNoDTM(new File(
DemoEnvironmentProvider.class.getClassLoader().getResource("fr/ign/cogit/simplu3d/data/").getPath()));
// Select a parcel on which generation is proceeded
BasicPropertyUnit bPU = env.getBpU().get(0);
// Instantiation of the sampler
OptimisedBuildingsCuboidFinalDirectRejection oCB = new OptimisedBuildingsCuboidFinalDirectRejection();
// Rules parameters.8
// Distance to road
double distReculVoirie = 2;
// Distance to bottom of the parcel
double distReculFond = 0;
// Distance to lateral parcel limits
double distReculLat = 4;
// Distance between two buildings of a parcel
double distanceInterBati = 0;
// Maximal ratio built area
double maximalCES = 0.5;
// Instantiation of the rule checker
SamplePredicate<Cuboid, GraphConfiguration<Cuboid>, BirthDeathModification<Cuboid>> pred = new SamplePredicate<>(
bPU, distReculVoirie, distReculFond, distReculLat, distanceInterBati, maximalCES);
// Run of the optimisation on a parcel with the predicate
GraphConfiguration<Cuboid> cc = oCB.process(bPU, p, env, 1, pred);
// Writting the output
SaveGeneratedObjects.saveShapefile(p.get("result").toString() + "out.shp", cc, bPU.getId(), 0);
}
For more information about this code, the generation process and the underlying models are described in the PhD of Mickael Brasebin (French document) :
Mickaël Brasebin & Julien Perret COGIT Laboratory ({surname.name} (AT) {gmail} (POINT) {com})
- IAUIDF for land price assessment : Note de conjecture ORF
- OpenMole - SimPLU3D a demonstrator designed to help for the determination of regulation parameters value.
- PLU++ : for the simplification of public participation during PLU elaboration
- Building permit cheking a demonstrator to help for building permit instructions by checking a set of rules on a projected construction.
- DECODURBA : a tool dedicated to assist citizens for the construction of personnal house. SimPLU3D was integrated to the solution proposed during the Hackurba hackhathon and was awarded the price of National Urban Planning Portal by the French Ministery of Environment.
- This research is supported by the French National Mapping Agency (IGN)
- It is partially funded by the FUI TerraMagna project and by Île-de-France Région in the context of e-PLU project
- Mickaël Borne for improvements in the code and for refactoring
- Imran Lokhat for tests and improvements about imrpoving the pipeline of simulation
- ISC-PIF - Paul Chapron and Romain Reuillon for proposing methods dedicated to model exploration and simulation distribution