Metadata-Version: 2.4
Name: pybimscantools
Version: 0.2.0
Summary: A python packages for automated data acquisition pipeline for HumanTech project
Home-page: https://github.com/Patipolt/pybimscantools.git
Author: Patipol Thanuphol, Michael Peter
Author-email: thau@zhaw.ch, patipol.thanu@gmail.com, pmic@zhaw.ch
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: alphashape==1.3.1
Requires-Dist: asttokens==2.4.1
Requires-Dist: attrs==23.2.0
Requires-Dist: blinker==1.6.3
Requires-Dist: certifi==2023.7.22
Requires-Dist: charset-normalizer==3.3.1
Requires-Dist: click==8.1.7
Requires-Dist: click-log==0.4.0
Requires-Dist: colorama==0.4.6
Requires-Dist: comm==0.2.2
Requires-Dist: ConfigArgParse==1.7
Requires-Dist: contourpy==1.1.1
Requires-Dist: cycler==0.12.1
Requires-Dist: dash==2.16.1
Requires-Dist: dash-core-components==2.0.0
Requires-Dist: dash-html-components==2.0.0
Requires-Dist: dash-table==5.0.0
Requires-Dist: decorator==5.1.1
Requires-Dist: et-xmlfile==1.1.0
Requires-Dist: exceptiongroup==1.2.1
Requires-Dist: executing==2.0.1
Requires-Dist: fastjsonschema==2.19.1
Requires-Dist: Flask==3.0.0
Requires-Dist: fonttools==4.43.1
Requires-Dist: idna==3.4
Requires-Dist: ifcopenshell
Requires-Dist: importlib_metadata==7.1.0
Requires-Dist: ipython==8.23.0
Requires-Dist: ipywidgets==8.1.2
Requires-Dist: itsdangerous==2.1.2
Requires-Dist: jedi==0.19.1
Requires-Dist: Jinja2==3.1.2
Requires-Dist: JPype1==1.4.1
Requires-Dist: jsonschema==4.21.1
Requires-Dist: jsonschema-specifications==2023.12.1
Requires-Dist: jupyter_core==5.7.2
Requires-Dist: jupyterlab_widgets==3.0.10
Requires-Dist: kiwisolver==1.4.5
Requires-Dist: lark==1.1.8
Requires-Dist: laspy==2.5.4
Requires-Dist: MarkupSafe==2.1.3
Requires-Dist: matplotlib==3.8.0
Requires-Dist: matplotlib-inline==0.1.7
Requires-Dist: nbformat==5.10.4
Requires-Dist: nest-asyncio==1.6.0
Requires-Dist: networkx==3.2.1
Requires-Dist: numpy==1.26.1
Requires-Dist: open3d==0.18.0
Requires-Dist: openpyxl==3.1.2
Requires-Dist: packaging==23.2
Requires-Dist: pandas==2.1.1
Requires-Dist: parso==0.8.4
Requires-Dist: piexif==1.1.3
Requires-Dist: Pillow==10.1.0
Requires-Dist: platformdirs==4.2.0
Requires-Dist: plotly==5.21.0
Requires-Dist: prompt-toolkit==3.0.43
Requires-Dist: pure-eval==0.2.2
Requires-Dist: Pygments==2.17.2
Requires-Dist: pylas==0.4.3
Requires-Dist: pyparsing==3.1.1
Requires-Dist: pyquaternion==0.9.9
Requires-Dist: python-dateutil==2.8.2
Requires-Dist: pytz==2023.3.post1
Requires-Dist: pywin32==306
Requires-Dist: referencing==0.34.0
Requires-Dist: requests==2.31.0
Requires-Dist: retrying==1.3.4
Requires-Dist: rpds-py==0.18.0
Requires-Dist: Rtree==1.2.0
Requires-Dist: scipy==1.11.3
Requires-Dist: shapely==2.0.2
Requires-Dist: simplekml==1.3.6
Requires-Dist: six==1.16.0
Requires-Dist: stack-data==0.6.3
Requires-Dist: swissREFRAME==1.1.2
Requires-Dist: tenacity==8.2.3
Requires-Dist: termcolor==2.3.0
Requires-Dist: traitlets==5.14.3
Requires-Dist: trimesh==4.1.3
Requires-Dist: typing_extensions==4.11.0
Requires-Dist: tzdata==2023.3
Requires-Dist: urllib3==2.0.7
Requires-Dist: wcwidth==0.2.13
Requires-Dist: Werkzeug==3.0.1
Requires-Dist: widgetsnbextension==4.0.10
Requires-Dist: zipp==3.18.1
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# pybimscantools

A python package for automated data acquisition pipeline.
This package has been slightly modified from the version utilized by HumanTech project to generalize the use of the software.

## Data

