irie 0.0.21__py3-none-any.whl → 0.0.22__py3-none-any.whl

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.

Potentially problematic release.


This version of irie might be problematic. Click here for more details.

irie/apps/__init__.py CHANGED
@@ -2,4 +2,4 @@
2
2
  #
3
3
  # STAIRLab -- STructural Artificial Intelligence Laboratory
4
4
  #
5
- #===----------------------------------------------------------------------===#
5
+ #===----------------------------------------------------------------------===#
irie/apps/config.py CHANGED
@@ -1,3 +1,8 @@
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
1
6
  from django.apps import AppConfig
2
7
 
3
8
  class AppsConfig(AppConfig):
@@ -32,6 +32,9 @@ class Evaluation(models.Model):
32
32
  choices=Status.choices,
33
33
  default=Status.Finished)
34
34
 
35
+ def __str__(self):
36
+ return f"Evaluation {self.id} ({self.status})"
37
+
35
38
  @classmethod
36
39
  def create(cls, event: EventRecord, asset: Asset, data: dict = None):
37
40
  evaluation = cls()
@@ -21,7 +21,7 @@ from irie.apps.inventory.models import Asset
21
21
  class EventRecord(models.Model):
22
22
  id = models.BigAutoField(primary_key=True)
23
23
  upload_date = models.DateField(blank=False)
24
- event_file = models.FileField(upload_to='events', blank=True)
24
+ event_file = models.FileField(upload_to="events", blank=True)
25
25
  upload_data = models.JSONField(default=dict)
26
26
  motion_data = models.JSONField(default=dict)
27
27
  cesmd = models.CharField(max_length=7)
@@ -21,6 +21,19 @@ class Corridor(models.Model):
21
21
  def __str__(self):
22
22
  return f"{self.name} ({self.assets.count()})"
23
23
 
24
+
25
+ class _Sensor: # (models.Model):
26
+ class Status:
27
+ active: bool
28
+
29
+ status = None
30
+
31
+ class Station: # (models.Model):
32
+ sensors = None
33
+ assets = None
34
+ network = None
35
+ events = None
36
+
24
37
  class Asset(models.Model):
25
38
  id = models.BigAutoField(primary_key=True)
26
39
  cesmd = models.CharField(max_length=7, blank=True, null=True)
@@ -56,7 +69,7 @@ class Asset(models.Model):
56
69
  return None
57
70
 
58
71
  @property
59
- def predictors(self): # ->Dict[str, Predictor]:
72
+ def predictors(self):
60
73
  from irie.apps.prediction.predictor import PREDICTOR_TYPES
61
74
  from irie.apps.prediction.models import PredictorModel
