tr-tbdy 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_tbdy-0.1.0/CHANGELOG.md +24 -0
- tr_tbdy-0.1.0/CITATION.cff +20 -0
- tr_tbdy-0.1.0/LICENSE +21 -0
- tr_tbdy-0.1.0/MANIFEST.in +9 -0
- tr_tbdy-0.1.0/PKG-INFO +238 -0
- tr_tbdy-0.1.0/README.md +200 -0
- tr_tbdy-0.1.0/examples/quickstart.py +45 -0
- tr_tbdy-0.1.0/pyproject.toml +115 -0
- tr_tbdy-0.1.0/setup.cfg +4 -0
- tr_tbdy-0.1.0/src/tr_tbdy/__init__.py +61 -0
- tr_tbdy-0.1.0/src/tr_tbdy/__main__.py +7 -0
- tr_tbdy-0.1.0/src/tr_tbdy/_version.py +1 -0
- tr_tbdy-0.1.0/src/tr_tbdy/classification.py +158 -0
- tr_tbdy-0.1.0/src/tr_tbdy/cli.py +307 -0
- tr_tbdy-0.1.0/src/tr_tbdy/coefficients.py +189 -0
- tr_tbdy-0.1.0/src/tr_tbdy/errors.py +18 -0
- tr_tbdy-0.1.0/src/tr_tbdy/export.py +100 -0
- tr_tbdy-0.1.0/src/tr_tbdy/plot.py +78 -0
- tr_tbdy-0.1.0/src/tr_tbdy/py.typed +0 -0
- tr_tbdy-0.1.0/src/tr_tbdy/reduction.py +94 -0
- tr_tbdy-0.1.0/src/tr_tbdy/spectrum.py +338 -0
- tr_tbdy-0.1.0/src/tr_tbdy/tables.py +205 -0
- tr_tbdy-0.1.0/src/tr_tbdy.egg-info/PKG-INFO +238 -0
- tr_tbdy-0.1.0/src/tr_tbdy.egg-info/SOURCES.txt +32 -0
- tr_tbdy-0.1.0/src/tr_tbdy.egg-info/dependency_links.txt +1 -0
- tr_tbdy-0.1.0/src/tr_tbdy.egg-info/entry_points.txt +2 -0
- tr_tbdy-0.1.0/src/tr_tbdy.egg-info/requires.txt +9 -0
- tr_tbdy-0.1.0/src/tr_tbdy.egg-info/top_level.txt +1 -0
- tr_tbdy-0.1.0/tests/test_classification.py +113 -0
- tr_tbdy-0.1.0/tests/test_coefficients.py +139 -0
- tr_tbdy-0.1.0/tests/test_doctests.py +23 -0
- tr_tbdy-0.1.0/tests/test_export_cli.py +126 -0
- tr_tbdy-0.1.0/tests/test_reduction.py +61 -0
- tr_tbdy-0.1.0/tests/test_spectrum.py +169 -0
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
- Local ground-effect coefficients F_S and F_1 from TBDY 2018 Tables 2.1 and 2.2 with
|
|
10
|
+
linear interpolation between columns (2.3.3.1) or a conservative "larger bracketing value"
|
|
11
|
+
option; user-replaceable tables; ZF raises `SiteSpecificAnalysisRequired` (2.3.3.2).
|
|
12
|
+
- `DesignSpectrum`: S_DS, S_D1 (Eq. 2.1), corner periods T_A, T_B, T_L = 6 s (Eq. 2.3),
|
|
13
|
+
horizontal elastic spectrum S_ae(T) (Eq. 2.2), displacement spectrum S_de(T) (Eq. 2.4),
|
|
14
|
+
vertical spectrum S_aeD(T) with T_AD, T_BD, T_LD (Eqs. 2.5, 2.6), period grids with the
|
|
15
|
+
corner periods, row tables and summaries.
|
|
16
|
+
- Building importance factor (Table 3.1), Deprem Tasarım Sınıfı DTS (Table 3.2), Bina
|
|
17
|
+
Yükseklik Sınıfı BYS and its height ranges (Table 3.3).
|
|
18
|
+
- Earthquake load reduction factor R_a(T) (Eq. 4.1), reduced spectrum S_aR(T) (Eq. 4.8),
|
|
19
|
+
minimum base shear ratio 0.04 I S_DS (Eq. 4.19), R and D of the cast-in-place RC systems
|
|
20
|
+
A11-A33 of Table 4.1.
|
|
21
|
+
- V_S30-based soil class helper (Table 16.1).
|
|
22
|
+
- CSV and JSON export; optional PNG plot (`tr-tbdy[plot]`, matplotlib).
|
|
23
|
+
- Turkish command-line interface `tr-tbdy` with `spektrum`, `katsayi`, `bys`, `zemin` and
|
|
24
|
+
`sistemler` commands.
|
|
@@ -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-tbdy"
|
|
9
|
+
version: "0.1.0"
|
|
10
|
+
date-released: "2026-11-09"
|
|
11
|
+
license: "MIT"
|
|
12
|
+
repository-code: "https://github.com/YusufEminoglu/tr_tbdy_sdk"
|
|
13
|
+
url: "https://pypi.org/project/tr-tbdy/"
|
|
14
|
+
abstract: "Seismic design spectra of the Turkish Building Earthquake Code 2018 (TBDY 2018, Chapter 2): local ground-effect coefficients Fs and F1, SDS and SD1, corner periods, horizontal, vertical and displacement elastic design spectra, earthquake design class (DTS), building height class (BYS) and the reduced design spectrum, with CSV/JSON export and a Turkish command-line interface."
|
|
15
|
+
keywords:
|
|
16
|
+
- earthquake engineering
|
|
17
|
+
- seismic design spectrum
|
|
18
|
+
- TBDY 2018
|
|
19
|
+
- Turkish Building Earthquake Code
|
|
20
|
+
- site coefficients
|
tr_tbdy-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.
|
tr_tbdy-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tr-tbdy
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: TBDY 2018 (Türkiye Bina Deprem Yönetmeliği) Chapter 2 design spectra: site coefficients Fs/F1, SDS/SD1, corner periods, horizontal, vertical and displacement spectra, DTS, BYS and the reduced spectrum, with CSV/JSON export and a Turkish CLI.
|
|
5
|
+
Author-email: Yusuf Eminoğlu <geospacephilo@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/YusufEminoglu/tr_tbdy_sdk
|
|
8
|
+
Project-URL: Repository, https://github.com/YusufEminoglu/tr_tbdy_sdk
|
|
9
|
+
Project-URL: Issues, https://github.com/YusufEminoglu/tr_tbdy_sdk/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/YusufEminoglu/tr_tbdy_sdk/blob/main/CHANGELOG.md
|
|
11
|
+
Keywords: tbdy,tbdy-2018,earthquake,deprem,seismic,design-spectrum,response-spectrum,turkey,turkiye,building-code,structural-engineering,site-coefficients
|
|
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
|
|
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: plot
|
|
31
|
+
Requires-Dist: matplotlib>=3.5.0; extra == "plot"
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
35
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
36
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
|
|
39
|
+
# tr-tbdy
|
|
40
|
+
|
|
41
|
+
[](https://pypi.org/project/tr-tbdy/)
|
|
42
|
+
[](https://pypi.org/project/tr-tbdy/)
|
|
43
|
+
[](https://github.com/YusufEminoglu/tr_tbdy_sdk/actions/workflows/ci.yml)
|
|
44
|
+
[](https://github.com/YusufEminoglu/tr_tbdy_sdk/blob/main/LICENSE)
|
|
45
|
+
|
|
46
|
+
**English summary.** `tr-tbdy` computes the seismic design spectra of the Turkish Building
|
|
47
|
+
Earthquake Code 2018 (TBDY 2018, Chapter 2) from the map spectral accelerations S_S and S_1
|
|
48
|
+
of a site and its local soil class: site coefficients F_S and F_1, S_DS, S_D1, corner periods,
|
|
49
|
+
the horizontal, vertical and displacement elastic spectra, the earthquake design class (DTS),
|
|
50
|
+
the building height class (BYS) and the reduced design spectrum. It is pure Python with no
|
|
51
|
+
required dependencies, exports CSV/JSON and ships a Turkish command-line tool; documentation
|
|
52
|
+
below is in Turkish.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
**Türkiye Bina Deprem Yönetmeliği 2018 (TBDY 2018) Bölüm 2 tasarım spektrumları.**
|
|
57
|
+
|
|
58
|
+
Bir saha için AFAD Türkiye Deprem Tehlike Haritası'ndan okunan harita spektral ivme
|
|
59
|
+
katsayıları SS ve S1 ile yerel zemin sınıfı (ZA–ZE) verildiğinde `tr-tbdy` şunları hesaplar:
|
|
60
|
+
|
|
61
|
+
- Yerel zemin etki katsayıları **FS** ve **F1** (Tablo 2.1, 2.2; sütunlar arasında doğrusal
|
|
62
|
+
enterpolasyon),
|
|
63
|
+
- Tasarım spektral ivme katsayıları **SDS**, **SD1** (Denk. 2.1),
|
|
64
|
+
- Köşe periyotları **TA**, **TB** ve **TL = 6 s** (Denk. 2.3),
|
|
65
|
+
- **Yatay elastik tasarım spektrumu** Sae(T) (Denk. 2.2),
|
|
66
|
+
- **Yatay elastik tasarım yerdeğiştirme spektrumu** Sde(T) (Denk. 2.4),
|
|
67
|
+
- **Düşey elastik tasarım spektrumu** SaeD(T), TAD, TBD, TLD (Denk. 2.5, 2.6),
|
|
68
|
+
- **Bina Önem Katsayısı** I ve **Bina Kullanım Sınıfı** BKS (Tablo 3.1),
|
|
69
|
+
- **Deprem Tasarım Sınıfı** DTS (Tablo 3.2),
|
|
70
|
+
- **Bina Yükseklik Sınıfı** BYS ve yükseklik aralıkları (Tablo 3.3),
|
|
71
|
+
- İsteğe bağlı: **Deprem Yükü Azaltma Katsayısı** Ra(T) (Denk. 4.1), **azaltılmış tasarım
|
|
72
|
+
spektrumu** SaR(T) (Denk. 4.8), taban kesme kuvveti alt sınırı 0.04 I SDS (Denk. 4.19) ve
|
|
73
|
+
Tablo 4.1'deki yerinde dökme betonarme sistemlerin (A11–A33) R ve D katsayıları.
|
|
74
|
+
|
|
75
|
+
Sonuçlar CSV/JSON olarak kaydedilir; matplotlib kuruluysa PNG grafik çizilir.
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
pip install tr-tbdy # yalnızca standart kütüphane
|
|
79
|
+
pip install "tr-tbdy[plot]" # + PNG grafik (matplotlib)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Python 3.9 veya üstü gerekir.
|
|
83
|
+
|
|
84
|
+
> SS ve S1 değerlerini kullanıcı sağlar (https://tdth.afad.gov.tr/). Paket AFAD
|
|
85
|
+
> servislerine bağlanmaz, ağ erişimi yapmaz.
|
|
86
|
+
|
|
87
|
+
## Hızlı başlangıç
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
from tr_tbdy import DesignSpectrum, Reduction, height_class, to_csv
|
|
91
|
+
|
|
92
|
+
sp = DesignSpectrum.from_map(ss=1.20, s1=0.35, soil_class="ZC") # DD-2 düzeyi
|
|
93
|
+
sp.fs, sp.f1 # (1.2, 1.5)
|
|
94
|
+
sp.sds, sp.sd1 # (1.44, 0.525)
|
|
95
|
+
sp.ta, sp.tb, sp.tl # (0.0729, 0.3646, 6.0)
|
|
96
|
+
|
|
97
|
+
sp.sae(1.0) # 0.525 g yatay elastik spektral ivme
|
|
98
|
+
sp.saed(0.1) # 1.152 g düşey elastik spektral ivme
|
|
99
|
+
sp.sde(1.0) # 0.1305 m elastik spektral yerdeğiştirme
|
|
100
|
+
sp.sae([0.0, 0.2, 2.0]) # liste de verilebilir
|
|
101
|
+
|
|
102
|
+
dts = sp.design_class(bks=3) # '1'
|
|
103
|
+
height_class(30.0, dts) # 4 (28 < HN <= 42)
|
|
104
|
+
|
|
105
|
+
red = Reduction.from_system("A11", bks=3) # R = 8, D = 3, I = 1.0
|
|
106
|
+
sp.sar(1.0, red) # 0.0656 g azaltılmış tasarım spektral ivmesi
|
|
107
|
+
|
|
108
|
+
to_csv(sp, "spektrum.csv", reduction=red) # T, Sae, SaeD, Sde, Ra, SaR
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
ZF sınıfı zeminlerde tablo değeri yoktur; sahaya özel zemin davranış analizinden elde edilen
|
|
112
|
+
SDS ve SD1 ile spektrum kurulur:
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
sp = DesignSpectrum.from_design_coefficients(sds=1.10, sd1=0.60, soil_class="ZF")
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Komut satırı
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
tr-tbdy spektrum --ss 1.2 --s1 0.35 --zemin ZC --bks 3 --sistem A11 \
|
|
122
|
+
--csv spektrum.csv --json spektrum.json --png spektrum.png
|
|
123
|
+
tr-tbdy katsayi --ss 0.875 --s1 0.25 --zemin ZD # FS = 1.15, F1 = 2.10
|
|
124
|
+
tr-tbdy bys --hn 30 --sds 0.62 --bks 1 # DTS = 2a, BYS = 4
|
|
125
|
+
tr-tbdy zemin --vs30 420 # ZC
|
|
126
|
+
tr-tbdy sistemler # Tablo 4.1 (A grubu), BKS
|
|
127
|
+
tr-tbdy spektrum --sds 1.1 --sd1 0.6 --zemin ZF # sahaya özel SDS/SD1
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
`spektrum` komutu özet değerleri ve periyot tablosunu (`--adim`, `--tmax`) yazdırır.
|
|
131
|
+
Diğer seçenekler: `--duzey DD-1..DD-4`, `--tutucu` (enterpolasyon yerine iki komşu sütunun
|
|
132
|
+
büyüğü), `--R` / `--D` (Tablo 4.1 dışındaki sistemler için), `--pga` / `--pgv` (yalnızca
|
|
133
|
+
raporlama), `--sessiz`. `python -m tr_tbdy` de aynı şekilde çalışır.
|
|
134
|
+
|
|
135
|
+
Örnek çıktı (kısaltılmış):
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
SS = 1.200 S1 = 0.350
|
|
139
|
+
FS = 1.200 F1 = 1.500 (Tablo 2.1, 2.2)
|
|
140
|
+
SDS = 1.4400 SD1 = 0.5250 (Denk. 2.1)
|
|
141
|
+
TA = 0.0729 s TB = 0.3646 s TL = 6.0 s (Denk. 2.3)
|
|
142
|
+
BKS = 3 I = 1 DTS = 1 (Tablo 3.1, 3.2)
|
|
143
|
+
|
|
144
|
+
T [s] Sae [g] SaeD [g] Sde [m] Ra SaR [g]
|
|
145
|
+
0.0000 0.5760 0.4608 0.0000 3.000 0.1920
|
|
146
|
+
0.3646 1.4400 0.3840 0.0476 8.000 0.1800
|
|
147
|
+
1.0000 0.5250 0.1400 0.1305 8.000 0.0656
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## API özeti
|
|
151
|
+
|
|
152
|
+
| Nesne | Açıklama |
|
|
153
|
+
|---|---|
|
|
154
|
+
| `DesignSpectrum.from_map(ss, s1, soil_class, level="DD-2", method="linear")` | Harita katsayılarından spektrum |
|
|
155
|
+
| `DesignSpectrum.from_design_coefficients(sds, sd1)` | SDS/SD1 biliniyorsa (ör. ZF) |
|
|
156
|
+
| `.sds`, `.sd1`, `.fs`, `.f1`, `.ta`, `.tb`, `.tl`, `.tad`, `.tbd`, `.tld` | Katsayılar, köşe periyotları |
|
|
157
|
+
| `.sae(T)`, `.saed(T)`, `.sde(T)`, `.sar(T, reduction)` | Spektrum ordinatları (sayı veya liste) |
|
|
158
|
+
| `.design_class(bks)`, `.periods()`, `.table()`, `.summary()` | DTS, periyot ızgarası, tablo |
|
|
159
|
+
| `site_coefficients(ss, s1, soil)`, `short_period_coefficient`, `one_second_coefficient` | FS, F1 |
|
|
160
|
+
| `design_class(sds, bks)`, `importance_factor(bks)` | Tablo 3.1, 3.2 |
|
|
161
|
+
| `height_class(hn, dts)`, `height_class_limits(dts)`, `height_class_table()` | Tablo 3.3 |
|
|
162
|
+
| `Reduction(R, D, I)`, `Reduction.from_system("A11", bks)`, `reduction_factor(...)` | Denk. 4.1 |
|
|
163
|
+
| `minimum_base_shear_ratio(sds, I)` | Denk. 4.19 alt sınırı |
|
|
164
|
+
| `soil_class_from_vs30(vs30)` | Tablo 16.1 (yalnızca Vs30) |
|
|
165
|
+
| `to_csv`, `to_json`, `spectrum_to_dict`, `tr_tbdy.plot.plot_spectrum` | Dışa aktarma, grafik |
|
|
166
|
+
| `TBDYError`, `SiteSpecificAnalysisRequired` | Hatalar (`ValueError` alt sınıfları) |
|
|
167
|
+
|
|
168
|
+
Tablolar `tr_tbdy.tables` modülündedir (`FS_TABLE`, `F1_TABLE`, `BYS_UPPER_LIMITS`,
|
|
169
|
+
`STRUCTURAL_SYSTEMS`, ...). `fs_table=` / `f1_table=` parametreleriyle kendi tablonuzu
|
|
170
|
+
verebilirsiniz (ör. yönetmelik değişikliği).
|
|
171
|
+
|
|
172
|
+
## Yöntem ve kaynaklar
|
|
173
|
+
|
|
174
|
+
Tüm tablo değerleri ve denklemler, **Türkiye Bina Deprem Yönetmeliği**, Resmî Gazete
|
|
175
|
+
18.03.2018, Sayı 30364 (Mükerrer), ek PDF metni (`20180318M1-2-1.pdf`) ile karşılaştırılarak
|
|
176
|
+
doğrulanmıştır:
|
|
177
|
+
|
|
178
|
+
- **2.3.2.2, Denk. (2.1):** SDS = SS · FS, SD1 = S1 · F1.
|
|
179
|
+
- **2.3.3.1, Tablo 2.1 / 2.2:** FS (SS ≤ 0.25 … ≥ 1.50) ve F1 (S1 ≤ 0.10 … ≥ 0.60).
|
|
180
|
+
"Tablolarda harita spektral ivme katsayılarının ara değerleri için doğrusal enterpolasyon
|
|
181
|
+
yapılabilir." İlk sütunun altı ilk sütun, son sütunun üstü son sütun değerini alır.
|
|
182
|
+
- **2.3.4.1, Denk. (2.2), (2.3):**
|
|
183
|
+
Sae = (0.4 + 0.6 T/TA) SDS (0 ≤ T ≤ TA); SDS (TA ≤ T ≤ TB); SD1/T (TB ≤ T ≤ TL);
|
|
184
|
+
SD1 TL/T² (T ≥ TL); TA = 0.2 SD1/SDS, TB = SD1/SDS, TL = 6 s.
|
|
185
|
+
- **2.3.4.2, Denk. (2.4):** Sde(T) = T²/(4π²) · g · Sae(T), g = 9.81 m/s².
|
|
186
|
+
- **2.3.5, Denk. (2.5), (2.6):** SaeD = (0.32 + 0.48 T/TAD) SDS; 0.8 SDS; 0.8 SDS TBD/T
|
|
187
|
+
(TBD ≤ T ≤ TLD); TAD = TA/3, TBD = TB/3, TLD = TL/2. TLD'den sonra tanımlı değildir
|
|
188
|
+
(kütüphane `nan`, tablolar boş değer döndürür).
|
|
189
|
+
- **Tablo 3.1:** I = 1.5 / 1.2 / 1.0 (BKS 1 / 2 / 3).
|
|
190
|
+
- **Tablo 3.2:** SDS < 0.33 → DTS 4(a); 0.33 ≤ SDS < 0.50 → 3(a); 0.50 ≤ SDS < 0.75 → 2(a);
|
|
191
|
+
SDS ≥ 0.75 → 1(a); "a" BKS = 1 için. SDS, DD-2 düzeyindeki değerdir.
|
|
192
|
+
- **Tablo 3.3:** BYS 1–8 yükseklik aralıkları; DTS 3/3a ve 4/4a sütunları BYS 4–8 için
|
|
193
|
+
ortaktır (birleştirilmiş hücreler).
|
|
194
|
+
- **4.2.1.2, Denk. (4.1):** Ra = R/I (T > TB); Ra = D + (R/I − D) T/TB (T ≤ TB).
|
|
195
|
+
**4.4.1, Denk. (4.8):** SaR = Sae/Ra. **Denk. (4.19):** VtE ≥ 0.04 mt I SDS g.
|
|
196
|
+
- **Tablo 4.1:** A11–A33 yerinde dökme betonarme sistemlerin R, D ve izin verilen BYS değerleri.
|
|
197
|
+
- **Tablo 16.1:** Vs30 aralıkları (ZA > 1500, ZB 760–1500, ZC 360–760, ZD 180–360,
|
|
198
|
+
ZE < 180 m/s).
|
|
199
|
+
|
|
200
|
+
Testler, bu formüllerle elle hesaplanmış örnekleri (ör. SS = 1.20, S1 = 0.35, ZC →
|
|
201
|
+
SDS = 1.44, SD1 = 0.525, TB = 0.3646 s; SS = 0.875, S1 = 0.25, ZD → FS = 1.15, F1 = 2.10)
|
|
202
|
+
ve tabloların yönetmelik metninden bağımsız olarak aktarılmış kopyalarını kullanır.
|
|
203
|
+
|
|
204
|
+
## Sınırlamalar
|
|
205
|
+
|
|
206
|
+
- **ZF zeminler** için tablo yoktur: TBDY 2018 2.3.3.2 ve 16.5 uyarınca sahaya özel zemin
|
|
207
|
+
davranış analizi gerekir; `from_map(..., "ZF")` `SiteSpecificAnalysisRequired` hatası verir.
|
|
208
|
+
- **Sahaya özel spektrumlar** (2.4) hesaplanmaz; bu spektrumlar standart spektrumun %90'ından
|
|
209
|
+
küçük olamaz (2.4.1.2).
|
|
210
|
+
- `soil_class_from_vs30` yalnızca Vs30'u kullanır. Tablo 16.1 sınır değerlerinin hangi sınıfa
|
|
211
|
+
ait olduğunu belirtmez; kütüphane ASCE 7 ile aynı kuralı varsayar (760 → ZC, 360 → ZD,
|
|
212
|
+
180 → ZD, 1500 → ZB). SPT N60 ve cu ölçütleri, ZE'nin yumuşak kil koşulu ve ZF ölçütleri
|
|
213
|
+
değerlendirilmez.
|
|
214
|
+
- `--tutucu` / `method="conservative"` yönetmelikte tanımlı bir yöntem değildir; iki komşu
|
|
215
|
+
sütunun büyüğünü alan, isteğe bağlı bir yaklaşımdır.
|
|
216
|
+
- Tablo 4.1'in yalnızca yerinde dökme betonarme (A) grubu dahildir; önüretimli, çelik ve diğer
|
|
217
|
+
sistemler için R ve D doğrudan verilmelidir. 4.3.4.5–4.3.4.7'deki devrilme momenti
|
|
218
|
+
koşullarına bağlı R/D değişiklikleri, Bölüm 13 (yüksek binalar) ve deprem hesabının kendisi
|
|
219
|
+
kapsam dışıdır.
|
|
220
|
+
- PGA ve PGV yalnızca raporlama için taşınır; Bölüm 2 standart spektrumunda kullanılmaz.
|
|
221
|
+
- Bu paket bir mühendislik yardımcısıdır; resmi proje hesaplarında sonuçlar yürürlükteki
|
|
222
|
+
yönetmelik metniyle kontrol edilmelidir.
|
|
223
|
+
|
|
224
|
+
## Akademik atıf
|
|
225
|
+
|
|
226
|
+
```bibtex
|
|
227
|
+
@software{eminoglu_tr_tbdy,
|
|
228
|
+
author = {Eminoğlu, Yusuf},
|
|
229
|
+
title = {tr-tbdy},
|
|
230
|
+
year = {2026},
|
|
231
|
+
version = {0.1.0},
|
|
232
|
+
url = {https://github.com/YusufEminoglu/tr_tbdy_sdk}
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Lisans
|
|
237
|
+
|
|
238
|
+
MIT © 2026 Yusuf Eminoğlu. İletişim: geospacephilo@gmail.com
|
tr_tbdy-0.1.0/README.md
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# tr-tbdy
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/tr-tbdy/)
|
|
4
|
+
[](https://pypi.org/project/tr-tbdy/)
|
|
5
|
+
[](https://github.com/YusufEminoglu/tr_tbdy_sdk/actions/workflows/ci.yml)
|
|
6
|
+
[](https://github.com/YusufEminoglu/tr_tbdy_sdk/blob/main/LICENSE)
|
|
7
|
+
|
|
8
|
+
**English summary.** `tr-tbdy` computes the seismic design spectra of the Turkish Building
|
|
9
|
+
Earthquake Code 2018 (TBDY 2018, Chapter 2) from the map spectral accelerations S_S and S_1
|
|
10
|
+
of a site and its local soil class: site coefficients F_S and F_1, S_DS, S_D1, corner periods,
|
|
11
|
+
the horizontal, vertical and displacement elastic spectra, the earthquake design class (DTS),
|
|
12
|
+
the building height class (BYS) and the reduced design spectrum. It is pure Python with no
|
|
13
|
+
required dependencies, exports CSV/JSON and ships a Turkish command-line tool; documentation
|
|
14
|
+
below is in Turkish.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
**Türkiye Bina Deprem Yönetmeliği 2018 (TBDY 2018) Bölüm 2 tasarım spektrumları.**
|
|
19
|
+
|
|
20
|
+
Bir saha için AFAD Türkiye Deprem Tehlike Haritası'ndan okunan harita spektral ivme
|
|
21
|
+
katsayıları SS ve S1 ile yerel zemin sınıfı (ZA–ZE) verildiğinde `tr-tbdy` şunları hesaplar:
|
|
22
|
+
|
|
23
|
+
- Yerel zemin etki katsayıları **FS** ve **F1** (Tablo 2.1, 2.2; sütunlar arasında doğrusal
|
|
24
|
+
enterpolasyon),
|
|
25
|
+
- Tasarım spektral ivme katsayıları **SDS**, **SD1** (Denk. 2.1),
|
|
26
|
+
- Köşe periyotları **TA**, **TB** ve **TL = 6 s** (Denk. 2.3),
|
|
27
|
+
- **Yatay elastik tasarım spektrumu** Sae(T) (Denk. 2.2),
|
|
28
|
+
- **Yatay elastik tasarım yerdeğiştirme spektrumu** Sde(T) (Denk. 2.4),
|
|
29
|
+
- **Düşey elastik tasarım spektrumu** SaeD(T), TAD, TBD, TLD (Denk. 2.5, 2.6),
|
|
30
|
+
- **Bina Önem Katsayısı** I ve **Bina Kullanım Sınıfı** BKS (Tablo 3.1),
|
|
31
|
+
- **Deprem Tasarım Sınıfı** DTS (Tablo 3.2),
|
|
32
|
+
- **Bina Yükseklik Sınıfı** BYS ve yükseklik aralıkları (Tablo 3.3),
|
|
33
|
+
- İsteğe bağlı: **Deprem Yükü Azaltma Katsayısı** Ra(T) (Denk. 4.1), **azaltılmış tasarım
|
|
34
|
+
spektrumu** SaR(T) (Denk. 4.8), taban kesme kuvveti alt sınırı 0.04 I SDS (Denk. 4.19) ve
|
|
35
|
+
Tablo 4.1'deki yerinde dökme betonarme sistemlerin (A11–A33) R ve D katsayıları.
|
|
36
|
+
|
|
37
|
+
Sonuçlar CSV/JSON olarak kaydedilir; matplotlib kuruluysa PNG grafik çizilir.
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pip install tr-tbdy # yalnızca standart kütüphane
|
|
41
|
+
pip install "tr-tbdy[plot]" # + PNG grafik (matplotlib)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Python 3.9 veya üstü gerekir.
|
|
45
|
+
|
|
46
|
+
> SS ve S1 değerlerini kullanıcı sağlar (https://tdth.afad.gov.tr/). Paket AFAD
|
|
47
|
+
> servislerine bağlanmaz, ağ erişimi yapmaz.
|
|
48
|
+
|
|
49
|
+
## Hızlı başlangıç
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
from tr_tbdy import DesignSpectrum, Reduction, height_class, to_csv
|
|
53
|
+
|
|
54
|
+
sp = DesignSpectrum.from_map(ss=1.20, s1=0.35, soil_class="ZC") # DD-2 düzeyi
|
|
55
|
+
sp.fs, sp.f1 # (1.2, 1.5)
|
|
56
|
+
sp.sds, sp.sd1 # (1.44, 0.525)
|
|
57
|
+
sp.ta, sp.tb, sp.tl # (0.0729, 0.3646, 6.0)
|
|
58
|
+
|
|
59
|
+
sp.sae(1.0) # 0.525 g yatay elastik spektral ivme
|
|
60
|
+
sp.saed(0.1) # 1.152 g düşey elastik spektral ivme
|
|
61
|
+
sp.sde(1.0) # 0.1305 m elastik spektral yerdeğiştirme
|
|
62
|
+
sp.sae([0.0, 0.2, 2.0]) # liste de verilebilir
|
|
63
|
+
|
|
64
|
+
dts = sp.design_class(bks=3) # '1'
|
|
65
|
+
height_class(30.0, dts) # 4 (28 < HN <= 42)
|
|
66
|
+
|
|
67
|
+
red = Reduction.from_system("A11", bks=3) # R = 8, D = 3, I = 1.0
|
|
68
|
+
sp.sar(1.0, red) # 0.0656 g azaltılmış tasarım spektral ivmesi
|
|
69
|
+
|
|
70
|
+
to_csv(sp, "spektrum.csv", reduction=red) # T, Sae, SaeD, Sde, Ra, SaR
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
ZF sınıfı zeminlerde tablo değeri yoktur; sahaya özel zemin davranış analizinden elde edilen
|
|
74
|
+
SDS ve SD1 ile spektrum kurulur:
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
sp = DesignSpectrum.from_design_coefficients(sds=1.10, sd1=0.60, soil_class="ZF")
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Komut satırı
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
tr-tbdy spektrum --ss 1.2 --s1 0.35 --zemin ZC --bks 3 --sistem A11 \
|
|
84
|
+
--csv spektrum.csv --json spektrum.json --png spektrum.png
|
|
85
|
+
tr-tbdy katsayi --ss 0.875 --s1 0.25 --zemin ZD # FS = 1.15, F1 = 2.10
|
|
86
|
+
tr-tbdy bys --hn 30 --sds 0.62 --bks 1 # DTS = 2a, BYS = 4
|
|
87
|
+
tr-tbdy zemin --vs30 420 # ZC
|
|
88
|
+
tr-tbdy sistemler # Tablo 4.1 (A grubu), BKS
|
|
89
|
+
tr-tbdy spektrum --sds 1.1 --sd1 0.6 --zemin ZF # sahaya özel SDS/SD1
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
`spektrum` komutu özet değerleri ve periyot tablosunu (`--adim`, `--tmax`) yazdırır.
|
|
93
|
+
Diğer seçenekler: `--duzey DD-1..DD-4`, `--tutucu` (enterpolasyon yerine iki komşu sütunun
|
|
94
|
+
büyüğü), `--R` / `--D` (Tablo 4.1 dışındaki sistemler için), `--pga` / `--pgv` (yalnızca
|
|
95
|
+
raporlama), `--sessiz`. `python -m tr_tbdy` de aynı şekilde çalışır.
|
|
96
|
+
|
|
97
|
+
Örnek çıktı (kısaltılmış):
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
SS = 1.200 S1 = 0.350
|
|
101
|
+
FS = 1.200 F1 = 1.500 (Tablo 2.1, 2.2)
|
|
102
|
+
SDS = 1.4400 SD1 = 0.5250 (Denk. 2.1)
|
|
103
|
+
TA = 0.0729 s TB = 0.3646 s TL = 6.0 s (Denk. 2.3)
|
|
104
|
+
BKS = 3 I = 1 DTS = 1 (Tablo 3.1, 3.2)
|
|
105
|
+
|
|
106
|
+
T [s] Sae [g] SaeD [g] Sde [m] Ra SaR [g]
|
|
107
|
+
0.0000 0.5760 0.4608 0.0000 3.000 0.1920
|
|
108
|
+
0.3646 1.4400 0.3840 0.0476 8.000 0.1800
|
|
109
|
+
1.0000 0.5250 0.1400 0.1305 8.000 0.0656
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## API özeti
|
|
113
|
+
|
|
114
|
+
| Nesne | Açıklama |
|
|
115
|
+
|---|---|
|
|
116
|
+
| `DesignSpectrum.from_map(ss, s1, soil_class, level="DD-2", method="linear")` | Harita katsayılarından spektrum |
|
|
117
|
+
| `DesignSpectrum.from_design_coefficients(sds, sd1)` | SDS/SD1 biliniyorsa (ör. ZF) |
|
|
118
|
+
| `.sds`, `.sd1`, `.fs`, `.f1`, `.ta`, `.tb`, `.tl`, `.tad`, `.tbd`, `.tld` | Katsayılar, köşe periyotları |
|
|
119
|
+
| `.sae(T)`, `.saed(T)`, `.sde(T)`, `.sar(T, reduction)` | Spektrum ordinatları (sayı veya liste) |
|
|
120
|
+
| `.design_class(bks)`, `.periods()`, `.table()`, `.summary()` | DTS, periyot ızgarası, tablo |
|
|
121
|
+
| `site_coefficients(ss, s1, soil)`, `short_period_coefficient`, `one_second_coefficient` | FS, F1 |
|
|
122
|
+
| `design_class(sds, bks)`, `importance_factor(bks)` | Tablo 3.1, 3.2 |
|
|
123
|
+
| `height_class(hn, dts)`, `height_class_limits(dts)`, `height_class_table()` | Tablo 3.3 |
|
|
124
|
+
| `Reduction(R, D, I)`, `Reduction.from_system("A11", bks)`, `reduction_factor(...)` | Denk. 4.1 |
|
|
125
|
+
| `minimum_base_shear_ratio(sds, I)` | Denk. 4.19 alt sınırı |
|
|
126
|
+
| `soil_class_from_vs30(vs30)` | Tablo 16.1 (yalnızca Vs30) |
|
|
127
|
+
| `to_csv`, `to_json`, `spectrum_to_dict`, `tr_tbdy.plot.plot_spectrum` | Dışa aktarma, grafik |
|
|
128
|
+
| `TBDYError`, `SiteSpecificAnalysisRequired` | Hatalar (`ValueError` alt sınıfları) |
|
|
129
|
+
|
|
130
|
+
Tablolar `tr_tbdy.tables` modülündedir (`FS_TABLE`, `F1_TABLE`, `BYS_UPPER_LIMITS`,
|
|
131
|
+
`STRUCTURAL_SYSTEMS`, ...). `fs_table=` / `f1_table=` parametreleriyle kendi tablonuzu
|
|
132
|
+
verebilirsiniz (ör. yönetmelik değişikliği).
|
|
133
|
+
|
|
134
|
+
## Yöntem ve kaynaklar
|
|
135
|
+
|
|
136
|
+
Tüm tablo değerleri ve denklemler, **Türkiye Bina Deprem Yönetmeliği**, Resmî Gazete
|
|
137
|
+
18.03.2018, Sayı 30364 (Mükerrer), ek PDF metni (`20180318M1-2-1.pdf`) ile karşılaştırılarak
|
|
138
|
+
doğrulanmıştır:
|
|
139
|
+
|
|
140
|
+
- **2.3.2.2, Denk. (2.1):** SDS = SS · FS, SD1 = S1 · F1.
|
|
141
|
+
- **2.3.3.1, Tablo 2.1 / 2.2:** FS (SS ≤ 0.25 … ≥ 1.50) ve F1 (S1 ≤ 0.10 … ≥ 0.60).
|
|
142
|
+
"Tablolarda harita spektral ivme katsayılarının ara değerleri için doğrusal enterpolasyon
|
|
143
|
+
yapılabilir." İlk sütunun altı ilk sütun, son sütunun üstü son sütun değerini alır.
|
|
144
|
+
- **2.3.4.1, Denk. (2.2), (2.3):**
|
|
145
|
+
Sae = (0.4 + 0.6 T/TA) SDS (0 ≤ T ≤ TA); SDS (TA ≤ T ≤ TB); SD1/T (TB ≤ T ≤ TL);
|
|
146
|
+
SD1 TL/T² (T ≥ TL); TA = 0.2 SD1/SDS, TB = SD1/SDS, TL = 6 s.
|
|
147
|
+
- **2.3.4.2, Denk. (2.4):** Sde(T) = T²/(4π²) · g · Sae(T), g = 9.81 m/s².
|
|
148
|
+
- **2.3.5, Denk. (2.5), (2.6):** SaeD = (0.32 + 0.48 T/TAD) SDS; 0.8 SDS; 0.8 SDS TBD/T
|
|
149
|
+
(TBD ≤ T ≤ TLD); TAD = TA/3, TBD = TB/3, TLD = TL/2. TLD'den sonra tanımlı değildir
|
|
150
|
+
(kütüphane `nan`, tablolar boş değer döndürür).
|
|
151
|
+
- **Tablo 3.1:** I = 1.5 / 1.2 / 1.0 (BKS 1 / 2 / 3).
|
|
152
|
+
- **Tablo 3.2:** SDS < 0.33 → DTS 4(a); 0.33 ≤ SDS < 0.50 → 3(a); 0.50 ≤ SDS < 0.75 → 2(a);
|
|
153
|
+
SDS ≥ 0.75 → 1(a); "a" BKS = 1 için. SDS, DD-2 düzeyindeki değerdir.
|
|
154
|
+
- **Tablo 3.3:** BYS 1–8 yükseklik aralıkları; DTS 3/3a ve 4/4a sütunları BYS 4–8 için
|
|
155
|
+
ortaktır (birleştirilmiş hücreler).
|
|
156
|
+
- **4.2.1.2, Denk. (4.1):** Ra = R/I (T > TB); Ra = D + (R/I − D) T/TB (T ≤ TB).
|
|
157
|
+
**4.4.1, Denk. (4.8):** SaR = Sae/Ra. **Denk. (4.19):** VtE ≥ 0.04 mt I SDS g.
|
|
158
|
+
- **Tablo 4.1:** A11–A33 yerinde dökme betonarme sistemlerin R, D ve izin verilen BYS değerleri.
|
|
159
|
+
- **Tablo 16.1:** Vs30 aralıkları (ZA > 1500, ZB 760–1500, ZC 360–760, ZD 180–360,
|
|
160
|
+
ZE < 180 m/s).
|
|
161
|
+
|
|
162
|
+
Testler, bu formüllerle elle hesaplanmış örnekleri (ör. SS = 1.20, S1 = 0.35, ZC →
|
|
163
|
+
SDS = 1.44, SD1 = 0.525, TB = 0.3646 s; SS = 0.875, S1 = 0.25, ZD → FS = 1.15, F1 = 2.10)
|
|
164
|
+
ve tabloların yönetmelik metninden bağımsız olarak aktarılmış kopyalarını kullanır.
|
|
165
|
+
|
|
166
|
+
## Sınırlamalar
|
|
167
|
+
|
|
168
|
+
- **ZF zeminler** için tablo yoktur: TBDY 2018 2.3.3.2 ve 16.5 uyarınca sahaya özel zemin
|
|
169
|
+
davranış analizi gerekir; `from_map(..., "ZF")` `SiteSpecificAnalysisRequired` hatası verir.
|
|
170
|
+
- **Sahaya özel spektrumlar** (2.4) hesaplanmaz; bu spektrumlar standart spektrumun %90'ından
|
|
171
|
+
küçük olamaz (2.4.1.2).
|
|
172
|
+
- `soil_class_from_vs30` yalnızca Vs30'u kullanır. Tablo 16.1 sınır değerlerinin hangi sınıfa
|
|
173
|
+
ait olduğunu belirtmez; kütüphane ASCE 7 ile aynı kuralı varsayar (760 → ZC, 360 → ZD,
|
|
174
|
+
180 → ZD, 1500 → ZB). SPT N60 ve cu ölçütleri, ZE'nin yumuşak kil koşulu ve ZF ölçütleri
|
|
175
|
+
değerlendirilmez.
|
|
176
|
+
- `--tutucu` / `method="conservative"` yönetmelikte tanımlı bir yöntem değildir; iki komşu
|
|
177
|
+
sütunun büyüğünü alan, isteğe bağlı bir yaklaşımdır.
|
|
178
|
+
- Tablo 4.1'in yalnızca yerinde dökme betonarme (A) grubu dahildir; önüretimli, çelik ve diğer
|
|
179
|
+
sistemler için R ve D doğrudan verilmelidir. 4.3.4.5–4.3.4.7'deki devrilme momenti
|
|
180
|
+
koşullarına bağlı R/D değişiklikleri, Bölüm 13 (yüksek binalar) ve deprem hesabının kendisi
|
|
181
|
+
kapsam dışıdır.
|
|
182
|
+
- PGA ve PGV yalnızca raporlama için taşınır; Bölüm 2 standart spektrumunda kullanılmaz.
|
|
183
|
+
- Bu paket bir mühendislik yardımcısıdır; resmi proje hesaplarında sonuçlar yürürlükteki
|
|
184
|
+
yönetmelik metniyle kontrol edilmelidir.
|
|
185
|
+
|
|
186
|
+
## Akademik atıf
|
|
187
|
+
|
|
188
|
+
```bibtex
|
|
189
|
+
@software{eminoglu_tr_tbdy,
|
|
190
|
+
author = {Eminoğlu, Yusuf},
|
|
191
|
+
title = {tr-tbdy},
|
|
192
|
+
year = {2026},
|
|
193
|
+
version = {0.1.0},
|
|
194
|
+
url = {https://github.com/YusufEminoglu/tr_tbdy_sdk}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Lisans
|
|
199
|
+
|
|
200
|
+
MIT © 2026 Yusuf Eminoğlu. İletişim: geospacephilo@gmail.com
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""tr_tbdy hızlı başlangıç / quick start.
|
|
2
|
+
|
|
3
|
+
python examples/quickstart.py
|
|
4
|
+
|
|
5
|
+
SS ve S1 değerlerini AFAD Türkiye Deprem Tehlike Haritası'ndan (https://tdth.afad.gov.tr/)
|
|
6
|
+
kendi sahanız için okuyun; aşağıdaki değerler yalnızca örnektir.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
from tr_tbdy import DesignSpectrum, Reduction, height_class, to_csv, to_json
|
|
14
|
+
|
|
15
|
+
# Örnek saha: DD-2 düzeyi, SS = 1.20, S1 = 0.35, yerel zemin sınıfı ZC.
|
|
16
|
+
spectrum = DesignSpectrum.from_map(ss=1.20, s1=0.35, soil_class="ZC")
|
|
17
|
+
|
|
18
|
+
print(f"FS = {spectrum.fs:.2f}, F1 = {spectrum.f1:.2f}")
|
|
19
|
+
print(f"SDS = {spectrum.sds:.3f}, SD1 = {spectrum.sd1:.3f}")
|
|
20
|
+
print(f"TA = {spectrum.ta:.3f} s, TB = {spectrum.tb:.3f} s, TL = {spectrum.tl:.0f} s")
|
|
21
|
+
|
|
22
|
+
# Konut (BKS = 3), 30 m yüksekliğinde bina.
|
|
23
|
+
dts = spectrum.design_class(bks=3)
|
|
24
|
+
print(f"DTS = {dts}, BYS = {height_class(30.0, dts)}")
|
|
25
|
+
|
|
26
|
+
# Süneklik düzeyi yüksek betonarme çerçeve (Tablo 4.1, A11).
|
|
27
|
+
reduction = Reduction.from_system("A11", bks=3)
|
|
28
|
+
for t in (0.0, 0.2, 0.5, 1.0, 2.0):
|
|
29
|
+
print(
|
|
30
|
+
f"T = {t:4.1f} s Sae = {spectrum.sae(t):.3f} g "
|
|
31
|
+
f"SaR = {spectrum.sar(t, reduction):.3f} g Sde = {spectrum.sde(t):.4f} m"
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
out = Path(__file__).with_name("spektrum_ornek")
|
|
35
|
+
to_csv(spectrum, out.with_suffix(".csv"), reduction=reduction)
|
|
36
|
+
to_json(spectrum, out.with_suffix(".json"), reduction=reduction, bks=3)
|
|
37
|
+
print(f"Yazıldı: {out.with_suffix('.csv').name}, {out.with_suffix('.json').name}")
|
|
38
|
+
|
|
39
|
+
try:
|
|
40
|
+
from tr_tbdy.plot import plot_spectrum
|
|
41
|
+
|
|
42
|
+
plot_spectrum(spectrum, out.with_suffix(".png"), reduction=reduction)
|
|
43
|
+
print(f"Grafik: {out.with_suffix('.png').name}")
|
|
44
|
+
except ImportError:
|
|
45
|
+
print('Grafik için: pip install "tr-tbdy[plot]"')
|