Giter VIP home page Giter VIP logo

2024-m1-vegetation's Introduction

ExaMA - Vegetation

Overview

The goal of this project is to develop a tool that integrates trees into 3D urban models to improve the efficiency of thermal simulations. This project is part of the HiDALGO2 initiative, which aims to explore synergies between modeling, data acquisition, simulation, data analysis and visualization, with focus on improving building energy efficiency and indoor air quality.

Installation and Usage

Required Packages

To build the project, you either need the following packages or you can use the provided Docker container:

Installating package on Ubuntu

sudo apt-get update
sudo apt-get install -y build-essential cmake git libmpfr-dev libboost-dev libcurl4-openssl-dev libfmt-dev

Install CGAL

For our project, we need the master branch of CGAL:

git clone --branch master https://github.com/CGAL/cgal.git
mkdir cgal.build
cd cgal.build
cmake -DCMAKE_INSTALL_PREFIX=path_to/cgal.install ../cgal
make install

Alternatively, using the Docker container:

This container can be used for developpement, when building the image the project is copied in the container without building the project.

You might want to remove the build directory before running (and closing) the container to avoid conflicts.

docker build -t 2024m1vegetation:latest .
docker run -it 2024m1vegetation:latest

On VsCode you can use the Remote - Containers extension to reopen the project in a container.

Build the Project

Configure and build the project using CMake:

mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=/workspace/cgal/cgal.install ..
make

# Run the tests
ctest

Note : this is the path used in the Docker container, you might need to change it to your own path.

Usage

Use the configuration file config.json to specify:

  • bbox: The bounding box of the area of interest ("bottom latitude, bottom longitude, top latitude, top longitude")

  • origin: The origin used in the conversion from latitude and longitude to Cartesian coordinates

  • LOD: The level of detail (0, 1, 2, 3) of the meshes

  • altitude: The altitube of the area of interest (in meters)

  • default_height_range: The default height of the trees (in meters) when the height is not available in the OpenStreetMap data

  • default_genus: The default genus of the trees when the genus is not available in the OpenStreetMap data

  • input_building_mesh: The input building mesh file for merging the buildings with the trees

  • merge_builtings_trees: Boolean to merge the trees with the buildings or not

  • output_file: The base name of the output file saved in the /output directory

Use the genus.json file to specify the genus and height of the trees to be used in the simulation.

  • known_genus: A list of genera for which we have a base mesh

  • cedrus_like: A list of the genera for which the cedrus mesh model will be used

  • etc.

To mesh your own tree model using CGAL Alpha Wrapper run:

./build/wrap Genus.stl <alpha> <offset>

Move the result to the tree_ref directory and add the genus to the known_genus in the trees.json file.

Finnaly run the program:

./build/src/run

The output mesh and some metrics will be saved in the /output directory (which is automatically created if needed).

You can visualize the output mesh with Meshlab, Paraview or any other mesh viewer.

Contributors

References

For detailed information on the project’s context, objectives, methodology, and implemenation, please refer to the accompanying report.

2024-m1-vegetation's People

Contributors

pa-senger avatar giuliocrp avatar vincentchabannes avatar prudhomm avatar

Stargazers

 avatar

Watchers

 avatar  avatar Pierre Alliez avatar  avatar  avatar

2024-m1-vegetation's Issues

Modelize trees

  • Improve the tree modeling ( better approach, more diversity, more accurate representation/parametrization)

V0 REPORT MODIFICATIONS

Improve the report overall structure.

  • add complete descriptions to figures
  • every statement must be referenced (especially in the first paragraphs)
  • highlight main objective (bold type text)
  • same for other objectives : CGAL, Feel++ (sunblocks, thermal simulations)
  • no code in the introduction (put it in the methodology)
  • considerations about execution time
  • add at the end of the intro what we will explore in the different sections of the report
  • what formats are we going to use and how it's structured: .off .csv .json
  • Watertight triangulation consistent with Finite element method
  • Tighter image placement
  • Describe the metadata

First Results Analysis for V1

Task: Analyze and document the first results obtained from the project's initial research and development activities. Highlight significant findings and any unexpected outcomes.

Requirements:

  • Gather all results and data collected to date.
  • Perform a preliminary analysis to identify trends, insights, or anomalies.
  • Discuss the findings with the project team to gain additional perspectives.
  • Note any areas where results deviate from initial expectations and possible reasons.