There is provided data available for download at: https://drive.google.com/file/d/1X82WFLAPbr41ybdGQwJHutIHWmgMMlVG/view?usp=sharing.
This provided data is processed by `pybimscantools` as an example to demonstrate automated data acquisition and its pre-processing pipeline. The users are required to change data in order to perform automated data acquisition and its related pre-processing tasks of project of their choices.

------------------------------------------------------------------------


## Python swissreframe

** Notice for python `swissreframe` package
In order to use `swissreframe` package, which is included in pybimscantools, `JAVA` is required on your system. Please follow the instructions below before installing the environment.

### Windows

In windows you need to set an environment variable in system variables called **JAVA_HOME** to a 64 bit version of Java. You need to install `Java`, if it is not already installed.

| Description    | Value                                  |
|----------------|----------------------------------------|
 Variable name  | **JAVA_HOME**                          
 Variable value | ``C:\Program Files\Java\jre1.8.0_291``


### Linux

To install Java follow this link: https://www.java.com/en/download/help/linux_x64_install.html#install


```
nano ~/.bashrc
export JAVA_HOME=/usr/java/jre1.8.0_421
export PATH=$JAVA_HOME/bin:$PATH
```

```
source ~/.bashrc
```

Test the java installation:

```
java -version
```
------------------------------------------------------------------------

## How to use

Clone a repository from: https://github.com/Patipolt/pybimscantools.git

Install `pybimscantools` package

```
python.exe -m pip install pybimscantools
```

Once you have set up the environment ready for the software, there are some requirements below in order to use `pybimscantools` at its fully functioning state. After that, you can follow the steps in `test.py`.

### Folder Structure

Make sure that the downloaded zipped `Data` folder is extracted and located within the same root as the software. Basically move it to the same root as `pybimscantools`.

```
Data/
├── Test_data/
│   ├── images/
│   ├── marker/
│   ├── models/
│   ├── pointclouds/
│   ├── points_for_transformation.xlsx
pybimscantools/
├── dependencies/
├── doc/
├── examples/
├── PIX4D_DB_PROFILES/
├── pybimscantools/
├── venv/
├── MANIFEST.in
├── pyproject.toml
├── README.MD
├── requirements.txt
├── setup.py
└── test.py
```

If you want to set up your own project, make sure the folder structure as below:
*Required structure and files in order to run the pipeline.

```
Data/
├── Test_data/
├── (Other_project_of_your_choices_with_same_structure_as_above)/
│   ├── images/
│   |   ├── ....jpg* (aerial images of your site)
│   ├── marker/
│   |   ├── marker_ifc.xlsx* (marker measurement according to CWA_CEN_XXX in Project Coordinate System)
│   |   ├── relative_corners_tag_(name_of_tag).xlsx* (tag info. w.r.t marker)
│   ├── models/
│   |   ├── ifc/
│   |   |    ├── ....ifc* (ifc file of your site)
│   ├── pointclouds*/
│   ├── points_for_transformation.xlsx* (transformation between 2 coordinates)
```

### Required Programs and Licenses

#### 1. PIX4Dmapper, photogrammetry software

`pybimscantools` associates with photogrammetry software, `PIX4Dmapper`. The user is required to have the photogrammetry software installed with a working license. The lastest version of `PIX4Dmapper` that `pybimscantools` supports is `4.5.6` due to the need of PIX4Dtagger integrated in this PIX4Dmapper specific version.
The user is required to install PIX4Dmapper in a typical location, `C:\Program Files\Pix4Dmapper`. Once installed, extract the DB profile of PIX4Dmapper from the folder `PIX4D_DB_PROFILES` and place them in PIX4D database location.

```
- Extract the zipped file, you will see 2 folders (common, and Pix4D mapper)
- Place the extracted folders under the PIX4D database location.
- Usually under C:\Users\{YOUR-USER}\AppData\Local\pix4d
```

#### 2. drone harmony, drone mission planning software

`pybimscantools` also associates with `drone harmony` software to visualize representations of construction site and partially automate the mission planning process. The user is required to have a working license with `drone harmony` as well as the `API_KEY` from drone harmony. `API_KEY` is required to be entered in the program (e.g. `test.py`).

------------------------------------------------------------------------

## License
This software is licensed under the MIT License, except for dependencies that have their own respective licenses. See the `LICENSE` file for details.

This software includes various third-party libraries with different licenses. Below is a list of key dependencies and their respective licenses:
```
alphashape      MIT
requests        Apache-2.0
urllib3         MIT
numpy           BSD-3-Clause
jpype1          Apache-2.0
matplotlib      PSF
scipy           BSD-3-Clause
termcolor       MIT
pandas          BSD-3-Clause
pyquaternion    MIT
simplekml       BSD-2-Clause
openpyxl        MIT
Flask           BSD-3-Clause
piexif          MIT
laspy           MIT
ifcopenshell    LGPL-3.0
shapely         BSD-3-Clause
lark            MIT
open3d          MIT
swissreframe    MIT
```
------------------------------------------------------------------------
