tr-gurultu 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tr_gurultu-0.1.0/CHANGELOG.md +22 -0
- tr_gurultu-0.1.0/CITATION.cff +20 -0
- tr_gurultu-0.1.0/LICENSE +21 -0
- tr_gurultu-0.1.0/MANIFEST.in +9 -0
- tr_gurultu-0.1.0/PKG-INFO +240 -0
- tr_gurultu-0.1.0/README.md +204 -0
- tr_gurultu-0.1.0/examples/quickstart.py +51 -0
- tr_gurultu-0.1.0/pyproject.toml +110 -0
- tr_gurultu-0.1.0/setup.cfg +4 -0
- tr_gurultu-0.1.0/src/tr_gurultu/__init__.py +132 -0
- tr_gurultu-0.1.0/src/tr_gurultu/__main__.py +7 -0
- tr_gurultu-0.1.0/src/tr_gurultu/_version.py +1 -0
- tr_gurultu-0.1.0/src/tr_gurultu/cli.py +369 -0
- tr_gurultu-0.1.0/src/tr_gurultu/construction.py +279 -0
- tr_gurultu-0.1.0/src/tr_gurultu/decibel.py +152 -0
- tr_gurultu-0.1.0/src/tr_gurultu/errors.py +7 -0
- tr_gurultu-0.1.0/src/tr_gurultu/exceedance.py +199 -0
- tr_gurultu-0.1.0/src/tr_gurultu/exposure.py +224 -0
- tr_gurultu-0.1.0/src/tr_gurultu/indicators.py +320 -0
- tr_gurultu-0.1.0/src/tr_gurultu/io.py +149 -0
- tr_gurultu-0.1.0/src/tr_gurultu/limits.py +471 -0
- tr_gurultu-0.1.0/src/tr_gurultu/propagation.py +137 -0
- tr_gurultu-0.1.0/src/tr_gurultu/py.typed +0 -0
- tr_gurultu-0.1.0/src/tr_gurultu/report.py +148 -0
- tr_gurultu-0.1.0/src/tr_gurultu.egg-info/PKG-INFO +240 -0
- tr_gurultu-0.1.0/src/tr_gurultu.egg-info/SOURCES.txt +36 -0
- tr_gurultu-0.1.0/src/tr_gurultu.egg-info/dependency_links.txt +1 -0
- tr_gurultu-0.1.0/src/tr_gurultu.egg-info/entry_points.txt +2 -0
- tr_gurultu-0.1.0/src/tr_gurultu.egg-info/requires.txt +6 -0
- tr_gurultu-0.1.0/src/tr_gurultu.egg-info/top_level.txt +1 -0
- tr_gurultu-0.1.0/tests/test_cli.py +198 -0
- tr_gurultu-0.1.0/tests/test_construction.py +123 -0
- tr_gurultu-0.1.0/tests/test_decibel.py +77 -0
- tr_gurultu-0.1.0/tests/test_exceedance.py +86 -0
- tr_gurultu-0.1.0/tests/test_indicators.py +198 -0
- tr_gurultu-0.1.0/tests/test_io_doctests.py +88 -0
- tr_gurultu-0.1.0/tests/test_limits.py +187 -0
- tr_gurultu-0.1.0/tests/test_propagation_exposure.py +131 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.0] - 2026-11-09
|
|
8
|
+
### Added
|
|
9
|
+
- Noise indicators Lgündüz, Lakşam, Lgece and Lgag (Lden) from hourly or arbitrary
|
|
10
|
+
interval LAeq values, with period splitting at 07:00/19:00/23:00, multi-day pooling,
|
|
11
|
+
coverage reporting and configurable period schemes.
|
|
12
|
+
- Energetic decibel sum, (time-weighted) mean, subtraction and background correction.
|
|
13
|
+
- Limit tables of the Çevresel Gürültü Kontrol Yönetmeliği (RG 30.11.2022/32029)
|
|
14
|
+
Ek-2 Tablo 1, and of the repealed 2010 regulation (Ek-VII, area types) for reference;
|
|
15
|
+
user overrides via Python or JSON.
|
|
16
|
+
- Exceedance check with Turkish text and Markdown reports, LCmax 100 dB(C) check.
|
|
17
|
+
- Construction site and outdoor activity time windows (Ek-2 Tablo 2), 2010 construction limits.
|
|
18
|
+
- Screening distance attenuation for point and line sources (geometric divergence,
|
|
19
|
+
ISO 9613-2 Adiv, optional air absorption) and buffer distances.
|
|
20
|
+
- Population exposure bands (50-54 … ≥75 dB) with rounding to the nearest hundred,
|
|
21
|
+
END presets, totals above 55/65/75 dB.
|
|
22
|
+
- `tr-gurultu` command-line interface with Turkish help and output.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use this software, please cite it as below."
|
|
3
|
+
authors:
|
|
4
|
+
- family-names: "Eminoğlu"
|
|
5
|
+
given-names: "Yusuf"
|
|
6
|
+
email: "geospacephilo@gmail.com"
|
|
7
|
+
orcid: "https://orcid.org/0009-0005-6000-2934"
|
|
8
|
+
title: "tr-gurultu"
|
|
9
|
+
version: "0.1.0"
|
|
10
|
+
date-released: "2026-11-09"
|
|
11
|
+
license: "MIT"
|
|
12
|
+
repository-code: "https://gitlab.com/geophilo1/tr_gurultu_sdk"
|
|
13
|
+
url: "https://pypi.org/project/tr-gurultu/"
|
|
14
|
+
abstract: "Turkish environmental noise regulation helpers: Lgündüz/Lakşam/Lgece/Lgag (Lden) indicators from hourly or interval Leq data, limit values and exceedance reports under the Çevresel Gürültü Kontrol Yönetmeliği (2022), construction-site rules, decibel arithmetic, screening distance attenuation and noise-map exposure bands."
|
|
15
|
+
keywords:
|
|
16
|
+
- environmental noise
|
|
17
|
+
- Lden
|
|
18
|
+
- noise limits
|
|
19
|
+
- noise mapping
|
|
20
|
+
- Turkey
|
tr_gurultu-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Yusuf Eminoğlu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tr-gurultu
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Turkish environmental noise regulation helpers: Lgündüz/Lakşam/Lgece/Lgag (Lden) indicators, limit values and exceedance reports, construction-site rules, decibel arithmetic, screening distance attenuation and noise-map exposure bands (Çevresel Gürültü Kontrol Yönetmeliği 2022).
|
|
5
|
+
Author-email: Yusuf Eminoğlu <geospacephilo@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://gitlab.com/geophilo1/tr_gurultu_sdk
|
|
8
|
+
Project-URL: Repository, https://gitlab.com/geophilo1/tr_gurultu_sdk
|
|
9
|
+
Project-URL: Issues, https://gitlab.com/geophilo1/tr_gurultu_sdk/-/work_items
|
|
10
|
+
Project-URL: Changelog, https://gitlab.com/geophilo1/tr_gurultu_sdk/-/blob/main/CHANGELOG.md
|
|
11
|
+
Keywords: noise,environmental-noise,gurultu,lden,lgag,noise-indicators,noise-limits,noise-map,acoustics,decibel,turkey,turkiye,regulation,urban-planning
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Classifier: Environment :: Console
|
|
21
|
+
Classifier: Natural Language :: Turkish
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
24
|
+
Classifier: Intended Audience :: Science/Research
|
|
25
|
+
Classifier: Intended Audience :: Developers
|
|
26
|
+
Classifier: Typing :: Typed
|
|
27
|
+
Requires-Python: >=3.9
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
32
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
33
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
34
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
35
|
+
Dynamic: license-file
|
|
36
|
+
|
|
37
|
+
# tr-gurultu
|
|
38
|
+
|
|
39
|
+
[](https://pypi.org/project/tr-gurultu/)
|
|
40
|
+
[](https://pypi.org/project/tr-gurultu/)
|
|
41
|
+
[](https://gitlab.com/geophilo1/tr_gurultu_sdk/-/pipelines)
|
|
42
|
+
[](LICENSE)
|
|
43
|
+
|
|
44
|
+
**English summary.** `tr-gurultu` is a dependency-free Python library and CLI for
|
|
45
|
+
environmental noise assessment under the Turkish *Çevresel Gürültü Kontrol Yönetmeliği*
|
|
46
|
+
(Environmental Noise Control Regulation, Official Gazette 30.11.2022 No. 32029). It
|
|
47
|
+
computes the noise indicators Lgündüz, Lakşam, Lgece and Lgag (Lden) from hourly or
|
|
48
|
+
interval Leq data, checks levels against the regulation's limit values (and the repealed
|
|
49
|
+
2010 area-type tables for reference), screens construction-site hours, does energetic
|
|
50
|
+
decibel arithmetic and simple distance attenuation, and builds the population exposure
|
|
51
|
+
band tables used in strategic noise maps. Reports and CLI output are in Turkish.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
**Türkçe.** `tr-gurultu`, *Çevresel Gürültü Kontrol Yönetmeliği* (Resmî Gazete
|
|
56
|
+
30.11.2022, sayı 32029) kapsamında çevresel gürültü değerlendirmesi için bağımlılıksız
|
|
57
|
+
bir Python kütüphanesi ve komut satırı aracıdır:
|
|
58
|
+
|
|
59
|
+
- **Gürültü göstergeleri:** saatlik veya istenen sürede (ör. 5 dakikalık) Leq
|
|
60
|
+
verisinden Lgündüz, Lakşam, Lgece ve Lgag (Lden). Dönem sınırlarını (07:00, 19:00,
|
|
61
|
+
23:00) aşan aralıklar bölünür, birden çok günün verisi enerjetik olarak birleştirilir,
|
|
62
|
+
her dönemin kapsanan süresi raporlanır.
|
|
63
|
+
- **Desibel aritmetiği:** enerjetik toplama, (zaman ağırlıklı) ortalama, çıkarma ve
|
|
64
|
+
arka plan gürültüsü düzeltmesi.
|
|
65
|
+
- **Sınır değerler:** 2022 yönetmeliğinin Ek-2 Tablo 1'i (endüstri, ulaşım, müzik yayını
|
|
66
|
+
yapan işyerleri, işyerleri, LCmax) ve başvuru için yürürlükten kaldırılmış 2010
|
|
67
|
+
yönetmeliğinin alan türüne göre tabloları (kara yolu, hava alanı, endüstri, şantiye,
|
|
68
|
+
raylı sistem, eğlence yerleri). Tüm tablolar kullanıcı tarafından (Python veya JSON
|
|
69
|
+
ile) değiştirilebilir; örneğin İl Mahalli Çevre Kurulu kararları.
|
|
70
|
+
- **Aşım kontrolü ve rapor:** dönem bazında ölçülen/sınır/fark tablosu, Türkçe metin ve
|
|
71
|
+
Markdown rapor, JSON çıktı.
|
|
72
|
+
- **Şantiye:** Ek-2 Tablo 2 izinli saatleri (şantiye 10:00-22:00, açık hava etkinlikleri
|
|
73
|
+
10:00-01:00, havai fişek 20:00-22:00, patlatma 10:00-20:00), LCmax 100 dB(C) ve 2010
|
|
74
|
+
Tablo-5 sınırları.
|
|
75
|
+
- **Mesafe azalımı:** nokta ve çizgi kaynak için geometrik yayılma, ses gücünden ses
|
|
76
|
+
basıncı düzeyi (ISO 9613-2 Adiv), tampon mesafe hesabı (ön değerlendirme).
|
|
77
|
+
- **Maruziyet tablosu:** gürültü haritası alıcı noktalarından 50-54, 55-59 … ≥75 dB
|
|
78
|
+
aralıklarına düşen nüfus/konut sayıları, en yakın yüzlüğe yuvarlama ve 55/65/75 dB
|
|
79
|
+
üzeri toplamlar.
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
pip install tr-gurultu
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Python 3.9 veya üstü gerekir; çalışma zamanı bağımlılığı yoktur.
|
|
86
|
+
|
|
87
|
+
## Hızlı başlangıç (Python)
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
from tr_gurultu import (
|
|
91
|
+
indicators_from_hourly, get_limit, check_compliance,
|
|
92
|
+
db_sum, level_at_distance, exposure_table, check_construction,
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
# 00:00'dan 23:00'e 24 saatlik LAeq,1h değerleri
|
|
96
|
+
hourly = [52.1, 50.4, 49.8, 49.5, 50.2, 53.7, 58.9, 63.5,
|
|
97
|
+
66.2, 65.8, 65.1, 64.9, 65.3, 65.0, 64.8, 65.2,
|
|
98
|
+
66.0, 66.4, 65.7, 63.9, 62.5, 61.8, 60.2, 57.0]
|
|
99
|
+
ind = indicators_from_hourly(hourly)
|
|
100
|
+
print(round(ind.lgunduz, 1), round(ind.laksam, 1), round(ind.lgece, 1), round(ind.lgag, 1))
|
|
101
|
+
# 65.4 62.3 54.1 65.4
|
|
102
|
+
|
|
103
|
+
res = check_compliance(ind, get_limit("ulasim"), location="Örnek cephe")
|
|
104
|
+
print(res.to_text()) # Türkçe aşım raporu
|
|
105
|
+
res.exceeded # True (gündüz +0.4, akşam +2.3 dB)
|
|
106
|
+
|
|
107
|
+
db_sum([60, 60]) # 63.01 dB
|
|
108
|
+
level_at_distance(82, 10, 120) # nokta kaynak: 60.4 dB
|
|
109
|
+
check_construction("08:00", "23:00").hours_ok # False: 180 dk izin dışı
|
|
110
|
+
exposure_table([53.2, 57.9, 76.5], [120, 340, 14]).to_text()
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Aralık verisi (ör. 5 dakikalık ölçümler, birden çok gün) için:
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
from tr_gurultu import indicators_from_intervals
|
|
117
|
+
ind = indicators_from_intervals([
|
|
118
|
+
("2025-06-01T18:30:00", 60, 70.0), # (başlangıç, süre_dk, LAeq) — 30 dk gündüz + 30 dk akşam
|
|
119
|
+
("23:00", 480, 50.0),
|
|
120
|
+
("07:00", 690, 70.0),
|
|
121
|
+
])
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Hızlı başlangıç (komut satırı)
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
tr-gurultu gosterge olcum.csv # 'saat;leq' veya 'baslangic;sure_dk;leq'
|
|
128
|
+
tr-gurultu lgag 65 62 57 # Lgag = 66.1 dB(A)
|
|
129
|
+
tr-gurultu topla 68 71 # enerjetik toplam
|
|
130
|
+
tr-gurultu ortalama 70 50 --agirlik 45,15 # zaman ağırlıklı ortalama
|
|
131
|
+
tr-gurultu arkaplan 60 55 # arka plan düzeltmesi
|
|
132
|
+
tr-gurultu sinir # 2022 sınır değer tablosu
|
|
133
|
+
tr-gurultu sinir --surum 2010 # 2010 tabloları (kaldırıldı, başvuru)
|
|
134
|
+
tr-gurultu kontrol --kaynak ulasim --gunduz 66 --aksam 58 --gece 56 --lcmax 98
|
|
135
|
+
tr-gurultu kontrol --kaynak isyeri --gunduz 54 --arka-plan 50
|
|
136
|
+
tr-gurultu kontrol --kaynak karayolu --surum 2010 --alan konut --tur mevcut --dosya olcum.csv
|
|
137
|
+
tr-gurultu mesafe --duzey 82 --ref 10 --mesafe 120 --hedef 55
|
|
138
|
+
tr-gurultu santiye --baslangic 08:00 --bitis 23:00 --lcmax 97
|
|
139
|
+
tr-gurultu maruziyet alicilar.csv --nufus-sutun nufus --csv
|
|
140
|
+
tr-gurultu kategori 62 # 2010 madde 27 planlama kategorisi
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Her komut `--json` ile makine tarafından okunabilir çıktı verir. `kontrol` ve `santiye`
|
|
144
|
+
komutları aşım olduğunda çıkış kodu **1**, hata durumunda **2** döndürür; betiklerde ve
|
|
145
|
+
sürekli entegrasyonda kullanılabilir. CSV dosyaları UTF-8 (BOM'lu olabilir) veya
|
|
146
|
+
Windows-1254, `;`/`,`/sekme ayırıcılı ve ondalık virgüllü olabilir.
|
|
147
|
+
|
|
148
|
+
## API özeti
|
|
149
|
+
|
|
150
|
+
| İşlev / sınıf | Açıklama |
|
|
151
|
+
|---|---|
|
|
152
|
+
| `indicators_from_hourly(values)` | 24×n saatlik değer veya `{saat: leq}` → `NoiseIndicators` |
|
|
153
|
+
| `indicators_from_intervals(items)` | `(başlangıç, süre_dk, leq)` aralıkları → `NoiseIndicators` |
|
|
154
|
+
| `lgag(ld, le, ln)` / `lden` | Ek-3 madde 2.1 formülü |
|
|
155
|
+
| `PeriodScheme(...)` | dönem başlangıçları ve cezalar (varsayılan 07/19/23, +5/+10 dB) |
|
|
156
|
+
| `db_sum`, `db_mean`, `db_subtract`, `background_correction` | desibel aritmetiği |
|
|
157
|
+
| `get_limit(kaynak, alan, edition=, variant=)` | `LimitValue` (gündüz/akşam/gece) |
|
|
158
|
+
| `LIMITS_2022`, `LIMITS_2010`, `load_limit_table(json)` | tablolar ve kullanıcı değişiklikleri |
|
|
159
|
+
| `check_compliance(levels, limit, background=, lcmax=)` | `ComplianceResult` (`to_text`, `to_markdown`, `to_dict`) |
|
|
160
|
+
| `check_construction(start, end, ...)`, `is_permitted` | şantiye ve açık hava faaliyet saatleri |
|
|
161
|
+
| `level_at_distance`, `distance_for_level`, `lw_to_lp`, `lw_line_to_lp` | mesafe azalımı |
|
|
162
|
+
| `exposure_table(levels, weights, bands=)`, `exposure_above` | maruziyet tabloları |
|
|
163
|
+
| `planning_category_2010(lgunduz)` | 2010 madde 27 A-D kategorisi |
|
|
164
|
+
|
|
165
|
+
Sınır değerlerin değiştirilmesi:
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
from tr_gurultu import LIMITS_2022, get_limit
|
|
169
|
+
karar = LIMITS_2022.with_overrides({"ulasim": {"gece": 50},
|
|
170
|
+
"sessiz_alan": {"gunduz": 50, "aksam": 45, "gece": 40}})
|
|
171
|
+
get_limit("sessiz_alan", table=karar)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{"endustri": {"gece": 50}, "sessiz_alan": {"gunduz": 50, "aksam": 45, "gece": 40}}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
`tr-gurultu kontrol ... --sinir-dosyasi karar.json`
|
|
179
|
+
|
|
180
|
+
## Yöntem ve kaynaklar
|
|
181
|
+
|
|
182
|
+
| Konu | Kaynak |
|
|
183
|
+
|---|---|
|
|
184
|
+
| Dönemler (gündüz 07-19, akşam 19-23, gece 23-07) | Çevresel Gürültü Kontrol Yönetmeliği (RG 30.11.2022/32029) Ek-1 (c), (ğ), (h) |
|
|
185
|
+
| Lgag formülü, 12/4/8 saat, +5/+10 dB | aynı yönetmelik Ek-3 madde 2.1; AB 2002/49/EC Ek I (Lden) |
|
|
186
|
+
| Sınır değerler 2022 (65/60/55; müzik 60/55/50, 63-250 Hz; işyeri arka plan +5/+3, çoklu +7/+5; LCmax 100 dB(C)) | Ek-2 Tablo 1 |
|
|
187
|
+
| İzinli saatler (şantiye 10-22, açık hava etkinlik 10-01, havai fişek 20-22, patlatma 10-20) | Ek-2 Tablo 2; kamu yararı projeleri Ek-2 madde 10; sınav günleri madde 11 |
|
|
188
|
+
| Maruziyet aralıkları 50-54 … >75 dB, yüzlüğe yuvarlama, >55/65/75 dB toplamları | Ek-3 madde 1.8.1.4, 1.8.1.5, 1.8.2.7 |
|
|
189
|
+
| 2010 tabloları (kara yolu, hava alanı, endüstri, şantiye), raylı/helikopter/su yolu 65/60/55, işyeri/eğlence arka plan + 5 dBA, madde 27 kategorileri | Çevresel Gürültünün Değerlendirilmesi ve Yönetimi Yönetmeliği (RG 04.06.2010/27601) Ek-VII ve madde 19-24, 27 (**30.11.2022'de yürürlükten kaldırıldı**) |
|
|
190
|
+
| Yüzlüğe yuvarlama kuralı (5150-5249 → 5200) | 2010 yönetmeliği Ek-VI 1.5 örneği |
|
|
191
|
+
| Nokta kaynak Adiv = 20 lg d + 11 dB | ISO 9613-2:1996 eşitlik (7) |
|
|
192
|
+
| Çizgi kaynak 10 lg(r2/r1), Lp = Lw' − 10 lg(2πd) | silindirik yayılma (temel akustik) |
|
|
193
|
+
| Arka plan düzeltmesi (≥10 dB düzeltme yok, 3-10 dB enerjetik çıkarma, <3 dB güvenilmez) | TS ISO 1996-2 uygulaması |
|
|
194
|
+
|
|
195
|
+
2022 metni ve ek PDF'i Resmî Gazete'den, 2010 ekleri 04.06.2010 tarihli Resmî Gazete'nin
|
|
196
|
+
ek dosyasından doğrulanmıştır. Güncel metin: <https://www.mevzuat.gov.tr> (MevzuatNo 39864).
|
|
197
|
+
|
|
198
|
+
**Not:** Yönetmeliğin 2022 sürümünün adı *Çevresel Gürültü Kontrol Yönetmeliği*dir;
|
|
199
|
+
2010 tarihli *Çevresel Gürültünün Değerlendirilmesi ve Yönetimi Yönetmeliği*ni
|
|
200
|
+
yürürlükten kaldırmıştır (madde 21).
|
|
201
|
+
|
|
202
|
+
## Sınırlamalar
|
|
203
|
+
|
|
204
|
+
- Bu paket ön değerlendirme ve eğitim içindir; resmî akustik rapor, stratejik gürültü
|
|
205
|
+
haritası veya denetim ölçümünün yerini tutmaz. Ölçümler TS ISO 1996-1/-2'ye göre,
|
|
206
|
+
yetkin kişilerce yapılmalıdır.
|
|
207
|
+
- 2022 Tablo 1 sınırları **LAeq,5dk** (müzik yayınında 63-250 Hz bandında LAeq) olarak
|
|
208
|
+
tanımlıdır. `check_compliance` kendisine verilen düzeyi doğrudan karşılaştırır; uzun
|
|
209
|
+
dönem Lgündüz/Lakşam/Lgece ile karşılaştırmak bir yorumdur. 5 dakikalık değerleri tek
|
|
210
|
+
tek kontrol etmek için her aralığı ayrı ayrı verin.
|
|
211
|
+
- 2022 tablosunda alan türüne göre ayrım ve şantiyeler için düzey sınırı yoktur. Şantiye
|
|
212
|
+
düzeyi için il kurullarının uyguladığı değer `level_limit` ile verilebilir.
|
|
213
|
+
- 2010 tabloları yalnızca başvuru içindir, ilk yayımlanmış hâliyle aktarılmıştır;
|
|
214
|
+
2011, 2015 ve 2022 değişiklikleri işlenmemiştir. 2010'daki "7-10 dBA" aralıkları için alt
|
|
215
|
+
sınır (7 dBA) kullanılır.
|
|
216
|
+
- Ek-2 madde 3'teki ton/darbe seviye ayarlamaları otomatik uygulanmaz.
|
|
217
|
+
- Mesafe azalımı yalnızca geometrik yayılma ve isteğe bağlı doğrusal hava yutmasıdır;
|
|
218
|
+
zemin etkisi, perdeleme, yansıma ve meteoroloji yoktur. Kaynak modellemesi (CNOSSOS-EU)
|
|
219
|
+
ve ISO 9613-2 yayılımı için aynı yazarın
|
|
220
|
+
[`roadnoise`](https://pypi.org/project/roadnoise/) paketine bakın; `tr-gurultu`
|
|
221
|
+
yönetmelik göstergeleri ve sınır değerlerine odaklanır.
|
|
222
|
+
- Arka plan düzeltmesi eşikleri (3 ve 10 dB) ISO 1996-2'nin yaygın uygulamasından
|
|
223
|
+
alınmıştır ve parametre olarak değiştirilebilir.
|
|
224
|
+
|
|
225
|
+
## Akademik atıf
|
|
226
|
+
|
|
227
|
+
```bibtex
|
|
228
|
+
@software{eminoglu_tr_gurultu,
|
|
229
|
+
author = {Eminoğlu, Yusuf},
|
|
230
|
+
title = {tr-gurultu},
|
|
231
|
+
year = {2026},
|
|
232
|
+
version = {0.1.0},
|
|
233
|
+
url = {https://gitlab.com/geophilo1/tr_gurultu_sdk}
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Lisans
|
|
238
|
+
|
|
239
|
+
MIT © 2026 Yusuf Eminoğlu. Ayrıntılar için [LICENSE](LICENSE). İletişim:
|
|
240
|
+
geospacephilo@gmail.com
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# tr-gurultu
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/tr-gurultu/)
|
|
4
|
+
[](https://pypi.org/project/tr-gurultu/)
|
|
5
|
+
[](https://gitlab.com/geophilo1/tr_gurultu_sdk/-/pipelines)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
|
|
8
|
+
**English summary.** `tr-gurultu` is a dependency-free Python library and CLI for
|
|
9
|
+
environmental noise assessment under the Turkish *Çevresel Gürültü Kontrol Yönetmeliği*
|
|
10
|
+
(Environmental Noise Control Regulation, Official Gazette 30.11.2022 No. 32029). It
|
|
11
|
+
computes the noise indicators Lgündüz, Lakşam, Lgece and Lgag (Lden) from hourly or
|
|
12
|
+
interval Leq data, checks levels against the regulation's limit values (and the repealed
|
|
13
|
+
2010 area-type tables for reference), screens construction-site hours, does energetic
|
|
14
|
+
decibel arithmetic and simple distance attenuation, and builds the population exposure
|
|
15
|
+
band tables used in strategic noise maps. Reports and CLI output are in Turkish.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
**Türkçe.** `tr-gurultu`, *Çevresel Gürültü Kontrol Yönetmeliği* (Resmî Gazete
|
|
20
|
+
30.11.2022, sayı 32029) kapsamında çevresel gürültü değerlendirmesi için bağımlılıksız
|
|
21
|
+
bir Python kütüphanesi ve komut satırı aracıdır:
|
|
22
|
+
|
|
23
|
+
- **Gürültü göstergeleri:** saatlik veya istenen sürede (ör. 5 dakikalık) Leq
|
|
24
|
+
verisinden Lgündüz, Lakşam, Lgece ve Lgag (Lden). Dönem sınırlarını (07:00, 19:00,
|
|
25
|
+
23:00) aşan aralıklar bölünür, birden çok günün verisi enerjetik olarak birleştirilir,
|
|
26
|
+
her dönemin kapsanan süresi raporlanır.
|
|
27
|
+
- **Desibel aritmetiği:** enerjetik toplama, (zaman ağırlıklı) ortalama, çıkarma ve
|
|
28
|
+
arka plan gürültüsü düzeltmesi.
|
|
29
|
+
- **Sınır değerler:** 2022 yönetmeliğinin Ek-2 Tablo 1'i (endüstri, ulaşım, müzik yayını
|
|
30
|
+
yapan işyerleri, işyerleri, LCmax) ve başvuru için yürürlükten kaldırılmış 2010
|
|
31
|
+
yönetmeliğinin alan türüne göre tabloları (kara yolu, hava alanı, endüstri, şantiye,
|
|
32
|
+
raylı sistem, eğlence yerleri). Tüm tablolar kullanıcı tarafından (Python veya JSON
|
|
33
|
+
ile) değiştirilebilir; örneğin İl Mahalli Çevre Kurulu kararları.
|
|
34
|
+
- **Aşım kontrolü ve rapor:** dönem bazında ölçülen/sınır/fark tablosu, Türkçe metin ve
|
|
35
|
+
Markdown rapor, JSON çıktı.
|
|
36
|
+
- **Şantiye:** Ek-2 Tablo 2 izinli saatleri (şantiye 10:00-22:00, açık hava etkinlikleri
|
|
37
|
+
10:00-01:00, havai fişek 20:00-22:00, patlatma 10:00-20:00), LCmax 100 dB(C) ve 2010
|
|
38
|
+
Tablo-5 sınırları.
|
|
39
|
+
- **Mesafe azalımı:** nokta ve çizgi kaynak için geometrik yayılma, ses gücünden ses
|
|
40
|
+
basıncı düzeyi (ISO 9613-2 Adiv), tampon mesafe hesabı (ön değerlendirme).
|
|
41
|
+
- **Maruziyet tablosu:** gürültü haritası alıcı noktalarından 50-54, 55-59 … ≥75 dB
|
|
42
|
+
aralıklarına düşen nüfus/konut sayıları, en yakın yüzlüğe yuvarlama ve 55/65/75 dB
|
|
43
|
+
üzeri toplamlar.
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pip install tr-gurultu
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Python 3.9 veya üstü gerekir; çalışma zamanı bağımlılığı yoktur.
|
|
50
|
+
|
|
51
|
+
## Hızlı başlangıç (Python)
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
from tr_gurultu import (
|
|
55
|
+
indicators_from_hourly, get_limit, check_compliance,
|
|
56
|
+
db_sum, level_at_distance, exposure_table, check_construction,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
# 00:00'dan 23:00'e 24 saatlik LAeq,1h değerleri
|
|
60
|
+
hourly = [52.1, 50.4, 49.8, 49.5, 50.2, 53.7, 58.9, 63.5,
|
|
61
|
+
66.2, 65.8, 65.1, 64.9, 65.3, 65.0, 64.8, 65.2,
|
|
62
|
+
66.0, 66.4, 65.7, 63.9, 62.5, 61.8, 60.2, 57.0]
|
|
63
|
+
ind = indicators_from_hourly(hourly)
|
|
64
|
+
print(round(ind.lgunduz, 1), round(ind.laksam, 1), round(ind.lgece, 1), round(ind.lgag, 1))
|
|
65
|
+
# 65.4 62.3 54.1 65.4
|
|
66
|
+
|
|
67
|
+
res = check_compliance(ind, get_limit("ulasim"), location="Örnek cephe")
|
|
68
|
+
print(res.to_text()) # Türkçe aşım raporu
|
|
69
|
+
res.exceeded # True (gündüz +0.4, akşam +2.3 dB)
|
|
70
|
+
|
|
71
|
+
db_sum([60, 60]) # 63.01 dB
|
|
72
|
+
level_at_distance(82, 10, 120) # nokta kaynak: 60.4 dB
|
|
73
|
+
check_construction("08:00", "23:00").hours_ok # False: 180 dk izin dışı
|
|
74
|
+
exposure_table([53.2, 57.9, 76.5], [120, 340, 14]).to_text()
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Aralık verisi (ör. 5 dakikalık ölçümler, birden çok gün) için:
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
from tr_gurultu import indicators_from_intervals
|
|
81
|
+
ind = indicators_from_intervals([
|
|
82
|
+
("2025-06-01T18:30:00", 60, 70.0), # (başlangıç, süre_dk, LAeq) — 30 dk gündüz + 30 dk akşam
|
|
83
|
+
("23:00", 480, 50.0),
|
|
84
|
+
("07:00", 690, 70.0),
|
|
85
|
+
])
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Hızlı başlangıç (komut satırı)
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
tr-gurultu gosterge olcum.csv # 'saat;leq' veya 'baslangic;sure_dk;leq'
|
|
92
|
+
tr-gurultu lgag 65 62 57 # Lgag = 66.1 dB(A)
|
|
93
|
+
tr-gurultu topla 68 71 # enerjetik toplam
|
|
94
|
+
tr-gurultu ortalama 70 50 --agirlik 45,15 # zaman ağırlıklı ortalama
|
|
95
|
+
tr-gurultu arkaplan 60 55 # arka plan düzeltmesi
|
|
96
|
+
tr-gurultu sinir # 2022 sınır değer tablosu
|
|
97
|
+
tr-gurultu sinir --surum 2010 # 2010 tabloları (kaldırıldı, başvuru)
|
|
98
|
+
tr-gurultu kontrol --kaynak ulasim --gunduz 66 --aksam 58 --gece 56 --lcmax 98
|
|
99
|
+
tr-gurultu kontrol --kaynak isyeri --gunduz 54 --arka-plan 50
|
|
100
|
+
tr-gurultu kontrol --kaynak karayolu --surum 2010 --alan konut --tur mevcut --dosya olcum.csv
|
|
101
|
+
tr-gurultu mesafe --duzey 82 --ref 10 --mesafe 120 --hedef 55
|
|
102
|
+
tr-gurultu santiye --baslangic 08:00 --bitis 23:00 --lcmax 97
|
|
103
|
+
tr-gurultu maruziyet alicilar.csv --nufus-sutun nufus --csv
|
|
104
|
+
tr-gurultu kategori 62 # 2010 madde 27 planlama kategorisi
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Her komut `--json` ile makine tarafından okunabilir çıktı verir. `kontrol` ve `santiye`
|
|
108
|
+
komutları aşım olduğunda çıkış kodu **1**, hata durumunda **2** döndürür; betiklerde ve
|
|
109
|
+
sürekli entegrasyonda kullanılabilir. CSV dosyaları UTF-8 (BOM'lu olabilir) veya
|
|
110
|
+
Windows-1254, `;`/`,`/sekme ayırıcılı ve ondalık virgüllü olabilir.
|
|
111
|
+
|
|
112
|
+
## API özeti
|
|
113
|
+
|
|
114
|
+
| İşlev / sınıf | Açıklama |
|
|
115
|
+
|---|---|
|
|
116
|
+
| `indicators_from_hourly(values)` | 24×n saatlik değer veya `{saat: leq}` → `NoiseIndicators` |
|
|
117
|
+
| `indicators_from_intervals(items)` | `(başlangıç, süre_dk, leq)` aralıkları → `NoiseIndicators` |
|
|
118
|
+
| `lgag(ld, le, ln)` / `lden` | Ek-3 madde 2.1 formülü |
|
|
119
|
+
| `PeriodScheme(...)` | dönem başlangıçları ve cezalar (varsayılan 07/19/23, +5/+10 dB) |
|
|
120
|
+
| `db_sum`, `db_mean`, `db_subtract`, `background_correction` | desibel aritmetiği |
|
|
121
|
+
| `get_limit(kaynak, alan, edition=, variant=)` | `LimitValue` (gündüz/akşam/gece) |
|
|
122
|
+
| `LIMITS_2022`, `LIMITS_2010`, `load_limit_table(json)` | tablolar ve kullanıcı değişiklikleri |
|
|
123
|
+
| `check_compliance(levels, limit, background=, lcmax=)` | `ComplianceResult` (`to_text`, `to_markdown`, `to_dict`) |
|
|
124
|
+
| `check_construction(start, end, ...)`, `is_permitted` | şantiye ve açık hava faaliyet saatleri |
|
|
125
|
+
| `level_at_distance`, `distance_for_level`, `lw_to_lp`, `lw_line_to_lp` | mesafe azalımı |
|
|
126
|
+
| `exposure_table(levels, weights, bands=)`, `exposure_above` | maruziyet tabloları |
|
|
127
|
+
| `planning_category_2010(lgunduz)` | 2010 madde 27 A-D kategorisi |
|
|
128
|
+
|
|
129
|
+
Sınır değerlerin değiştirilmesi:
|
|
130
|
+
|
|
131
|
+
```python
|
|
132
|
+
from tr_gurultu import LIMITS_2022, get_limit
|
|
133
|
+
karar = LIMITS_2022.with_overrides({"ulasim": {"gece": 50},
|
|
134
|
+
"sessiz_alan": {"gunduz": 50, "aksam": 45, "gece": 40}})
|
|
135
|
+
get_limit("sessiz_alan", table=karar)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{"endustri": {"gece": 50}, "sessiz_alan": {"gunduz": 50, "aksam": 45, "gece": 40}}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
`tr-gurultu kontrol ... --sinir-dosyasi karar.json`
|
|
143
|
+
|
|
144
|
+
## Yöntem ve kaynaklar
|
|
145
|
+
|
|
146
|
+
| Konu | Kaynak |
|
|
147
|
+
|---|---|
|
|
148
|
+
| Dönemler (gündüz 07-19, akşam 19-23, gece 23-07) | Çevresel Gürültü Kontrol Yönetmeliği (RG 30.11.2022/32029) Ek-1 (c), (ğ), (h) |
|
|
149
|
+
| Lgag formülü, 12/4/8 saat, +5/+10 dB | aynı yönetmelik Ek-3 madde 2.1; AB 2002/49/EC Ek I (Lden) |
|
|
150
|
+
| Sınır değerler 2022 (65/60/55; müzik 60/55/50, 63-250 Hz; işyeri arka plan +5/+3, çoklu +7/+5; LCmax 100 dB(C)) | Ek-2 Tablo 1 |
|
|
151
|
+
| İzinli saatler (şantiye 10-22, açık hava etkinlik 10-01, havai fişek 20-22, patlatma 10-20) | Ek-2 Tablo 2; kamu yararı projeleri Ek-2 madde 10; sınav günleri madde 11 |
|
|
152
|
+
| Maruziyet aralıkları 50-54 … >75 dB, yüzlüğe yuvarlama, >55/65/75 dB toplamları | Ek-3 madde 1.8.1.4, 1.8.1.5, 1.8.2.7 |
|
|
153
|
+
| 2010 tabloları (kara yolu, hava alanı, endüstri, şantiye), raylı/helikopter/su yolu 65/60/55, işyeri/eğlence arka plan + 5 dBA, madde 27 kategorileri | Çevresel Gürültünün Değerlendirilmesi ve Yönetimi Yönetmeliği (RG 04.06.2010/27601) Ek-VII ve madde 19-24, 27 (**30.11.2022'de yürürlükten kaldırıldı**) |
|
|
154
|
+
| Yüzlüğe yuvarlama kuralı (5150-5249 → 5200) | 2010 yönetmeliği Ek-VI 1.5 örneği |
|
|
155
|
+
| Nokta kaynak Adiv = 20 lg d + 11 dB | ISO 9613-2:1996 eşitlik (7) |
|
|
156
|
+
| Çizgi kaynak 10 lg(r2/r1), Lp = Lw' − 10 lg(2πd) | silindirik yayılma (temel akustik) |
|
|
157
|
+
| Arka plan düzeltmesi (≥10 dB düzeltme yok, 3-10 dB enerjetik çıkarma, <3 dB güvenilmez) | TS ISO 1996-2 uygulaması |
|
|
158
|
+
|
|
159
|
+
2022 metni ve ek PDF'i Resmî Gazete'den, 2010 ekleri 04.06.2010 tarihli Resmî Gazete'nin
|
|
160
|
+
ek dosyasından doğrulanmıştır. Güncel metin: <https://www.mevzuat.gov.tr> (MevzuatNo 39864).
|
|
161
|
+
|
|
162
|
+
**Not:** Yönetmeliğin 2022 sürümünün adı *Çevresel Gürültü Kontrol Yönetmeliği*dir;
|
|
163
|
+
2010 tarihli *Çevresel Gürültünün Değerlendirilmesi ve Yönetimi Yönetmeliği*ni
|
|
164
|
+
yürürlükten kaldırmıştır (madde 21).
|
|
165
|
+
|
|
166
|
+
## Sınırlamalar
|
|
167
|
+
|
|
168
|
+
- Bu paket ön değerlendirme ve eğitim içindir; resmî akustik rapor, stratejik gürültü
|
|
169
|
+
haritası veya denetim ölçümünün yerini tutmaz. Ölçümler TS ISO 1996-1/-2'ye göre,
|
|
170
|
+
yetkin kişilerce yapılmalıdır.
|
|
171
|
+
- 2022 Tablo 1 sınırları **LAeq,5dk** (müzik yayınında 63-250 Hz bandında LAeq) olarak
|
|
172
|
+
tanımlıdır. `check_compliance` kendisine verilen düzeyi doğrudan karşılaştırır; uzun
|
|
173
|
+
dönem Lgündüz/Lakşam/Lgece ile karşılaştırmak bir yorumdur. 5 dakikalık değerleri tek
|
|
174
|
+
tek kontrol etmek için her aralığı ayrı ayrı verin.
|
|
175
|
+
- 2022 tablosunda alan türüne göre ayrım ve şantiyeler için düzey sınırı yoktur. Şantiye
|
|
176
|
+
düzeyi için il kurullarının uyguladığı değer `level_limit` ile verilebilir.
|
|
177
|
+
- 2010 tabloları yalnızca başvuru içindir, ilk yayımlanmış hâliyle aktarılmıştır;
|
|
178
|
+
2011, 2015 ve 2022 değişiklikleri işlenmemiştir. 2010'daki "7-10 dBA" aralıkları için alt
|
|
179
|
+
sınır (7 dBA) kullanılır.
|
|
180
|
+
- Ek-2 madde 3'teki ton/darbe seviye ayarlamaları otomatik uygulanmaz.
|
|
181
|
+
- Mesafe azalımı yalnızca geometrik yayılma ve isteğe bağlı doğrusal hava yutmasıdır;
|
|
182
|
+
zemin etkisi, perdeleme, yansıma ve meteoroloji yoktur. Kaynak modellemesi (CNOSSOS-EU)
|
|
183
|
+
ve ISO 9613-2 yayılımı için aynı yazarın
|
|
184
|
+
[`roadnoise`](https://pypi.org/project/roadnoise/) paketine bakın; `tr-gurultu`
|
|
185
|
+
yönetmelik göstergeleri ve sınır değerlerine odaklanır.
|
|
186
|
+
- Arka plan düzeltmesi eşikleri (3 ve 10 dB) ISO 1996-2'nin yaygın uygulamasından
|
|
187
|
+
alınmıştır ve parametre olarak değiştirilebilir.
|
|
188
|
+
|
|
189
|
+
## Akademik atıf
|
|
190
|
+
|
|
191
|
+
```bibtex
|
|
192
|
+
@software{eminoglu_tr_gurultu,
|
|
193
|
+
author = {Eminoğlu, Yusuf},
|
|
194
|
+
title = {tr-gurultu},
|
|
195
|
+
year = {2026},
|
|
196
|
+
version = {0.1.0},
|
|
197
|
+
url = {https://gitlab.com/geophilo1/tr_gurultu_sdk}
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Lisans
|
|
202
|
+
|
|
203
|
+
MIT © 2026 Yusuf Eminoğlu. Ayrıntılar için [LICENSE](LICENSE). İletişim:
|
|
204
|
+
geospacephilo@gmail.com
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""tr-gurultu quick start (no network, no data files needed).
|
|
2
|
+
|
|
3
|
+
python examples/quickstart.py
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from tr_gurultu import (
|
|
9
|
+
check_compliance,
|
|
10
|
+
check_construction,
|
|
11
|
+
db_sum,
|
|
12
|
+
distance_for_level,
|
|
13
|
+
exposure_table,
|
|
14
|
+
get_limit,
|
|
15
|
+
indicators_from_hourly,
|
|
16
|
+
level_at_distance,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
# 1) Hourly LAeq,1h values at a facade next to a street (00:00 ... 23:00).
|
|
20
|
+
hourly = [
|
|
21
|
+
52.1, 50.4, 49.8, 49.5, 50.2, 53.7, 58.9, 63.5, # 00-07
|
|
22
|
+
66.2, 65.8, 65.1, 64.9, 65.3, 65.0, 64.8, 65.2, # 08-15
|
|
23
|
+
66.0, 66.4, 65.7, 63.9, 62.5, 61.8, 60.2, 57.0, # 16-23
|
|
24
|
+
] # fmt: skip
|
|
25
|
+
ind = indicators_from_hourly(hourly)
|
|
26
|
+
print(ind.to_text())
|
|
27
|
+
print()
|
|
28
|
+
|
|
29
|
+
# 2) Compare with the 2022 limit for transport sources (Ek-2 Tablo 1).
|
|
30
|
+
res = check_compliance(ind, get_limit("ulasim"), location="Örnek cephe")
|
|
31
|
+
print(res.to_text())
|
|
32
|
+
print()
|
|
33
|
+
|
|
34
|
+
# 3) The same point against the repealed 2010 road table (existing road, housing area).
|
|
35
|
+
old = check_compliance(ind, get_limit("karayolu", "konut", edition="2010", variant="mevcut"))
|
|
36
|
+
print(old.to_markdown())
|
|
37
|
+
|
|
38
|
+
# 4) Decibel arithmetic and screening distances.
|
|
39
|
+
print(f"İki kompresör (68 + 71 dB): {db_sum([68, 71]):.1f} dB")
|
|
40
|
+
print(f"10 m'de 82 dB nokta kaynak, 120 m'de: {level_at_distance(82, 10, 120):.1f} dB")
|
|
41
|
+
print(f"Gece 55 dB(A) için tampon mesafe: {distance_for_level(82, 10, 55):.0f} m")
|
|
42
|
+
print()
|
|
43
|
+
|
|
44
|
+
# 5) Construction schedule check.
|
|
45
|
+
print(check_construction("08:00", "23:00", lcmax=97).to_text())
|
|
46
|
+
print()
|
|
47
|
+
|
|
48
|
+
# 6) Exposure table from noise-map receivers (Lgag per building + residents).
|
|
49
|
+
levels = [53.2, 57.9, 61.4, 66.0, 71.2, 76.5, 48.0, 59.6]
|
|
50
|
+
residents = [120, 340, 455, 80, 62, 14, 30, 210]
|
|
51
|
+
print(exposure_table(levels, residents, indicator="Lgag").to_text())
|