Deliverables:

  • A report summarizing the first results, including data visualizations or charts as appropriate.
  • Recommendations for next steps based on these initial findings.

Enhance Collaboration Tools and Practices for V1

Task: Evaluate and improve the tools and practices used by the project team to collaborate more effectively. Consider incorporating new tools or refining existing processes to enhance teamwork and communication.

Requirements:

  • Review current collaboration tools and methods.
  • Gather feedback from the team on effectiveness and areas for improvement.
  • Research potential tools or practices that could enhance collaboration.

Deliverables:

  • A report on current collaboration practices with proposed enhancements.
  • Implementation plan for any new tools or processes adopted.

Simulations

  • Run various simulations on different trees, on cluster of trees, test parameters, etc
  • Analyze results and feedback

Advisor Code Review

Conduct a Advisor review session to identify any bugs, logical errors, or areas for improvement.

Write presentation script

  • Write the script for the v0 project intro beamer presentation.
  • I should last ~4 mins including transitions

CI workflow

  • Make a CI (continuous integration) workflow with venv, dependencies, etc.

Choose how to represents trees

  • Decide on the best way to represent trees for our problem.
  • There can be multiple ways to do it
  • This issues can change/evolve

Strengthen Project Documentation for V1

Task: Ensure that all aspects of the project are well-documented, including code, user guides, and technical specifications. Aim to make documentation accessible and useful for both the team and external contributors.

Requirements:

  • Audit existing documentation for completeness and accessibility.
  • Identify gaps in documentation and areas needing updates.
  • Develop templates or guidelines for consistent documentation.

Deliverables:

  • A documentation improvement plan, detailing areas of focus and timelines.
  • Updated or new documentation as identified in the plan.

Make v1 presentation

  • Make a beamer presentation for the v1
  • Explain changes from v0, new approaches and challenges

Conduct Technical Review and Code Quality Check for V1

Task: Perform a thorough review of the project’s codebase and technical outputs to ensure high quality and maintainability. Identify areas for refactoring or improvement.

Requirements:

  • Organize a code review session with the development team.
  • Use static analysis tools to identify code quality issues.
  • Document findings and prioritize refactoring tasks.

Deliverables:

  • Code review report, highlighting areas of concern and suggested improvements.
  • A roadmap for addressing technical debt and enhancing code quality.

Compose the Comprehensive Final Project Report

Task: Write the final project report detailing the project's context, objectives, methodologies, results, and conclusions. The report should provide a clear and thorough account of the project from inception to conclusion, including a roadmap of the project's development, challenges faced, solutions implemented, and lessons learned.

Requirements:

  • Introduction and background of the project.
  • Detailed descriptions of the project phases and milestones.
  • Analysis of the results and their implications.
  • Reflection on the project's successes and areas for improvement.
  • Integration of the consolidated bibliography.

Deliverables:

  • A final report document in .pdf format(written using latex), of 30 pages maximum.

  • Peer reviews from at least two team members before submission.

  • #4

Update Project Roadmap and Milestones for V1

Task: Update the project roadmap and milestones based on the achievements of the first iteration and the refined project scope. Ensure the roadmap reflects realistic timelines and priorities.

Requirements:

  • Review the initial roadmap and milestones in the context of V1 progress.
  • Adjust timelines and priorities as necessary to align with updated project scope and objectives.
  • Communicate updates to the team and stakeholders to ensure alignment.

Deliverables:

  • An updated project roadmap with revised milestones.
  • A presentation or document summarizing key changes to the roadmap and the reasons behind them.

Make a Google Doc

  • Make a Google doc for the project.
  • Add concerned people to it.
  • Share ideas 😃

Develop and Finalize the Project Presentation

Task: Create the final presentation for the project, covering all major milestones, key findings, challenges overcome, and future directions. Ensure the presentation is engaging, well-structured, and adequately reflects the work done throughout the project.

Requirements:

  • Include all team members in the preparation and presentation process.
  • Use clear and concise slides with relevant data and visuals.
  • Practice the presentation multiple times as a team.
  • Prepare to answer questions regarding the project specifics and decisions made.

Deliverables:

  • A Latex/PDF Slides presentation file.
  • A script or notes for each slide to assist with the presentation.