62
75
  return {
@@ -1,4 +1,8 @@
1
-
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
2
6
  from django.contrib.sitemaps import Sitemap
3
7
  from django.urls import reverse
4
8
  from .models import Asset # Replace with your model
@@ -40,7 +40,7 @@ def _fetch_rendering(request):
40
40
 
41
41
  from irie.apps.prediction.models import PredictorModel
42
42
  for p in PredictorModel.objects.filter(asset=asset):
43
- if p.protocol == "IRIE_PREDICTOR_T4":
43
+ if p.protocol == "IRIE_PREDICTOR_V1":
44
44
  return HttpResponse("html")
45
45
 
46
46
  return HttpResponse("No rendering available for this asset.")
@@ -196,12 +196,12 @@ def asset_profile(request, calid):
196
196
 
197
197
  # Add fragility probabilities and plot to the context
198
198
  context["hazus"] = {
199
- "probabilities": {
200
- "Slight": hazus_results.get("Slight"),
201
- "Moderate": hazus_results.get("Moderate"),
202
- "Extensive": hazus_results.get("Extensive"),
203
- "Complete": hazus_results.get("Complete"),
204
- },
199
+ # "probabilities": {
200
+ # "Slight": hazus_results.get("Slight"),
201
+ # "Moderate": hazus_results.get("Moderate"),
202
+ # "Extensive": hazus_results.get("Extensive"),
203
+ # "Complete": hazus_results.get("Complete"),
204
+ # },
205
205
  "sa_range": json.dumps(hazus_results["sa_range"]),
206
206
  "curves": json.dumps(hazus_results["curves"])
207
207
  # "plot_base64": hazus_results.get("plot_base64"),
@@ -261,8 +261,9 @@ def _make_tables(asset):
261
261
  "Owner Agency",
262
262
  "Year Reconstructed",
263
263
  "Bridge Posting Code",
264
- "Latitude",
265
- "Longitude",
264
+ # "Latitude",
265
+ # "Longitude",
266
+ "Structure Number",
266
267
  "NBIS Minimum Bridge Length",
267
268
  "Record Type",
268
269
  "State Name",
@@ -6,7 +6,6 @@
6
6
  from django.apps import AppConfig
7
7
 
8
8
  class PredictionConfig(AppConfig):
9
- default_auto_field = 'django.db.models.BigAutoField'
10
- name = 'irie.apps.prediction'
11
- label = 'apps_prediction'
12
-
9
+ default_auto_field = "django.db.models.BigAutoField"
10
+ name = "irie.apps.prediction"
11
+ label = "apps_prediction"
@@ -9,11 +9,13 @@ from irie.apps.prediction.models import PredictorModel
9
9
  class PredictorForm(forms.ModelForm):
10
10
  class Meta:
11
11
  model = PredictorModel
12
- fields = '__all__'
13
- exclude = ['render_file',
14
- 'asset',
15
- 'metrics',
16
- 'active',
17
- 'entry_point',
18
- 'config',
19
- 'protocol']
12
+ fields = "__all__"
13
+ exclude = [
14
+ "render_file",
15
+ "asset",
16
+ "metrics",
17
+ "active",
18
+ "entry_point",
19
+ "config",
20
+ "protocol"
21
+ ]
@@ -0,0 +1,18 @@
1
+ # Generated by Django 5.1.2 on 2024-12-15 00:56
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('apps_prediction', '0002_alter_predictormodel_protocol'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name='predictormodel',
15
+ name='protocol',
16
+ field=models.CharField(choices=[('IRIE_PREDICTOR_V1', 'Type1'), ('IRIE_PREDICTOR_T2', 'Type2')], default='IRIE_PREDICTOR_T2', max_length=25),
17
+ ),
18
+ ]
@@ -12,8 +12,8 @@ class PredictorModel(models.Model):
12
12
  class Protocol(models.TextChoices):
13
13
  TYPE1 = "IRIE_PREDICTOR_V1"
14
14
  TYPE2 = "IRIE_PREDICTOR_T2"
15
- TYPE3 = "IRIE_PREDICTOR_T3"
16
- TYPE4 = "IRIE_PREDICTOR_T4"
15
+ # TYPE3 = "IRIE_PREDICTOR_T3"
16
+ # TYPE4 = "IRIE_PREDICTOR_T4"
17
17
 
18
18
  id = models.BigAutoField(primary_key=True)
19
19
  name = models.CharField(max_length=35)
@@ -26,8 +26,8 @@ class PredictorModel(models.Model):
26
26
 
27
27
  entry_point = models.JSONField(default=list)
28
28
  config = models.JSONField(default=dict)
29
- config_file = models.FileField(upload_to='predictor_configs/', null=True, blank=True)
30
- render_file = models.FileField(upload_to='renderings/', null=True, blank=True)
29
+ config_file = models.FileField(upload_to="predictor_configs/", null=True, blank=True)
30
+ render_file = models.FileField(upload_to="renderings/", null=True, blank=True)
31
31
  metrics = models.JSONField(default=list)
32
32
 
33
33
  active = models.BooleanField()
@@ -17,9 +17,9 @@ from .runners.opensees import OpenSeesRunner
17
17
  from .runners.ssid import SystemIdRunner
18
18
 
19
19
  PREDICTOR_TYPES : Dict[str, Runner] = {
20
- # "IRIE_PREDICTOR_V1" : PredictorType1,
20
+ "IRIE_PREDICTOR_V1" : OpenSeesRunner,
21
21
  "IRIE_PREDICTOR_T2" : SystemIdRunner,
22
- "" : SystemIdRunner,
22
+ # "" : SystemIdRunner,
23
23
  # "IRIE_PREDICTOR_T3" : PredictorType3,
24
24
  "IRIE_PREDICTOR_T4" : OpenSeesRunner,
25
25
  }
@@ -1,3 +1,8 @@
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
1
6
  from pathlib import Path
2
7
  from typing import NewType
3
8
  from abc import abstractmethod
@@ -47,11 +47,10 @@ class HazusRunner(Runner):
47
47
  platform = "mdof"
48
48
 
49
49
  schema = {
50
- "title": "System ID",
51
- "name": "P2",
50
+ "title": "Hazus",
52
51
  "type": "object",
53
52
  "required": [
54
- "name",
53
+ "soil_type",
55
54
  "decimation",
56
55
  "method",
57
56
  "channels"
@@ -60,26 +59,12 @@ class HazusRunner(Runner):
60
59
  "name": {
61
60
  "type": "string",
62
61
  "title": "Name",
63
- "description": "Predictor name",
64
- "minLength": 2,
65
- # "default": "S1"
62
+ "default": "Hazus"
66
63
  },
67
- "method": {
64
+ "soil_type": {
68
65
  "type": "string",
69
- "title": "Method",
70
- "enum": ["Fourier Spectrum","Response Spectrum","SRIM","OKID"]
71
- },
72
- "damping": {
73
- "type": "number",
74
- "title": "Damping",
75
- "default": 0.02,
76
- "options": {"dependencies": {"method": ["Response Spectrum"]}},
77
- "description": "assumed damping ratio"
78
- },
79
- "channel": {
80
- "type": "integer",
81
- "title": "Channel",
82
- "description": ""
66
+ "title": "Soil type",
67
+ "enum": ["A","B","C","D"]
83
68
  }
84
69
  }
85
70
  }
@@ -162,6 +147,7 @@ def hazus_fragility(
162
147
 
163
148
  return dict(sa_range=sa_range, curves=curves)
164
149
 
150
+
165
151
  def hazus_prediction(
166
152
  nbi_data: dict,
167
153
  soil_type: str = "B", # Soil classification ("A", "B", "C", "D", "E")
@@ -324,11 +310,11 @@ def modify_ground_motion(soil_type: str, pga: float, sa_03s: float, sa_10s: floa
324
310
  ],
325
311
  "FA": [
326
312
  (0.25, {"A": 0.8, "B": 0.9, "C": 1.3, "D": 1.6, "E": 2.4}),
327
- (0.5, {"A": 0.8, "B": 0.9, "C": 1.3, "D": 1.4, "E": 1.7}),
313
+ (0.50, {"A": 0.8, "B": 0.9, "C": 1.3, "D": 1.4, "E": 1.7}),
328
314
  (0.75, {"A": 0.8, "B": 0.9, "C": 1.2, "D": 1.2, "E": 1.3}),
329
- (1.0, {"A": 0.8, "B": 0.9, "C": 1.2, "D": 1.1, "E": 1.1}),
315
+ (1.00, {"A": 0.8, "B": 0.9, "C": 1.2, "D": 1.1, "E": 1.1}),
330
316
  (1.25, {"A": 0.8, "B": 0.9, "C": 1.2, "D": 1.0, "E": 0.9}),
331
- (1.5, {"A": 0.8, "B": 0.9, "C": 1.2, "D": 1.0, "E": 0.8}),
317
+ (1.50, {"A": 0.8, "B": 0.9, "C": 1.2, "D": 1.0, "E": 0.8}),
332
318
  ],
333
319
  "FV": [
334
320
  (0.1, {"A": 0.8, "B": 0.8, "C": 1.5, "D": 2.4, "E": 4.2}),
@@ -420,11 +406,11 @@ def _get_i_shape(bridge_type: int) -> int:
420
406
  """
421
407
  # Mapping of bridge types to I_shape values from Table 7-1
422
408
  i_shape_mapping = {
423
- 1: 0, 2: 0, 3: 1, 4: 1, 5: 0, 6: 0,
424
- 7: 0, 8: 0, 9: 0, 10: 1, 11: 1, 12: 0,
425
- 13: 0, 14: 0, 15: 1, 16: 1, 17: 0, 18: 0,
426
- 19: 0, 20: 0, 21: 0, 22: 1, 23: 1, 24: 0,
427
- 25: 0, 26: 1, 27: 1,
409
+ 1 : 0, 2 : 0, 3 : 1, 4 : 1, 5 : 0, 6 : 0,
410
+ 7 : 0, 8 : 0, 9 : 0, 10: 1, 11: 1, 12: 0,
411
+ 13: 0, 14: 0, 15: 1, 16: 1, 17: 0, 18: 0,
412
+ 19: 0, 20: 0, 21: 0, 22: 1, 23: 1, 24: 0,
413
+ 25: 0, 26: 1, 27: 1,
428
414
  }
429
415
 
430
416
  if bridge_type not in i_shape_mapping:
@@ -537,38 +523,37 @@ def _hazus_type(properties: dict) -> int:
537
523
  HWB5 101 106 Non-CA < 1990 N/A N/A N/A EQ1 0 Conventional Multi-Col. Bent, Simple Support - Concrete
538
524
  HWB6 101 106 CA < 1975 N/A N/A N/A EQ1 0 Conventional Multi-Col. Bent, Simple Support - Concrete
539
525
  HWB7 101 106 Non-CA >= 1990 N/A N/A N/A EQ1 0 Seismic Multi-Col. Bent, Simple Support - Concrete
540
- 101 106 CA >= 1975 N/A N/A N/A EQ1 0 Seismic Multi-Col. Bent, Simple Support - Concrete
526
+ 101 106 CA >= 1975 N/A N/A N/A EQ1 0 Seismic Multi-Col. Bent, Simple Support - Concrete
541
527
  HWB8 205 206 CA < 1975 N/A N/A N/A EQ2 0 Conventional Single Col., Box Girder - Continuous Concrete
542
528
  HWB9 205 206 CA >= 1975 N/A N/A N/A EQ3 0 Seismic Single Col., Box Girder - Continuous Concrete
543
529
  HWB10 201 206 Non-CA < 1990 N/A N/A N/A EQ2 1 Conventional Continuous Concrete
544
- 201 206 CA < 1975 N/A N/A N/A EQ2 1 Conventional Continuous Concrete
530
+ 201 206 CA < 1975 N/A N/A N/A EQ2 1 Conventional Continuous Concrete
545
531
  HWB11 201 206 Non-CA >= 1990 N/A N/A N/A EQ3 1 Seismic Continuous Concrete
546
- 201 206 CA >= 1975 N/A N/A N/A EQ3 1 Seismic Continuous Concrete
532
+ 201 206 CA >= 1975 N/A N/A N/A EQ3 1 Seismic Continuous Concrete
547
533
  HWB12 301 306 Non-CA < 1990 N/A N/A No EQ4 0 Conventional Multi-Col. Bent, Simple Support - Steel
548
534
  HWB13 301 306 CA < 1975 N/A N/A No EQ4 0 Conventional Multi-Col. Bent, Simple Support - Steel
549
535
  HWB14 301 306 Non-CA >= 1990 N/A N/A N/A EQ1 0 Seismic Multi-Col. Bent, Simple Support - Steel
550
- 301 306 CA >= 1975 N/A N/A N/A EQ1 0 Seismic Multi-Col. Bent, Simple Support - Steel
536
+ 301 306 CA >= 1975 N/A N/A N/A EQ1 0 Seismic Multi-Col. Bent, Simple Support - Steel
551
537
  HWB15 402 410 Non-CA < 1990 N/A N/A No EQ5 1 Conventional Continuous Steel
552
- 402 410 CA < 1975 N/A N/A No EQ5 1 Conventional Continuous Steel
538
+ 402 410 CA < 1975 N/A N/A No EQ5 1 Conventional Continuous Steel
553
539
  HWB16 402 410 Non-CA >= 1990 N/A N/A N/A EQ3 1 Seismic Continuous Steel
554
- 402 410 CA >= 1975 N/A N/A N/A EQ3 1 Seismic Continuous Steel
540
+ 402 410 CA >= 1975 N/A N/A N/A EQ3 1 Seismic Continuous Steel
555
541
  HWB17 501 506 Non-CA < 1990 N/A N/A N/A EQ1 0 Conventional Multi-Col. Bent, Simple Support - Prestressed Concrete
556
542
  HWB18 501 506 CA < 1975 N/A N/A N/A EQ1 0 Conventional Multi-Col. Bent, Simple Support - Prestressed Concrete
557
543
  HWB19 501 506 Non-CA >= 1990 N/A N/A N/A EQ1 0 Seismic Multi-Col. Bent, Simple Support - Prestressed Concrete
558
- 501 506 CA >= 1975 N/A N/A N/A EQ1 0 Seismic Multi-Col. Bent, Simple Support - Prestressed Concrete
544
+ 501 506 CA >= 1975 N/A N/A N/A EQ1 0 Seismic Multi-Col. Bent, Simple Support - Prestressed Concrete
559
545
  HWB20 605 606 CA < 1975 N/A N/A N/A EQ2 0 Conventional Single Col., Box Girder - Prestressed Continuous Concrete
560
546
  HWB21 605 606 CA >= 1975 N/A N/A N/A EQ3 0 Seismic Single Col., Box Girder - Prestressed Continuous Concrete
561
547
  HWB22 601 607 Non-CA < 1990 N/A N/A N/A EQ2 1 Conventional Continuous Concrete
562
- 601 607 CA < 1975 N/A N/A N/A EQ2 1 Conventional Continuous Concrete
548
+ 601 607 CA < 1975 N/A N/A N/A EQ2 1 Conventional Continuous Concrete
563
549
  HWB23 601 607 Non-CA >= 1990 N/A N/A N/A EQ3 1 Seismic Continuous Concrete
564
- 601 607 CA >= 1975 N/A N/A N/A EQ3 1 Seismic Continuous Concrete
550
+ 601 607 CA >= 1975 N/A N/A N/A EQ3 1 Seismic Continuous Concrete
565
551
  HWB24 301 306 Non-CA < 1990 N/A N/A Yes EQ6 0 Conventional Multi-Col. Bent, Simple Support - Steel
566
552
  HWB25 301 306 CA < 1975 N/A N/A Yes EQ6 0 Conventional Multi-Col. Bent, Simple Support - Steel
567
553
  HWB26 402 410 Non-CA < 1990 N/A N/A Yes EQ7 1 Conventional Continuous Steel
568
554
  HWB27 402 410 CA < 1975 N/A N/A Yes EQ7 1 Conventional Continuous Steel
569
555
  HWB28 N/A N/A All other bridges that are not classified
570
556
 
571
-
572
557
  --------------------------
573
558
 
574
559
  Table 9-7: Hazus Highway System Classification
@@ -69,7 +69,7 @@ class OpenSeesRunner(Runner):
69
69
  predictor.name = data.pop("name")
70
70
  predictor.config = data
71
71
  predictor.asset = asset
72
- predictor.protocol = "IRIE_PREDICTOR_T4"
72
+ predictor.protocol = "IRIE_PREDICTOR_V1"
73
73
  predictor.active = True
74
74
  return predictor
75
75
 
@@ -1,3 +1,8 @@
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
1
6
  from irie.apps.events.models import EventRecord
2
7
  from irie.apps.prediction.runners import Runner, RunID
3
8
  from irie.apps.prediction.models import PredictorModel
@@ -47,7 +52,6 @@ class SystemIdRunner(Runner):
47
52
  "title": "Name",
48
53
  "description": "Predictor name",
49
54
  "minLength": 2,
50
- # "default": "S1"
51
55
  },
52
56
  "method": {
53
57
  "type": "string",
@@ -9,7 +9,6 @@ def display_predictor(predictor):
9
9
  out = out + predictor.description
10
10
  out = out + "\n".join((out, '<table class="table align-items-center"><tbody>'))
11
11
 
12
- #for key, val in predictor.conf.get("config", {}).items():
13
12
  for key, val in predictor.conf.items():
14
13
  name = predictor.schema["properties"].get(key, {"name": key}).get("name", key)
15
14
  out = out + f"<tr><td>{name}</td><td><code>{val}</code></td><tr>"
@@ -21,7 +21,7 @@ from django.shortcuts import render
21
21
 
22
22
  from irie.apps.site.view_utils import raise404
23
23
  from irie.apps.inventory.models import Asset
24
- from irie.apps.prediction.predictor import PREDICTOR_TYPES, OpenSeesRunner
24
+ from irie.apps.prediction.predictor import PREDICTOR_TYPES
25
25
  from irie.apps.prediction.models import PredictorModel
26
26
  from .forms import PredictorForm
27
27
 
@@ -103,9 +103,8 @@ def predictor_upload(request, calid):
103
103
 
104
104
  html_template = loader.get_template("prediction/predictor-upload.html")
105
105
 
106
- if request.method == 'POST':
107
- form = PredictorForm(request.POST, request.FILES) # include request.FILES
108
- # if form.is_valid():
106
+ if request.method == "POST":
107
+ form = PredictorForm(request.POST, request.FILES)
109
108
  asset = Asset.objects.get(calid=calid)
110
109
 
111
110
  # Save the predictor
@@ -119,12 +118,12 @@ def predictor_upload(request, calid):
119
118
 
120
119
 
121
120
  try:
122
- return render(request, 'prediction/predictor-upload.html', {"form": form})
121
+ return render(request, "prediction/predictor-upload.html", {"form": form})
123
122
 
124
123
  except Exception as e:
125
124
  if "DEBUG" in os.environ and os.environ["DEBUG"]:
126
125
  raise e
127
126
  html_template = loader.get_template("site/page-500.html")
128
- return HttpResponse(html_template.render(context, request))
127
+ return HttpResponse(html_template.render({}, request))
129
128
 
130
129
 
@@ -25,8 +25,6 @@ from rest_framework.permissions import IsAuthenticated
25
25
 
26
26
  from .models import Event
27
27
  from irie.apps.inventory.models import Asset
28
- # from irie.apps.evaluation.evaluation import (run_evaluation,
29
- # add_evaluation)
30
28
  from irie.apps.evaluation.models import Evaluation
31
29
  import quakeio
32
30
 
@@ -40,7 +38,6 @@ def serialize_event(event):
40
38
  else:
41
39
  serialized["event_file"] = None
42
40
 
43
- #serialized["data_str"] = json.loads(event.data_str) if event.data_str else {}
44
41
  return serialized
45
42
 
46
43
 
@@ -116,7 +113,6 @@ def save_event(request, event, success_status):
116
113
  event.cesmd = "CE" + event.motion_data["station_number"]
117
114
  event.asset = Asset.objects.get(cesmd="CE" + event.motion_data["station_number"])
118
115
  event.event_file = event_file
119
- # if event_file is not None:
120
116
 
121
117
  event.save()
122
118
 
@@ -7,7 +7,7 @@ def raise404(request, context={}, error=None):
7
7
  if error is not None and "DEBUG" in os.environ and os.environ["DEBUG"]:
8
8
  raise error
9
9
  if "segment" in context:
10
- html_template = loader.get_template("home/page-404-sidebar.html")
10
+ html_template = loader.get_template("site/page-404-sidebar.html")
11
11
  else:
12
- html_template = loader.get_template("home/page-404.html")
12
+ html_template = loader.get_template("site/page-404.html")
13
13
  return HttpResponse(html_template.render(context, request))
irie/apps/sitemaps.py CHANGED
@@ -1,13 +1,18 @@
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
1
6
  from django.contrib.sitemaps import Sitemap
2
7
  from django.urls import reverse
3
8
 
4
9
  class IrieSitemap(Sitemap):
5
10
  priority = 0.9
6
- changefreq = 'weekly'
11
+ changefreq = "weekly"
7
12
 
8
13
  def items(self):
9
14
  # Return the names of your static views
10
- return ['home', 'about', 'dashboard', 'asset_table']
15
+ return ["home", "about", "dashboard", "asset_table"]
11
16
 
12
17
  def location(self, item):
13
18
  return reverse(item)
@@ -205,9 +205,9 @@
205
205
  </details>
206
206
 
207
207
 
208
- {% if asset.cesmd %}
208
+ {% if asset.cesmd or hazus %}
209
209
  <details id="event-table" open><summary><h3>Health History</h3></summary>
210
-
210
+ {% if asset.cesmd %}
211
211
  <div class="row">
212
212
  <div class="col-8 mb-4">
213
213
  <!-- <div class="card bg-white-100 border-0 shadow table-wrapper table-responsive"> -->
@@ -215,6 +215,7 @@
215
215
  <!-- </div> -->
216
216
  </div>
217
217
  </div>
218
+ {% endif %}
218
219
 
219
220
  {# Hazus #}
220
221
  <div class="row">
irie/core/settings.py CHANGED
@@ -222,3 +222,9 @@ LOGGING = {
222
222
  "level": "DEBUG",
223
223
  },
224
224
  }
225
+
226
+ if not DEBUG:
227
+ SECURE_SSL_REDIRECT = True
228
+ # Specific to Heroku:
229
+ SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
230
+
irie/init/__main__.py CHANGED
@@ -7,7 +7,13 @@ from django.core.management import execute_from_command_line, call_command
7
7
 
8
8
  cd = pathlib.Path(__file__).parents[0]
9
9
 
10
- def init(settings):
10
+ def init(argv):
11
+ settings = argv[1]
12
+
13
+ if len(argv) > 2:
14
+ actions = argv[2]
15
+ else:
16
+ actions = "magcp"
11
17
 
12
18
  os.environ.setdefault('DJANGO_SETTINGS_MODULE', settings)
13
19
 
@@ -16,21 +22,25 @@ def init(settings):
16
22
  "migrate"
17
23
  ])
18
24
 
19
- call_command("makemigrations")
20
-
21
- call_command("migrate")
25
+ if "m" in actions:
26
+ call_command("makemigrations")
27
+ call_command("migrate")
22
28
 
23
- # call_command("init_assets")
29
+ if "a" in actions:
30
+ call_command("init_assets")
24
31
 
25
- call_command("init_cesmd")
32
+ if "g" in actions:
33
+ call_command("init_cesmd")
26
34
 
27
- # call_command("init_corridors")
35
+ if "c" in actions:
36
+ call_command("init_corridors")
28
37
 
29
- # call_command("init_predictors")
38
+ if "p" in actions:
39
+ call_command("init_predictors")
30
40
 
31
41
 
32
42
 
33
43
 
34
44
  if __name__ == "__main__":
35
- init(sys.argv[1])
45
+ init(sys.argv)
36
46
 
irie/init/bridges.py CHANGED
@@ -1,3 +1,8 @@
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
1
6
  # - clean names
2
7
  # - add descriptions
3
8
  import sys
@@ -16,7 +21,7 @@ PYTHON = sys.executable
16
21
 
17
22
  CE58658 = {
18
23
  "channels": {
19
- # channel node dof rotationangle locationname
24
+ # channel node dof rotation angle location name
20
25
  "1": (1031, 3, 37.66*pi/180, "abutment_1"),
21
26
  "2": (1031, 2, 37.66*pi/180, "abutment_1"),
22
27
  "3": (1031, 1, 37.66*pi/180, "abutment_1"),
@@ -64,9 +69,12 @@ CE58658 = {
64
69
  {'key': 12020, 'strain': True, 'label': 'Bent 12 South'},
65
70
  {'key': 12030, 'strain': True, 'label': 'Bent 12 Center'},
66
71
  {'key': 13010, 'strain': True, 'label': 'Bent 13 South, NE Line'},
67
- {'key': 13020, 'strain': True, 'label': 'Bent 13 North, NE Line'}, {'key': 13040, 'strain': False, 'label': 'Bent 13, NR Line'},
68
- {'key': 14010, 'strain': True, 'label': 'Bent 14 South, NE Line'}, {'key': 14020, 'strain': True, 'label': 'Bent 14 North, NE Line'},
69
- {'key': 14030, 'strain': True, 'label': 'Bent 14 Center, NE Line'}, {'key': 14040, 'strain': False, 'label': 'Bent 14, NR Line'}
72
+ {'key': 13020, 'strain': True, 'label': 'Bent 13 North, NE Line'},
73
+ {'key': 13040, 'strain': False, 'label': 'Bent 13, NR Line'},
74
+ {'key': 14010, 'strain': True, 'label': 'Bent 14 South, NE Line'},
75
+ {'key': 14020, 'strain': True, 'label': 'Bent 14 North, NE Line'},
76
+ {'key': 14030, 'strain': True, 'label': 'Bent 14 Center, NE Line'},
77
+ {'key': 14040, 'strain': False, 'label': 'Bent 14, NR Line'}
70
78
  ],
71
79
  "bents": [
72
80
  {'node': 203, 'record': True, 'label': 'Bent 2 North'},
@@ -202,9 +210,8 @@ BRIDGES = {
202
210
  },
203
211
  ]
204
212
  },
205
- "CE24704": {
206
- "cesmd": "CE24704",
207
- "calid": "53-2791 (07-LA-10-8.8)",
213
+ "CE24704": { # La Cienega
214
+ "cesmd": "CE24704",
208
215
  "name": "Los Angeles - I10/La Cienega Bridge",
209
216
  "accelerometers": {
210
217
  "ground_channels": [9, 10, 11],
@@ -233,7 +240,7 @@ BRIDGES = {
233
240
  },
234
241
  ]
235
242
  },
236
- "CE24706": {
243
+ "CE24706": { # Palmdale
237
244
  "cesmd": "CE24706",
238
245
  "calid": "53-1794 (07-LA-14-R57.37)",
239
246
  "name": "Palmdale - Hwy 14/Barrel Springs Bridge",
@@ -264,7 +271,7 @@ BRIDGES = {
264
271
  }
265
272
  ]
266
273
  },
267
- "CE24775": {
274
+ "CE24775": { # Grapevine
268
275
  "cesmd": "CE24775",
269
276
  "calid": "50-0271 (06-KER-5-4.1)",
270
277
  "name": "Grapevine - I5/Lebec Rd Bridge",
@@ -299,7 +306,7 @@ BRIDGES = {
299
306
  }
300
307
  ]
301
308
  },
302
- "CE47315": {
309
+ "CE47315": { # San Juan Bautista
303
310
  "cesmd": "CE47315",
304
311
  "calid": "43-0031E (05-SBT-156-0.00)",
305
312
  "name": "San Juan Bautista - Hwy 101/156 Overpass",
@@ -334,7 +341,7 @@ BRIDGES = {
334
341
  # }
335
342
  ]
336
343
  },
337
- "CE68185": { # (Alfred Zampa Memorial Bridge) (Carquinez West, Southbound, Suspension)
344
+ "CE68185": { # (Carquinez West, Southbound, Suspension) (Alfred Zampa Memorial Bridge)
338
345
  "cesmd": "CE68185",
339
346
  "calid": "28-0352L (04-SOL-80-0.01)",
340
347
  "name": "Vallejo - Carquinez/I80 West Bridge",
@@ -428,7 +435,7 @@ BRIDGES = {
428
435
  }
429
436
  ]
430
437
  },
431
- "CE79421": {
438
+ "CE79421": { # Leggett
432
439
  "cesmd": "CE79421",
433
440
  "calid": "10-0299 (01-MEN-101-160.03)",
434
441
  "name": "Leggett - Hwy 101/Confusion Hill Bridge",
@@ -487,7 +494,7 @@ BRIDGES = {
487
494
  }
488
495
  ]
489
496
  },
490
- "CE89708": {
497
+ "CE89708": { # Arcata
491
498
  "cesmd": "CE89708",
492
499
  "calid": "04-0170 (01-HUM-101-R92.99)",
493
500
  "name": "Arcata - Hwy 101/Murray Road Bridge",
@@ -604,7 +611,7 @@ BRIDGES = {
604
611
  }
605
612
  ]
606
613
  },
607
- "CE89973": {
614
+ "CE89973": { # rio-dell eel river
608
615
  "cesmd": "CE89973",
609
616
  "calid": "04-0016R (01-HUM-101-53.9)",
610
617
  "Location": "40.5093 N, 124.1196 W",
@@ -667,7 +674,7 @@ BRIDGES = {
667
674
  }
668
675
  ]
669
676
  },
670
- "CE24694": { # sylmar
677
+ "CE24694": { # Sylmar
671
678
  "cesmd": "CE24694",
672
679
  "calid": "53-2795F",
673
680
  "Location": "34.3349 N, 118.5084 W",
@@ -706,7 +713,7 @@ BRIDGES = {
706
713
  }
707
714
  ]
708
715
  },
709
- "CE13795": { # capistrano
716
+ "CE13795": { # Capistrano
710
717
  "cesmd": "CE13795",
711
718
  "calid": "55-0225 (07-ORA-5-6.62)",
712
719
  "name": "Capistrano Beach - I5/Via Calif. Bridge",
@@ -994,7 +1001,7 @@ BRIDGES = {
994
1001
  {
995
1002
  "name": f"OpenSees",
996
1003
  "metrics": [*LINEAR_METRICS, *NONLINEAR_METRICS],
997
- "protocol": "IRIE_PREDICTOR_T4",
1004
+ "protocol": "IRIE_PREDICTOR_V1",
998
1005
  "entry_point": [PYTHON, "-mCE58658", f"Procedures/nonlinear.tcl"],
999
1006
  "platform": "OpenSees",
1000
1007
  "active": False,
@@ -1043,27 +1050,8 @@ BRIDGES = {
1043
1050
  },
1044
1051
  ]
1045
1052
  },
1046
- # "CE68682": {
1047
- # "cesmd": "CE68682",
1048
- # "calid": "28-0153 (04-CC-68-25.04)"},
1049
-
1050
- # "CE58600": {
1051
- # "cesmd": "CE58600",
1052
- # "calid": "34-0006 (04-SF-80-13.2)",
1053
- # "name": "Oakland - SF Bay Bridge/East: SAS",
1054
- # "predictors": [
1055
- # {
1056
- # "name": "SRIM_tran", "description": "Transverse configuration.", "protocol": "", "metrics": ["SPECTRAL_SHIFT_IDENTIFICATION"], "entry_point": [PYTHON, "-m", "mdof", "srim"],
1057
- # "config": {
1058
- # "--decimate", SS_DEC, "--ss-size", 12, "--arx-order", 190,
1059
- # "--inputs", "[4,28,71]", "--outputs", "[9,33,51,71]"
1060
- # ],
1061
- # }
1062
- # ]
1063
- # },
1064
1053
  # "CE58700": {
1065
- # "cesmd": "CE58700",
1066
- # "calid": "CE58700",
1054
+ # "cesmd": "CE58700",
1067
1055
  # "name": "San Francisco - Golden Gate Bridge",
1068
1056
  # "predictors": [
1069
1057
  # {
@@ -1095,8 +1083,7 @@ BRIDGES = {
1095
1083
  # ]
1096
1084
  # },
1097
1085
  # "CE58601": {
1098
- # "cesmd": "CE58601",
1099
- # "calid": "34-0006 (04-SF-80-8.7)",
1086
+ # "cesmd": "CE58601",
1100
1087
  # "name": "Oakland - SF Bay Bridge/East: Skyway",
1101
1088
  # "predictors": [
1102
1089
  # {
irie/init/calid.py CHANGED
@@ -1,34 +1,115 @@
1
-
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
2
6
  CESMD = {
3
- # "CE89324": {},
4
- # "CE58700": "CE58700", # CE58700
5
- "04-0236": "CE89324", # painter
6
- "04-0228": "CE89686", # eureka-samoa
7
- "10-0299": "CE79421", # CE79421
8
- "23-0015R": "CE68184", # carquinez-east-northbound
9
- "28-0352L": "CE68185", # carquinez-west-southbound
10
- "28-0153": "CE68682", # CE68682
11
- "33-0214L": "CE58658", # hayward
12
- "34-0003": "CE58632", # CE58632
13
- "34-0006": "CE58600", # CE58600
14
- "34-0006": "CE58601", # CE58601
15
- "04-0016R": "CE89973", # CE89973
16
- "04-0170": "CE89708", # CE89708
17
- "04-0229": "CE89735", # CE89735
18
- "04-0230": "CE89736", # CE89736
19
-
20
- "43-0031E": "CE47315", # CE47315
21
- "47-0048": "CE54730", # crowley
22
- "50-0271": "CE24775", # CE24775
23
- "50-0340": "CE33742", # ridgecrest
24
- "53-1471": "CE14406", # CE14406
25
- "53-1794": "CE24706", # CE24706
26
- "53-2791": "CE24704", # CE24704
27
- "53-2795F": "CE24694", # sylmar
28
- "54-0823G": "CE23631", # bernardino
29
- "55-0225": "CE13795", # capistrano
30
- "56-0586G": "CE13705", # CE13705
31
- "58-0215": "CE01336", # meloland
7
+ "56-0586G": "CE13705", # "08-RIV-15-R41.57", "Corona - I15/Hwy91 Interchange Bridge"
8
+ "53-1471": "CE14406", # "07-LA-47-0.86", "Vincent Thomas Bridge"
9
+ "53-2791": "CE24704", # "07-LA-10-8.8", "La Cienega Bridge"
10
+ "53-1794": "CE24706", # "07-LA-14-R57.37", "Palmdale - Hwy 14/Barrel Springs Bridge"
11
+ "50-0271": "CE24775", # "06-KER-5-4.1", "Grapevine - I5/Lebec Rd Bridge"
12
+ "43-0031E": "CE47315", # "05-SBT-156-0.00", "San Juan Bautista - Hwy 101/156 Overpass"
13
+ "28-0352L": "CE68185", # "04-SOL-80-0.01", "Vallejo - Carquinez/I80 West Bridge"
14
+ "23-0015R": "CE68184", # "04-SOL-80-12.8", "Vallejo - Carquinez/I80 East Bridge"
15
+ "10-0299": "CE79421", # "01-MEN-101-160.03", "Confusion Hill Bridge (Leggett, Hwy 101)"
16
+ "04-0170": "CE89708", # "01-HUM-101-R92.99", "Arcata - Hwy 101/Murray Road Bridge"
17
+ "04-0229": "CE89735", # "01-HUM-255-0.7", "Eureka - Middle Channel Bridge"
18
+ "04-0230": "CE89736", # "01-HUM-255-0.2", "Eureka - Eureka Channel Bridge"
19
+ "04-0016R": "CE89973", # "01-HUM-101-53.9", "Rio Dell - Hwy 101/Eel River Bridge"
20
+ "50-0340": "CE33742", # "09-KER-395-R25.08", "Ridgecrest - Hwy 395/Brown Road Bridge"
21
+ "53-2795F": "CE24694", # "07-LA-5-24.5", "Sylmar - I5/14 Interchange Bridge"
22
+ "55-0225": "CE13795", # "07-ORA-5-6.62", "Capistrano Beach - I5/Via Calif. Bridge"
23
+
24
+ "58-0215": "CE01336", # "El Centro - Hwy8/Meloland Overpass [Abandoned]"
25
+ "47-0048": "CE54730", # "Lake Crowley - Hwy 395 Bridge"
26
+ "04-0228": "CE89686", # "Eureka - Samoa Channel Bridge"
27
+ "04-0236": "CE89324", # "Rio Dell - Hwy 101/Painter St. Overpass"
28
+ "54-0823G": "CE23631", # "San Bernardino - I10/215 Interchange Br"
29
+ "33-0214L": "CE58658", # "Hayward - Hwy 580/238 Interchange Bridge"
30
+
31
+ #-------------------------------------
32
+
33
+ "34-0006": "CE58600", # "Oakland - SF Bay Bridge/East: SAS"
34
+ # "34-0006": "CE58601", # "04-SF-80-8.7", "Oakland - SF Bay Bridge/East: Skyway"
35
+ # "34-0006": "CE58602", # "Oakland - SF Bay Bridge/East: YBITS"
36
+ # "34-0006": "CE58603", # "Oakland - SF Bay Bridge/East: E Approach"
37
+ "34-0003": "CE58632", # "04-SF-80-5.6", "San Francisco - Bay Bridge/West"
38
+
39
+ "35-0054": "CE58677", # "San Mateo Bridge"
40
+ # "35-0054": "CE58799", # "San Mateo Bridge Trestle"
41
+ "53-3032": "CE14709", # "Long Beach - Schuyler Heim Bridge"
42
+ "51-0104": "CE25749", # "Santa Barbara - San Roque Canyon Bridge"
43
+ "44-0298": "CE47646", # "Big Sur - New Hwy 1/Pfeiffer Cnyn Bridge"
44
+ "44-0060": "CE47729", # "Big Sur - Hwy 1/Pfeiffer Canyon Bridge [Demolished]"
45
+ # "37-0470L": "CE57748", # "Santa Clara - Hwy 237/Alviso Overpass"
46
+ # "37-0470K": "CE57748", # "Santa Clara - Hwy 237/Alviso Overpass"
47
+ "27-0013": "CE68778", # "Novato - Hwy37/Petaluma River Bridge"
48
+ "17-0058L": "CE76741", # "Truckee - I80/Truckee River Bridge"
49
+ "06-0210": "CE88638", # "Shasta Lake - I5/Antlers Bridge"
50
+ "54-0474F": "CE12666", # "North Palm Springs - I10/Hwy 62 Bridge"
51
+ "53-1185": "CE14690", # "Los Angeles - I405/San Gabriel River Br"
52
+ "50-0402R": "CE34715", # "Mojave - Hwy 14/Railroad Bridge"
53
+ "33-0347S": "CE58656", # "Oakland - Hwy 580/13 Interchange Bridge"
54
+ "33-0302H": "CE58657", # "Oakland - Hwy 580/24 Interchange Bridge"
55
+ # "35-0285": "CE58678", # "Belmont - I280 Pedestrian Bridge"
56
+
57
+ "01-0020": "CE99190", # "01-DN-101-36.06", "Crescent City - Hwy 101/Smith Rvr Bridge"
58
+ "01-0028": "CE99710", # "01-DN-101-R4.04", "Klamath - Hwy 101/Klamath River Bridge"
59
+ "10-0081": "CE69760", # "01-MEN-101-R9.53", "Hopland - Hwy 101/Railroad Bridge"
60
+ "10-0134": "CE79683", # "01-MEN-1-43.00", "Albion - Hwy 1/Salmon Creek Bridge"
61
+ "10-0031": "CE79757", # "01-MEN-271-5.2", "Leggett - Cedar Creek Bridge"
62
+ "10-0030": "CE79761", # "01-MEN-271-4.9", "Leggett - Big Dann Bridge"
63
+ "10-0176": "CE79296", # "01-MEN-1-96.9", "Fort Bragg - Hwy 1/Noyo River Bridge"
64
+
65
+ "06-0021": "CE88194", # "02-SHA-5-R28.14", "Redding - I5/Shasta Lake Bridge"
66
+
67
+ "24-0045": "CE67972", # "03-YOL-80-7.25", "West Sacramento - I80/Yolo Causeway"
68
+
69
+ "35-0038": "CE58596", # "04-SM-84-29.0", "Dumbarton Bridge"
70
+ "35-0130": "CE58536", # "04-SM-101-23.7", "South San Francisco - Sierra Pt Overpass"
71
+ "35-0031": "CE58754", # "04-SM-1-20.82", "Half Moon Bay - Hwy 1/Tunitas Cr. Bridge"
72
+ "28-0009": "CE67771", # "04-CC-160-0.82", "Antioch - San Joaquin River Bridge"
73
+ "28-0153": "CE68682", # "04-CC-68-25.04", "Benicia - Martinez"
74
+ "28-0153R": "CE68322", # "04-CC,Sol-680-L0.0", "Benicia - Martinez/I680 East Bridge"
75
+ "28-0100": "CE58258", # "04-CC,MRN-580-6.1/7.8,0.0/2.6", "Richmond - San Rafael Bridge"
76
+ "36-0088R": "CE47707", # "04-SCR-1-R1.59", "Watsonville - Hwy1/Struve Slough Bridge"
77
+ "20-0195": "CE69671", # "04-SON-1-19.72", "Jenner - Hwy 1/Russian River Bridge"
78
+ "20-0235": "CE68717", # "04-SON-101-13.88", "Rohnert Park - Hwy 101 Bridge"
79
+
80
+ "51-0090": "CE26917", # "05-SB-01-R6.78", "Lompoc - Hwy 1/El Jaro Creek Bridge"
81
+ "49-0036": "CE36668", # "05-SLO-46-54.77", "Parkfield - Hwy 46/Cholame Creek Bridge"
82
+ "49-0046": "CE37728", # "05-SLO-52.92", "San Simeon - Hwy 1/San Simeon Crk Bridge"
83
+ "51-0066": "CE25758", # "05-SB-166-R69.94", "Cuyama - Hwy 166/Cuyama River Bridge"
84
+
85
+ "53-1630G": "CE24670", # "07-LS-405-29.43", "Los Angeles - I10/405 Interchange Bridge"
86
+ "53-2318G": "CE24689", # "07-LA-134-R13.25", "Pasadena - I210/Hwy134 Interchnge Bridge"
87
+ "52-0449": "CE25324", # "07-VEN-101-37.21", "Oxnard - Hwy 101/Santa Clara Rvr Bridge"
88
+ "52-0331L": "CE24738", # "07-VEN-023/118-21.0", "Moorpark - Hwy 23/118 Bridge"
89
+ "52-0214L": "CE25725", # "07-VEN-101-R26", "Ventura - Hwy101/Telephone Rd. Bridge"
90
+
91
+ "54-1177": "CE22503", # "08-SBd-18,38-44.4", "Big Bear Lake - Hwys 18 & 38 Bridge"
92
+ "56-0452F": "CE12649", # "08-RIV-10-6.67", "Beaumont - I10/60 Interchange Bridge"
93
+ "54-0783R": "CE23650", # "08-SBD-15-16.35", "Devore - I15/215 Interchange Bridge"
94
+
95
+ "23-0064": "CE68065", # "10-SOL-37-R7.39", "Vallejo - Hwy 37/Napa River Bridge"
96
+
97
+ "57-0520L": "CE03731", # "11-SD-5-25.91", "San Diego - I5/Hwy 52 Interchange Bridge"
98
+ "57-0857": "CE03679", # "11-SD-75-R20.49", "San Diego - Coronado Bridge"
99
+ "27-0052": "CE58700", # "", "San Francisco - Golden Gate Bridge",
32
100
  }
33
101
 
102
+ """
103
+ "": "CE24714", # "San Fernando - I210/Hwy 118 Bridge [Abandoned]"
104
+ "": "CE25697", # "Cuyama Valley - Hwy 33/Quatal Cyn Bridge [Abandoned]"
105
+ "": "NP5235", # "Riverside; Santa Ana River Bridge"
106
+ "": "NP1571", # "San Jose; Interchange 101/280/680"
107
+
108
+ "": "CE58414", # "Pacifica - Hwy1/Devils Slide Bridge"
109
+ "": "CE57595", # "Fremont - Channel B Bridge"
110
+ "": "CE14703", # "Long Beach - Gerald Desmond Bridge",
111
+ "": "CE58501", # "Hayward - BART Elevated Section",
112
+ "": "CE58633", # "San Francisco - Bay Bridge/East [Abandoned]",
113
+ """
114
+
34
115
  CALID = {v: k for k, v in CESMD.items()}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: irie
3
- Version: 0.0.21
3
+ Version: 0.0.22
4
4
  Summary: An infrastructure resilience engine
5
5
  Author-email: "Claudio M. Perez" <50180406+claudioperez@users.noreply.github.com>
6
6
  Project-URL: Repository, https://github.com/STAIRLab
@@ -1,9 +1,9 @@
1
1
  irie/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  irie/__main__.py,sha256=JTbP1tFc8z2e_wXuurYT9MBe3pLt9UwY_HHnuEZvI2c,501
3
- irie/apps/__init__.py,sha256=wkkNngGxgYcCM745-rlvP6ynrI0b0QN3aWmLWDsR8zU,230
4
- irie/apps/config.py,sha256=jSCQprndMFQQIzgUWTe2Sa6MpU8iVqUoOy3cPkYOFP0,169
3
+ irie/apps/__init__.py,sha256=0HD7vRzfFqSPsnJF15Hts06RR-MBlJcUMHaipYEkYYk,229
4
+ irie/apps/config.py,sha256=VJW1NKjouIMBejJDbMYqmIUzZsnORQk02tuYO7bxo4s,399
5
5
  irie/apps/context_processors.py,sha256=kdMNU9-yK7rd8QWH5KxiKyQufFEmMLfZMRl7G8p7XHk,114
6
- irie/apps/sitemaps.py,sha256=dkSrQqjGr2Wv6BlNTKUA2V3hAIcIScXCgZ044LT1ccc,342
6
+ irie/apps/sitemaps.py,sha256=yYjh_IXH2wBcIaSBG9-3BA8H_ijgkP0BWEFJAPpIoWc,572
7
7
  irie/apps/authentication/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
8
8
  irie/apps/authentication/admin.py,sha256=2h43pTXd3NKV8-_fkUEkzkS4zqih0qBLE8q6Yj7fpEg,33
9
9
  irie/apps/authentication/config.py,sha256=kZPDGP1IwuN5r3uziuBcOw_HBO7dnBgMEpN-Z0yewpM,112
@@ -25,7 +25,7 @@ irie/apps/evaluation/admin.py,sha256=kn7L9M8Vrcc8UfmnwOV_JS8TV464-21xEKV6VyX2Ni8
25
25
  irie/apps/evaluation/apps.py,sha256=siqeOaH_tmCU0edSPIWcw_6cmvw5gHWpbeWWbuTUYGM,557
26
26
  irie/apps/evaluation/daemon.py,sha256=9iTefaGUOELIqJgeSdZUPcx7rKdRvxkVuwDpQ1DM7ME,3405
27
27
  irie/apps/evaluation/identification.py,sha256=Y1c6AlUlawas2fVOxDxowK_W1aJEDhe9b3NUYIXf40M,6183
28
- irie/apps/evaluation/models.py,sha256=Wks_phbD1fOG7aGj1W7XQuJB1EaUf1lWBHRdgEMqo34,2970
28
+ irie/apps/evaluation/models.py,sha256=R4GVIJL8sfXqjxiqhM1RWfc0oe7WXqcBXhkp5SCuXuo,3049
29
29
  irie/apps/evaluation/urls.py,sha256=DnLB-MADpbZZxmdmgPbx2CAvdPv2X0pVgvoJmrYwzr0,483
30
30
  irie/apps/evaluation/views.py,sha256=vhQpT7Q-rotzmU_VB6Dx-1RxpX454cqK2nz4aIPp4YI,2341
31
31
  irie/apps/evaluation/migrations/0001_initial.py,sha256=Bu9By3pDY-Dls_dSUGBQOGlrs0dGQPRCZrOC7gxtb1I,846
@@ -34,7 +34,7 @@ irie/apps/evaluation/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
34
34
  irie/apps/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  irie/apps/events/admin.py,sha256=YbPPlS1d4NZ-Ah3LVtIKER1wtVK-y7kRA9H_-ql9kRs,342
36
36
  irie/apps/events/apps.py,sha256=avHJMVjGJlpGSwhTuFSP4jkbFMeXs7wASP2H4Z2nYhE,353
37
- irie/apps/events/models.py,sha256=vX8gmCYdIDRiM8QWskyzdjs5-MUMNwIkPa9-AWYQG1g,3903
37
+ irie/apps/events/models.py,sha256=YwtvQCbFKOEGhVEAlGmCCLbepxwo0Xz0uV4vQ5z8dHM,3903
38
38
  irie/apps/events/tests.py,sha256=PSZUTXteVS5Fim2upOndb1HW5Pu7DoC1r25-7_1i-so,33
39
39
  irie/apps/events/tests_events.py,sha256=iVNwnlZgqug1MtEIGS_E82wcQ7522m-0q47kreN_D90,8363
40
40
  irie/apps/events/urls.py,sha256=UrVmK0NpKvmDNH9Iad4CTbN9KdXaW4W3ZNWxPpiSgUY,1052
@@ -52,12 +52,12 @@ irie/apps/inventory/calid.py,sha256=3L8MbPIGOE3kzDnqeyY055pRBiF2O2l0cmpuDbTsdTg,
52
52
  irie/apps/inventory/fields.py,sha256=J3nTImPsuCeiOWBizSL4tnuKs36sPfXALNTKEZY-wVg,79
53
53
  irie/apps/inventory/filters.py,sha256=U7fYRyf-FicpwZ6L-U8IlRuRpCyKNFMAi0k5zAw7AGw,2184
54
54
  irie/apps/inventory/forms.py,sha256=8KaegZRIJlCEpHbdNLWEETfa4x3oGYSE_YTfwUEgyYs,400
55
- irie/apps/inventory/models.py,sha256=tDu25wiJ2Xj2fZ-m7r5ueK8xoRuLZI0AUgFw967uoLs,3480
56
- irie/apps/inventory/sitemaps.py,sha256=yc3UMVuGWA8vC9zHseY1jfkeRw5_jTYjy-UUcGtGwpU,597
55
+ irie/apps/inventory/models.py,sha256=lAqh7UyK6cj0rScfvrdxjhurlMiKx5fN2L6OuR-g_VM,3661
56
+ irie/apps/inventory/sitemaps.py,sha256=Nha1MTsIH_ad7JyoxwonPytp7MNuEhDNszkEUOmlN0o,826
57
57
  irie/apps/inventory/tables.py,sha256=vZdPOcbN1ibuWXqLwbBUoQw9iavwa1GJ5fd83k8bu7Y,27874
58
58
  irie/apps/inventory/traffic.py,sha256=B3PHqn2Pm4AEdUZ_tuA16fuFruo2rm5waMBwLQyF-9g,4490337
59
59
  irie/apps/inventory/urls.py,sha256=mpmHjvDSHhC5xrEosbTH_h2bGWNJfslGcrt2mnUO40E,1019
60
- irie/apps/inventory/views.py,sha256=xOFxT4Te6zYEFCJNKCsJF4YDk5do-HcfWpBPMvuBBsI,14549
60
+ irie/apps/inventory/views.py,sha256=07wgzoBcLMGdN88lAKsab6lP-nLYhL8sg741wIHm8jw,14597
61
61
  irie/apps/inventory/archive/arcGIS.py,sha256=vcfsy1be4edOXD1Z3rkUnq9QmCTol7dypdF816Q3B_w,34893
62
62
  irie/apps/inventory/migrations/0001_initial.py,sha256=PwTHv4Q3gqWFha--8Zp9kUOh-cYalB14jXj7RVJUVnw,1786
63
63
  irie/apps/inventory/migrations/0002_alter_asset_bridge_sensors_and_more.py,sha256=rPzWHkjg-ZCorVA_gv6MVb5F6LTLHcwlPwhBR1PxVr0,842
@@ -75,21 +75,22 @@ irie/apps/networks/views.py,sha256=DDmu1_6WzB2D8c43DYZtnVk5N_g8_3Wtuz9gRXJBAt0,2
75
75
  irie/apps/networks/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
76
  irie/apps/prediction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  irie/apps/prediction/admin.py,sha256=WEPTXvwBFzh8m62Y_xusBfzqn0DXAT_wvqhCNefBano,335
78
- irie/apps/prediction/apps.py,sha256=NJ32eKlTL0dmZggBXSBM_9m0JafMYPBRHhHG0YSmjMk,423
79
- irie/apps/prediction/forms.py,sha256=qzWepBLV9cFHiXSSqeltwaV6amTU6sD3A97zkLZYhtc,644
78
+ irie/apps/prediction/apps.py,sha256=sejLu4xx8_IwQQKTnxC_DNK-vhjiqeG0_uk2Zg1ga-M,422
79
+ irie/apps/prediction/forms.py,sha256=TGej1UK30hlkcDGPRmLr8JujHxAqe7wIlTLZNVqXCpM,624
80
80
  irie/apps/prediction/metrics.py,sha256=Zh1utUZTGddQEVn4e1rLO74tbIz7bVvZli8sgmuB_X0,1410
81
- irie/apps/prediction/models.py,sha256=eapabvXuntbVxYtpBcZ74S2dHTspqJTQAtA-f5DgR_I,1444
82
- irie/apps/prediction/predictor.py,sha256=ih22LqQ5ofJacACDtNpeR7UdLT8Hka7V1TiEk5sFj7E,833
81
+ irie/apps/prediction/models.py,sha256=5PK8UOwS5vQBAJX9MLtHNqWQp5c3pYGzYM9vAKaKnYA,1448
82
+ irie/apps/prediction/predictor.py,sha256=-x_4kHWnfUxiX2aQfbl3dsbVAG4lRKAFbo1CqfZNCIc,831
83
83
  irie/apps/prediction/urls.py,sha256=59im21mNf-tr6gUMBPiyVdVRNVe9x6JHdcpvjogjuD4,847
84
- irie/apps/prediction/views.py,sha256=Iy2S4bi2U_IpHwY7C3-VFWgiwYztNxS5yDvh7Zr65dk,4046
85
- irie/apps/prediction/views_api.py,sha256=_1FrfiqRlM52G3wRuI6myD7Z1mAP2pbyhZFBo23-c-U,7123
84
+ irie/apps/prediction/views.py,sha256=QTukWXdMy2CzIbDN6hR4bIe5Q1pan6pNfnZlPQmDvuA,3970
85
+ irie/apps/prediction/views_api.py,sha256=DJzLYO5ouPOWkkZJNZxZJzxC3TROKJ-L6Z2IC1NMuFQ,6888
86
86
  irie/apps/prediction/migrations/0001_initial.py,sha256=-0GWd2vUUAzSPfptccAJ3raI3UD4Xj9H0E5EJ7xN0Ek,1428
87
87
  irie/apps/prediction/migrations/0002_alter_predictormodel_protocol.py,sha256=nrQvuZ1eRR7fR17IjdS0Xyw14y9DpE6HkG2-h7HQ_zA,560
88
+ irie/apps/prediction/migrations/0003_alter_predictormodel_protocol.py,sha256=4N_vqjUddxMQBdzP1ZGBIP4uTlqWQfyBg3Dnt_w3T9A,518
88
89
  irie/apps/prediction/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
- irie/apps/prediction/runners/__init__.py,sha256=lX8IvcW3iDTyrm__GtU05gdpqKsoxoTxSImcZCVPY9E,1803
90
- irie/apps/prediction/runners/hazus.py,sha256=LXNb1NmkEDEx1Jc5Ojv0cGdFrI4C2V4yQ8wlQGN1Uy0,30881
91
- irie/apps/prediction/runners/ssid.py,sha256=iJgY-7N3AT-RVbWL1K4C-tnJ1ZhCmeT6FHQTn1SmlCY,18499
92
- irie/apps/prediction/runners/opensees/__init__.py,sha256=fHa5k_bCKbGS-DAHPx-Tzqm5Is76DeBc0d-w7vda2ao,21177
90
+ irie/apps/prediction/runners/__init__.py,sha256=1ABdBWttfOdjI87YxJGEFcFSLcgXMHvMqUQWNpRuxS4,2033
91
+ irie/apps/prediction/runners/hazus.py,sha256=IxEnXlpvWR92Iq9NOby_qqcWW4TjZ8zKWxNw6XyJKjQ,30463
92
+ irie/apps/prediction/runners/ssid.py,sha256=Y36FMPVzjNMXknQO6LegTBFUF2X-l7TXyddY4Z8SDmA,18701
93
+ irie/apps/prediction/runners/opensees/__init__.py,sha256=QlInYqEKc1oYBnw6TeF4dS3VnOxmQeLptF9EKr-blfM,21177
93
94
  irie/apps/prediction/runners/opensees/metrics.py,sha256=HU1V0RYQDXrhTcHqwpnU2KOSl4UPNo9S6QP3sz2VcUY,6428
94
95
  irie/apps/prediction/runners/opensees/utilities.py,sha256=aPBANs6NR-EPrYsekBLx-IWvx4GbNypMtkHy3PPM6aM,9028
95
96
  irie/apps/prediction/runners/opensees/xmlutils.py,sha256=Q3i5L0Dp_5nRsKRGMr-m_bS03Mxa36Ujb-RvwAmResc,7510
@@ -102,7 +103,7 @@ irie/apps/prediction/runners/opensees/schemas/hwd_conf_default.json,sha256=t471C
102
103
  irie/apps/prediction/runners/opensees/schemas/hwd_results.schema.json,sha256=izj75gw_DXv0nU6xTNQtefRWi0fUMrcOKFQmxJg1-_c,1474
103
104
  irie/apps/prediction/runners/opensees/schemas/hwd_results_default.json,sha256=f8SqyEhomuMEp4_swTbg6mt7t_0nWlJVVW_s67C-bIk,233
104
105
  irie/apps/prediction/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- irie/apps/prediction/templatetags/predictor.py,sha256=43MXAC-Y-ex_w9_cdvl4UbkrdlZWN_PUg0NVM8C0rHY,793
106
+ irie/apps/prediction/templatetags/predictor.py,sha256=B_28QyEbj2b1MUZWLJdF8bQtQYL4_KKTh6sk3gRXPXE,730
106
107
  irie/apps/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
108
  irie/apps/site/admin.py,sha256=2h43pTXd3NKV8-_fkUEkzkS4zqih0qBLE8q6Yj7fpEg,33
108
109
  irie/apps/site/config.py,sha256=VFlhAZpacFZWpHHGBKaPvsIEpEydkSL9IaB8OWyEue8,345
@@ -110,7 +111,7 @@ irie/apps/site/models.py,sha256=EIjVfI3vKdeloNjkmLHRB3UTkYh3EhETvuK-Th5_VM8,73
110
111
  irie/apps/site/tests.py,sha256=PSZUTXteVS5Fim2upOndb1HW5Pu7DoC1r25-7_1i-so,33
111
112
  irie/apps/site/urls.py,sha256=NZP5FlFVS_CeoxU_CLsFMv2zvtAwsY3bbxCx6MX7Xzs,256
112
113
  irie/apps/site/view_sdof.py,sha256=PuLmm8INLaCWc5tuTmZaS_l1zJeZe_yE8pE4eXRdbNc,1194
113
- irie/apps/site/view_utils.py,sha256=HAhg32jLBf0nvD4ta_oJ8fUODuc0fHi9khWSeztjtYw,566
114
+ irie/apps/site/view_utils.py,sha256=_SO-7i5g8B5qMKg3iBYazrjlKNUTh4HzTSunB_mXgp8,566
114
115
  irie/apps/site/views.py,sha256=KRF_SRHP9aCGqocKTNUBGJdq3y2faq3O7AD1xyD4hdM,2888
115
116
  irie/apps/site/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
117
  irie/apps/site/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -372,7 +373,7 @@ irie/apps/templates/includes/scripts.html,sha256=1Up6xJJSTpdLTJp0tDAa3JubevvSlic
372
373
  irie/apps/templates/includes/settings-box.html,sha256=wexsLS4SMRyKci-r4L_LQ6QM27h4U291091NcGiTT3o,2486
373
374
  irie/apps/templates/includes/sidebar.html,sha256=uJnzXtcV7UvXscvEHe5z0wpLsFZk8B9mj1_Ye08NRbY,10972
374
375
  irie/apps/templates/inventory/asset-event-summary.html,sha256=BmLAFtfNDi98aZIu5WbkPMda-QZgoWhssN6l3e2QLgE,50672
375
- irie/apps/templates/inventory/asset-profile.html,sha256=lVH983PV9EIgugsfqb8Y94JrPMmD84OFX9twUNdjXno,11287
376
+ irie/apps/templates/inventory/asset-profile.html,sha256=WQRfwf_0cnqgEBk0UQs6io8CNevn-lYEEncEEIQqgLM,11340
376
377
  irie/apps/templates/inventory/asset-table.html,sha256=hiPrumCigE_m1H6vSr8l-AoRosV8WnFuRg89cuzavvY,12129
377
378
  irie/apps/templates/inventory/bridge-dashboard.html,sha256=67zrDlih3LOi9xFVwPVZZkgRT3DO-lE_qRL7q8Uz9GY,45472
378
379
  irie/apps/templates/inventory/bridge.html,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
@@ -415,13 +416,13 @@ irie/apps/templates/site/transactions.html,sha256=-heynHR8PTt_C4P3IWmYG_VE1aGH68
415
416
  irie/apps/templates/site/unused-dashboard-cards.html,sha256=DDNWrnIf4o0wj06WYH8YitTfemzARRcVafZ2iNFdJZM,14715
416
417
  irie/core/__init__.py,sha256=wkkNngGxgYcCM745-rlvP6ynrI0b0QN3aWmLWDsR8zU,230
417
418
  irie/core/asgi.py,sha256=3lVQKFRA4bznM2mWu5Cv24a5H9pfb6YU07q-I_TN0DM,395
418
- irie/core/settings.py,sha256=9jqn02olEya6O2p3pABLFhmHRwl_U05sOAtluo6y1Rg,6342
419
+ irie/core/settings.py,sha256=MZ361c0489-CB2LXkK2dySWT6y2fIcUmUK7CeRWlGZk,6481
419
420
  irie/core/urls.py,sha256=gxPSV6OhMGYm2O2uRJjFSTOjcIKSXuMeEyAmQcUctLU,1460
420
421
  irie/core/wsgi.py,sha256=8dxK789vOoRWm0IatEhNqMgZhov9TlspjM6hOUbjg24,395
421
422
  irie/init/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
422
- irie/init/__main__.py,sha256=EMfVc-Q-IPi1uBU3vOkoP4_-JMWpK1dFnqu3prfXsDM,589
423
- irie/init/bridges.py,sha256=vWDhpQ42Ws9SHUMPw5N8sEQ_7PXbdXRK1SUlSMQQCeI,74681
424
- irie/init/calid.py,sha256=Q6ie1irxm9EiGdxuR2OD05Hffg0UsTWIxQJha-kWkVs,1331
423
+ irie/init/__main__.py,sha256=9PhToipU4y-7H_ndU5aoCdaWayhR5ld669LPnKUDBu4,828
424
+ irie/init/bridges.py,sha256=OBBKnLx2lmMKDfeR0C8CBSbnpnzO0lfokBypD2nEFcM,74198
425
+ irie/init/calid.py,sha256=Q86vBrRTF6YL_MOzVw4CKXIcdx0SlD35DAYNpMWcekM,7439
425
426
  irie/init/getCGSData.py,sha256=iZG3Ab1Y_rhiliKCPNy0MZrKBsfEe6ShgSFz2ttvTUU,2916
426
427
  irie/init/getCGSevents.py,sha256=4dBkFFJQrUs6gfl1Nj-_R2UOZj0B_T017a6tC7fUHOw,421
427
428
  irie/init/getNBIData.py,sha256=xEzM4nCfaRo5QoB90QCezxbOdpKd54UbeFNaymvDhZU,7923
@@ -438,8 +439,8 @@ irie/init/management/commands/init_corridors.py,sha256=EzLk0HUiFxlco-2u0rypewOc9
438
439
  irie/init/management/commands/init_predictors.py,sha256=jdD7rd8l2qxuUuR5GOYuHXp-ZQkAK477TefksBMdlOw,2362
439
440
  irie/rest/__main__.py,sha256=6Nf_-Rr9zGmMyp_wqCFDO7ls9QPnPd9UyUgN17rIGYw,3680
440
441
  irie/usgs/__main__.py,sha256=HiSvPn5IW5IqRiCk1qRRq5dCy3-7iISw7v1P_w2rLrk,5049
441
- irie-0.0.21.dist-info/METADATA,sha256=zcQb6vRAYraG6jkwTZtPjklZbNUbTXwFsLwXQNH3eBI,3247
442
- irie-0.0.21.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
443
- irie-0.0.21.dist-info/entry_points.txt,sha256=A_3h9wPBGfxGQ78_MGa-nO6Z0foxOYeAnIE47jxEztg,44
444
- irie-0.0.21.dist-info/top_level.txt,sha256=zVCxi5E2nkISZPzKq8VEhWe_dGuPcefLYV1tYqQdwlY,5
445
- irie-0.0.21.dist-info/RECORD,,
442
+ irie-0.0.22.dist-info/METADATA,sha256=mHd6PvO92I0BfsgE5x8ky6e2CYRkqiFqud9MacONNzY,3247
443
+ irie-0.0.22.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
444
+ irie-0.0.22.dist-info/entry_points.txt,sha256=A_3h9wPBGfxGQ78_MGa-nO6Z0foxOYeAnIE47jxEztg,44
445
+ irie-0.0.22.dist-info/top_level.txt,sha256=zVCxi5E2nkISZPzKq8VEhWe_dGuPcefLYV1tYqQdwlY,5
446
+ irie-0.0.22.dist-info/RECORD,,
File without changes