diff --git a/README.md b/README.md
index 538691b..a199eb5 100644
--- a/README.md
+++ b/README.md
@@ -27,60 +27,46 @@
-
+
-
-
EdgeTech-Template
-
-
- This repo is a template of how to build on IQT Labs EdgeTech-Core functionality to instantiate an MQTT client. The philosophy behind EdgeTech-Core is to minimize development requirements for standing up the software stack of an "edge" system. The template includes all of the files and code scaffolds required to build in the EdgeTech framework. All of this functionality is wrapped in a Docker container for cross-platform compatibility.
-
-
- You'll need to rename various files and directories as well as customize based on your functional needs, but the EdgeTech framework and scaffolding should minimize the development requirements. If you don't find that to be the case, submit a pull request and help us make this repository better!
-
-
- Make Contribution
- ·
- Report Bug
- ·
- Request Feature
-
+EdgeTech Occlusion Mapper
+
+
+ Occlusion Mapper lets you record that area around a Pan Tilt Zoom camera that is a blocked by something in the way, like a building or trees. It produces an array of Azimuth and Elevation values. This array provides what is the lowest possible elevation that can be used at a given azimuth.
+
+
+ ## Running Things
+ Occlusion Mapper is available as a Docker Image on Docker Hub. Unless you are looking on making modifications to the code, you can just use the Docker Image that is available there. The included [docker-compose](./docker-compose.yaml) file provides an example of how to use that file.
+
+
+ The [occlusion-mapper.env](./occlusion-mapper.env) file provides the set of environment variables that need to be set. Save a copy this file as `.env` and then modify it for your local install. You will probably need to change the Project & Device names, along with the IP address for the camera.
+
+
+ ## Usage
+
+ Launch the container using Docker Compose: `docker compose up`
+
+ If the container is running locally, navigate to: [http://localhost:5000](http://localhost:5000) in your browser.
+
+ Otherwise, if the container is running on another machine, navigate to that IP address with port 5000. For example: `http://192.168.1.111:5000`
+
+ This will bring up a rudimentary web interface that lets you control the camera and record different Azimuth/Elevation values. To map out the ooclusions around your camera:
+
+ 1. Starting at 0° azimuth, find the camera elevation where you begin to have a clear view of the sky in the middle of the screen.
+ 1. Next hit the **Add Point** button to record this value. The Graph at the bottom of the screen should update with this value.
+ 1. Move the camera to the right. If the center of the frame no longer lines up with where planes would begin to be visible, adjust the Elevation and then hit **Add Point**
+ 1. Continue this process until you have arrive back at 0° azimuth
+
+
+
### Built With
[![Python][python]][python-url]
[![Poetry][poetry]][poetry-url]
[![Docker][docker]][docker-url]
-### Modules Built Based on this Template
-
-
-- edgetech-daisy
-
-- edgetech-filesaver
-
-- edgetech-audio-recorder
-
-- edgetech-c2
-
-- edgetech-telemetry-pinephone
-
-- edgetech-s3-uploader
-
-- edgetech-couchdb-startup
-
-- edgetech-couchdb-saver
-
-- edgetech-http-uploader
-
-
-
-### Projects Built Using the EdgeTech Framework
-
-
-- aisonobuoy-collector-pinephone
-
### Prerequisites
diff --git a/README_TEMPLATE.md b/README_TEMPLATE.md
deleted file mode 100644
index 6ab7359..0000000
--- a/README_TEMPLATE.md
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-[contributors-shield]: https://img.shields.io/github/contributors/IQTLabs/edgetech-template.svg?style=for-the-badge
-[contributors-url]: https://github.com/IQTLabs/edgetech-template/graphs/contributors
-[forks-shield]: https://img.shields.io/github/forks/IQTLabs/edgetech-template.svg?style=for-the-badge
-[forks-url]: https://github.com/IQTLabs/edgetech-template/network/members
-[stars-shield]: https://img.shields.io/github/stars/IQTLabs/edgetech-template.svg?style=for-the-badge
-[stars-url]: https://github.com/IQTLabs/edgetech-template/stargazers
-[issues-shield]: https://img.shields.io/github/issues/IQTLabs/edgetech-template.svg?style=for-the-badge
-[issues-url]: https://github.com/IQTLabs/edgetech-template/issues
-[license-shield]: https://img.shields.io/github/license/IQTLabs/edgetech-template.svg?style=for-the-badge
-[license-url]: https://github.com/IQTLabs/edgetech-template/blob/master/LICENSE.txt
-[product-screenshot]: images/screenshot.png
-
-
-
-[Python]: https://img.shields.io/badge/python-000000?style=for-the-badge&logo=python
-[Python-url]: https://www.python.org
-[Poetry]: https://img.shields.io/badge/poetry-20232A?style=for-the-badge&logo=poetry
-[Poetry-url]: https://python-poetry.org
-[Docker]: https://img.shields.io/badge/docker-35495E?style=for-the-badge&logo=docker
-[Docker-url]: https://www.docker.com
-
-[![Contributors][contributors-shield]][contributors-url]
-[![Forks][forks-shield]][forks-url]
-[![Stargazers][stars-shield]][stars-url]
-[![Issues][issues-shield]][issues-url]
-[![MIT License][license-shield]][license-url]
-
-
-
-
-### Built With
-
-
-
-[![Python][Python]][Python-url]
-[![Poetry][Poetry]][Poetry-url]
-[![Docker][Docker]][Docker-url]
-
-## Getting Started
-
-To run this repo, simply run:
-
-```
-docker-compose up
-```
-
-The audio recorder is containerized and dependencies are managed using [poetry]("https://python-poetry.org").
-
-### Prerequisites
-
-Running this repo requires that you have [Docker](https://www.docker.com) installed.
-
-## Usage
-
-
-
-Spinning up this system requires an MQTT server and this container to be included in your `docker-compose.yml`. You can find an example of this workflow in this repository's `docker-compose.yml`. Additionally, some editing of relevant environment variables will be required based upon your system's configuration of topics to subscribe to and MQTT configuration. Examples of these environment variables can be found in this repository's `.env` file.
-
-Copying the project `docker-compose` statements into a master `docker-compose.yml` and `.env` files with your entire system of containers is the preferred workflow. Find an application architecture diagram example of how the usage of this module was envisioned below.
-
-
-
-
-```mermaid
-
-flowchart TD
- A(A) -- A Description of the Link --> B{B}
- C{C} -- A Description of the Link --> A(A)
-
-style A fill:#0072bc,color:#ffffff
-style B fill:#80c342,color:#ffffff
-style C fill:#f05343,color:#ffffff
-
-```
-
-## Roadmap
-
-- TBA
-
-
-
-See the [open issues](https://github.com/IQTLabs/edgetech-template/issues) for a full list of proposed features (and known issues).
-
-## Contributing
-
-1. Fork the Project
-2. Create your Feature Branch (`git checkout -b dev`)
-3. Commit your Changes (`git commit -m 'adding some feature'`)
-4. Run (and make sure they pass):
-```
-black --diff --check *.py
-
-pylint --disable=all --enable=unused-import *.py
-
-mypy --allow-untyped-decorators --ignore-missing-imports --no-warn-return-any --strict --allow-subclassing-any *.py
-```
-If you do not have them installed, you can install them with `pip install "black<23" pylint==v3.0.0a3 mypy==v0.991`.
-
-5. Push to the Branch (`git push origin dev`)
-6. Open a Pull Request
-
-See `CONTRIBUTING.md` for more information.
-
-## License
-
-Distributed under the [Apache 2.0](https://github.com/IQTLabs/edgetech-audio-recorder/blob/main/LICENSE). See `LICENSE.txt` for more information.
-
-## Contact IQTLabs
-
- - Twitter: [@iqtlabs](https://twitter.com/iqtlabs)
- - Email: info@iqtlabs.org
-
-See our other projects: [https://github.com/IQTLabs/](https://github.com/IQTLabs/)
-
-(back to top)
\ No newline at end of file
diff --git a/docker-compose.yaml b/docker-compose.yaml
index 46734b3..c7a5c59 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -1,26 +1,50 @@
version: "3"
+
+networks:
+ skyscan:
+ driver: bridge
+ driver_opts:
+ com.docker.network.driver.mtu: 900
+
services:
+
mqtt:
- image: iqtlabs/edgetech-mqtt:latest
+ networks:
+ - skyscan
+ image: iqtlabs/edgetech-mqtt-dev:latest
ports:
- "1883:1883"
- "9001:9001"
- build:
- context: ./mqtt
- dockerfile: ./Dockerfile
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "10M"
max-file: "10"
- template:
- image: iqtlabs/edgetech-template:latest
- build:
- context: ./template
- dockerfile: ./Dockerfile
+
+ controller:
+ networks:
+ - skyscan
+ image: iqtlabs/edgetech-axis-ptz-controller:latest
+ volumes:
+ - ./data/to_sort:/data/to_sort
restart: unless-stopped
- depends_on:
+ depends_on:
+ - mqtt
+ env_file:
+ - .env
+ - axis-ptz-controller.env
+
+ occlusion-mapper:
+ networks:
+ - skyscan
+ image: iqtlabs/edgetech-occlusion-mapper:latest
+ volumes:
+ - ./data/mapping:/data/mapping
+ ports:
+ - "5000:5000"
+ restart: unless-stopped
+ depends_on:
- mqtt
logging:
driver: "json-file"
@@ -28,4 +52,4 @@ services:
max-size: "10M"
max-file: "10"
env_file:
- - template.env
+ - .env
\ No newline at end of file
diff --git a/occlusion-mapper.env b/occlusion-mapper.env
index 0bd95d6..188b068 100644
--- a/occlusion-mapper.env
+++ b/occlusion-mapper.env
@@ -1,2 +1,25 @@
+PROJECT_NAME=
+HOSTNAME=
+MQTT_IP=mqtt
+
+TRIPOD_LATITUDE=
+TRIPOD_LONGITUDE=
+TRIPOD_ALTITUDE=
+
+YAW=0.0
+PITCH=0.0
+ROLL=0.0
+
+CAMERA_IP=
+#CAMERA_USER=
+#CAMERA_PASSWORD=
+
+MAPPING_FILEPATH=/data/mapping/occlusion.json
+
+#axis-ptz topics
+CONFIG_TOPIC=/${PROJECT_NAME}/${HOSTNAME}/Config/skyscan-c2/JSON
+ORIENTATION_TOPIC=/${PROJECT_NAME}/${HOSTNAME}/Orientation/edgetech-auto-orienter/JSON
+IMAGE_FILENAME_TOPIC=/${PROJECT_NAME}/${HOSTNAME}/Image_Filename/edgetech-axis-ptz-controller/JSON
+IMAGE_CAPTURE_TOPIC=/${PROJECT_NAME}/${HOSTNAME}/Image_Capture/edgetech-axis-ptz-controller/JSON
MANUAL_CONTROL_TOPIC=/${PROJECT_NAME}/${HOSTNAME}/Manual_Control/edgetech-axis-ptz-controller/JSON
-MAPPING_FILEPATH=/data/mapping/occlusion.json
\ No newline at end of file
+LOGGER_TOPIC=/${PROJECT_NAME}/${HOSTNAME}/Logger/edgetech-axis-ptz-controller/JSON
\ No newline at end of file