YERKON A terrestrial positioning backup layer Run the simulation

The simulation

The simulation is one part of this project rather than the whole of it. It had one job: to fill the three YERKON rows of the comparison table with a model whose every number can be traced, instead of with an estimate. It is not a field measurement. The placements are there to show cost feasibility; with more units, or units elsewhere, the accuracy wanted can be had where it is wanted.

The urban row with its run finished: the real terrain at Kızılay, the broadcast units on lighting columns, and the coverage painted onto the ground. The colours show how many units can be heard at that point; working out a position needs at least four. The panel on the right is that tab's own run, pooled over eight draws of the shadows.
The urban row with its run finished: the real terrain at Kızılay, the broadcast units on lighting columns, and the coverage painted onto the ground. The colours show how many units can be heard at that point; working out a position needs at least four. The panel on the right is that tab's own run, pooled over eight draws of the shadows.

The ground is real

One calculation decides the range

The messages and the position

Each row's error, median to ninety fifthEach row's error, median to ninety fifth0246810mŞehir içi9,192,294,00Kırsal8,152,164,96Tünel2,430,583,31
Each row's error, median to ninety fifthEach row's error, median to ninety fifth02,557,510mŞehir içi9,192,294,00Kırsal8,152,164,96Tünel2,430,583,31
  • Median horizontal error (HPE P50)
  • Horizontal error, worst 5 % excluded (HPE P95)
  • How the errors spread, median to P95
  • Vertical error, worst 5 % excluded (VPE P95)
Units strung along a roadside are all at much the same height, so there is no geometry to measure height from ranges; the height from the map carries the vertical.

Three errors that averaging will not remove

What is left out

Places that are already high

In the urban and rural rows the anchors do not stand on a grid but where a placement search put them; the simulator's Find the best layout section and its Quick start box run the same search for another place picked on the map. The candidates are existing lighting columns and signs, poles along the road (lighting columns in town, electricity distribution poles in open country) and 25 m masts to be put up on hilltops. Roofs are rented from their owners, so they are not offered. Every candidate is tried with the link budget, and the choice is a cover search by lifecycle cost. A point counts as covered once four units reach it and they are spread over at least three of the four quarters around it. Units all strung along one street, on one side, cannot fix a position along that street.

The search finds the places and gives its own quick estimate; the simulation measures how accurate that placement really is. Apply the proposed layout and press Run the simulation to compare it with the layout it replaces on the same journey.

In the browser, and on your own machine

The Run the simulation button opens the simulator in this browser. No server computes anything: Python, numpy and this project's own package come down to the page and everything runs on this computer. The first load fetches about 20 MB and can take a minute; after that the browser keeps it. In a browser one processor does the work, so a run is slower than in a local install; Quick trial shortens it.

Republishing the table, fetching another city's ground, or running all three rows at full resolution needs a local install. Four commands:

The quick trial

The Quick trial button in the simulator and --fast on the command line coarsen the same two figures: the shadows are drawn once instead of pooled over eight, and the ground profile is read at a fixed 64 samples instead of every 10 m. A run drops from fifteen minutes to about one.

The coarse ground reads diffraction loss low, which mostly makes a fast answer flatter the deployment. The single shadow draw can err either way: on the same placement one row can come out better fast and another worse. A fast run is for trying things; the table on the Results page comes from the slow, full run only.

git clone https://github.com/ysoktar/yerkon
cd yerkon
pip install -e ".[dev]"
yerkon view