Skip to content

Manage points of interest (Operator workflow)

This page is for operators who manage Points of Interest (POIs) – the locations being monitored for occupancy.

Your goals

  • Maintain accurate POI configurations.
  • Ensure sensors are correctly associated with locations.
  • Keep capacity and metadata up-to-date.

1) Understanding POI structure

Each Point of Interest has: - Identity: Name, description, type - Geography: Boundary polygon defining the monitored area - Capacity: Maximum occupancy (if applicable) - Sensors: Associated sensor equipment and gate mappings

POI types

Type Description Example
Parking Vehicle parking areas Beach parking lot, city center garage
Viewpoint Scenic observation points Mountain lookout, coastal viewpoint
Trail Hiking or walking paths Nature trail, coastal walk
Beach Beach areas Main beach, cove beach
Park Public parks and gardens City park, botanical garden
Plaza Public squares and open areas Town square, market plaza

2) Creating a POI

  1. Navigate to Occupancy → Points of Interest in Django Admin.
  2. Click Add Point of Interest.
  3. Fill in basic information:
  4. Name: Clear, recognizable name
  5. Description: Details for operators and public display
  6. POI Type: Select appropriate category
  7. Municipality: Which municipality manages this location

  8. Define the boundary:

  9. Use the map interface to draw the monitored area polygon
  10. Ensure the boundary covers the actual monitored space

  11. Set capacity (optional):

  12. Capacity: Maximum number of people/vehicles
  13. Leave blank if capacity isn't relevant or measurable

  14. For trails, set duration:

  15. Max Trail Duration (minutes): Expected time to complete
  16. Used for occupancy estimation calculations

  17. Save the POI.

3) Associating sensors

After creating a POI, link sensors:

Adding sensor associations

  1. Navigate to Occupancy → POI Sensors.
  2. Click Add POI Sensor Association.
  3. Select:
  4. POI: The location
  5. Sensor: The sensor device
  6. Is Active: Enable/disable the association

Configuring gate mappings

For AI cameras with multiple detection zones:

  1. Navigate to Occupancy → Gate Mappings.
  2. Create mappings for each gate:
  3. POI Sensor: Which sensor-POI association
  4. Gate ID: Reference to gate in sensor config
  5. Gate Function: Entry, Exit, Bidirectional, Presence, or Flow
  6. Tracked Object Types: What to count (person, car, bus, etc.)
  7. Geometry: Optional location/zone for the gate

Gate function guide

Function Use case Occupancy calculation
Entry Count entries only Adds to occupancy
Exit Count exits only Subtracts from occupancy
Entry/Exit Bidirectional gate Adds/subtracts by direction
Presence Real-time in-frame count Direct count (no calculation)
Flow Traffic monitoring Rate calculation only

4) Updating POI information

Keep POIs accurate:

Regular updates needed for:

  • Capacity changes: Seasonal variations, construction
  • Boundary adjustments: Expansion or restriction of monitored area
  • Name/description: Public-facing information

Deactivating a POI

If a location is temporarily closed: 1. Set is_active = False 2. The POI won't appear in public dashboards 3. Reactivate when location reopens

5) Monitoring POI health

Checking data flow

For each POI, verify: - Sensors are reporting regularly - Occupancy calculations make sense - No stuck or negative values

Troubleshooting occupancy issues

Problem Likely cause Solution
Always zero No sensors linked or all offline Check sensor associations
Negative numbers More exits than entries counted Verify gate configurations
Too high Entries not matching exits Check for missed exit counting
Not updating Sensors offline or cache issue Check sensor status

6) External ID mapping

For integrations with external systems:

  • External ID: Unique identifier for syncing with CSV imports or APIs
  • Use consistent identifiers across systems
  • Helps with bulk updates and data reconciliation

7) Best practices

Naming conventions

  • Use clear, location-specific names
  • Include distinguishing details (e.g., "Beach Parking Lot North")
  • Be consistent across your municipality

Capacity setting

  • Base on official capacity or safe limits
  • Consider seasonal variations
  • Update promptly when conditions change

Sensor coverage

  • Ensure all entry/exit points are covered
  • Verify no blind spots in detection
  • Test configurations before going live

Behind the scenes (grounded in code)

  • POI model: apps/occupancy/models.pyPointOfInterest
  • Sensor association: apps/occupancy/models.pyPOISensor
  • Gate mapping: apps/occupancy/models.pyGateMapping
  • Occupancy calculation: PointOfInterest.current_occupancy property
  • Gate function detection: PointOfInterest.has_entry_exit_gates property
  • Geographic boundary: PostGIS PolygonField (SRID 4326)