尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Radio, TV and 4G/5G coverage map of Poland computed in the browser on terrain, buildings and trees (AGPL-3.0)
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Live: https://radio-wid.pl · licence: AGPL-3.0 · code comments and UI in Polish
RadioWid is a map of radio coverage for all of Poland. It covers FM, DAB+, digital TV (DVB-T) and 4G/5G cell sites. The calculation runs live in the browser, on terrain plus the actual buildings and trees. Tap a spot and RadioWid shows which transmitters reach it, along which path, and where to point an antenna. Every result is a SIMULATION, not a measurement.
The page is static: no backend, no cookies, and the user's position never leaves the phone. All heavy lifting happens in two places:
| Part | What it does |
|---|---|
silnik/ | Propagation engine (plain ES modules, browser and Node). Knife-edge diffraction over a terrain + surface profile, foliage loss (ITU-R P.833 §2.1 with saturation; Weissberger kept for the Python reference checks), optional wall scattering (ITU-R P.1411 §4.2.1), broadcast field strength from ITU-R P.1546 curves. |
telefon/poziomy.html | The page served at radio-wid.pl. Zoom levels by grid size: 4 m (buildings and trees), 16 m, 100 m (terrain only), 1 km (country). |
przygotuj/ | Data pipeline (Python + numpy, no GDAL). Open data → 20 × 20 km packs on a national grid (EPSG:2180) → .pak files. |
przygotuj/kolejka_paczek.py | Night queue on a compute host: download sheets → buildings → pack → delete raw tiles. One pack takes about 18 min, mostly downloading. |
przygotuj/paczki-wyslij.sh | Runs on the compute host every 20 min: builds zoom levels and building outlines for new packs and uploads them straight to the web server. Its SSH key there is write-only and limited to the packs directory (rrsync -wo -no-del). |
przygotuj/paczki-na-strone.sh | Pulls finished packs to a local copy for testing the site locally. Hosts are set in przygotuj/ustawienia.sh. |
telefon/zloz.sh, telefon/wgraj.sh | Assemble the static site into _telefon/ and upload it. The upload never touches dane/paczki/, which the compute host owns. |
weryfikacja/ | Bit-exact checks of the JS engine against the Python reference models. Those models are not in this repo, so these checks only run on the author's machine. |
docs/ | Design notes (Polish): pack layout, sizes, zoom levels, privacy. |
przygotuj/)| Data | Source | Licence |
|---|---|---|
| Terrain (DTM) 1 m and 100 m, surface model (DSM) 1 m | GUGiK, opendata.geoportal.gov.pl | Polish open data, free reuse |
| Buildings LoD1 (3D models, 2024) | GUGiK | CC BY 4.0 — attribution required |
| Roads, rivers, places (BDOT10k), borders and addresses (PRG) | GUGiK | Polish open data |
| Terrain outside Poland | Copernicus DEM GLO-30 | Copernicus licence (attribution text shown on the page) |
| Transmitters (FM, DAB+, DVB-T) and cell sites | UKE (Polish telecom regulator) public registries | public registry |
| Broadcast curves | ITU-R P.1546-6, tables from the ITU-R SG3 reference implementation | see ITU terms |
The engine (silnik/) and the page do not depend on Poland. Only the inputs do. To port it you need:
przygotuj/puwg92.py, przygotuj/uklad.py). Pick your national metric CRS and pack size.arkusze.py, paczka.py). Without a surface model you can use LoD1 building heights alone. Trees are then missing.budynki_paczki.py reads CityGML LoD1).uke.py, rtv_kraj.py, stacje_kraj.py).mapa_kraj.py reads BDOT10k/PRG). Any vector source works. Note that OSM is ODbL.Scripts still contain the author's paths (~/dev/showreel-2/dane, environment variables in some of them). Treat them as a worked example, not a turnkey tool. Issues and pull requests that make the pipeline country-agnostic are welcome.
telefon/zloz.sh # needs the data in dane/ (see przygotuj/)
python3 -m http.server 8794 --directory _telefon
The site sets no cookies and the web server does not log map requests. A position from the GPS or the address search is used only inside the browser. Visits are counted with a self-hosted, cookieless Umami instance, configured to drop everything after # (the map position) and the query string.
Direction, design decisions and testing are the author's. Most of the code was written by Claude (Claude Code, Anthropic) under his direction. Results are checked against the author's own measurements, but calibration rests on a small number of readings, so treat the output as a simulation.
Copyright © 2026 Maciej Poczek. Licensed under the GNU Affero General Public License v3.0 — see LICENSE. If you run a modified version as a public service, you must publish your changes under the same licence. Data keep their own licences (table above).
PL: Mapa zasięgu radia, telewizji i sieci komórkowych dla całej Polski, liczona w przeglądarce na terenie, budynkach i drzewach. Większość kodu napisał Claude (Claude Code) pod kierunkiem autora. Kod na licencji AGPL-3.0. Dane (GUGiK, UKE, Copernicus) nie są w repozytorium. Skrypty z przygotuj/ pobierają je i przetwarzają.