basic alpha wrapper

  • Make a little program to take CGAL alpha wrapper in hands and see if it could do the job
  • #16

Bibliography Update for V1

Task: Expand and refine the project bibliography to include any new sources consulted during the first iteration. Ensure all references are accurately cited and formatted.

Requirements:

  • Compile all new sources of information or data used since the last iteration.
  • Check each source for proper citation format and completeness.
  • Organize the bibliography to be clear and easily navigable.

Deliverables:

  • An updated bibliography file with all new sources included.
  • A list highlighting key sources added in V1 and their relevance to the project.

Gather Feedback

Collect feedback from peers, instructors, and possible stakeholders to reflect on the project's successes and areas for improvement.

Refine Project Scope and Deliverables for V1

Task: Based on the first iteration’s insights and outcomes, refine the project scope and clarify deliverables for the next phase. Ensure alignment with project objectives and stakeholder expectations.

Requirements:

  • Reassess the initial project scope in light of V1 results.
  • Identify any necessary adjustments to project deliverables.
  • Update scope documents and communicate changes to all stakeholders.

Deliverables:

  • Updated project scope document.
  • Revised list of project deliverables for the next phase, with rationale for any changes.

Find suitable tree database

Find a tree database which meets the requirement of the project:

  • open source
  • provide all (or the most) metadata we're interested in

Methodology Update for V1

Task: Revise and detail the project methodology for V1, incorporating any necessary adaptations based on the project's progress and initial findings.

Requirements:

  • Review the initial methodology in the context of work completed to date.
  • Identify areas for methodological adjustments or improvements.
  • Document the rationale for any changes in methodology.
  • Ensure the methodology is clearly explained and reproducible.

Deliverables:

  • A detailed methodology document for V1, including any new techniques, tools, or processes introduced.
  • A log of methodological changes and the reasons for each change.

Finalize README and Documentation

Task: Update the README file to ensure it is comprehensive, clear, and up-to-date. The README should effectively introduce the project and guide new users and contributors.

Requirements:

  • Include a concise project title and description.
  • Provide clear installation instructions.
  • Detail usage examples or guides.
  • Specify contribution guidelines.
  • State the license information if relevant.
  • Acknowledge contributors and provide credits where necessary.
  • List features, possible roadmap, and current project status.
  • Explain how to run tests.
  • Address frequently asked questions or common issues.
  • Provide contact information for further inquiries.

Deliverables:

  • An updated README.adoc or README.md file that covers all the above sections effectively.
  • Updated documentation files if applicable.

Please ensure the README is formatted properly and is easy to read. Use Asciidoc or Markdown formatting to enhance readability and structure.

v0 feedback

  • Get feedback for the v0 to improve the approaches in the v1

  • presentation

  • report

Update Project Objectives for V1

Task: Review and update the project objectives and sub-objectives based on the first month's progress and insights. Ensure the objectives are aligned with the current project direction and any new challenges identified.

Requirements:

  • Assess the initial objectives against current project status.
  • Adjust objectives to incorporate new findings or shifts in project focus.
  • Clearly document any changes to objectives or sub-objectives.
  • Discuss potential impacts of these changes with the project team.

Deliverables:

  • An updated objectives document highlighting any changes made for V1 iteration.
  • A brief presentation to the project team outlining the objective updates and rationale behind them.

Get familiar with cGAL

Objectives:

  • understand cGAL infrastructure
  • understand how to compile and use cGAL on simple examples
  • undertand how to produce a tringulation

Write v1 report

  • Write a report for the v1.
  • Show and explain the changes in the project conception
  • #4

Extract tree data

Extract, reformat if necessary, and store the data we're interested in

Consolidate and Finalize the Project Bibliography

Task: Review and consolidate all references and sources used throughout the project into a single, organized bibliography. Ensure that all sources are correctly cited and formatted according to [specific citation style - e.g., APA, MLA, IEEE].

Requirements:

  • Collect all sources used by each team member.
  • Check each citation for accuracy and completeness.
  • Organize the bibliography in alphabetical order or according to the citation style’s requirements.

Deliverables:

  • A final bibliography file in .bib format.

  • A list of any sources missing necessary information for follow-up.

  • #3

LaTeX workflow

Add a Github workflow action for compiling the LaTeX documents of the project

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.