From 11326bf58591d2391fbe1fd97bd808207b571b69 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 2 Mar 2025 01:53:35 +0000 Subject: [PATCH] Production latest code push --- __pycache__/views.cpython-310.pyc | Bin 5114 -> 6537 bytes .../city_digital_twin.html | 149 +++++++++++++----- views.py | 57 ++++++- 3 files changed, 168 insertions(+), 38 deletions(-) diff --git a/__pycache__/views.cpython-310.pyc b/__pycache__/views.cpython-310.pyc index d546196469a0f5617b7d89a9afaf31afe1bf44b4..c95db5de3bec81999fb4fb35d7fc272028d36dc8 100644 GIT binary patch delta 3100 zcmZ`*TWl0n7@jjTJF_#}-O>uhR>Z-T!pd!J3lzn2Q!WZM3J5NcWx8i}JFuNu&dgF+ zr*2}2=!4N_Uc_Jm>I=^p6BFZ$i4h-sGsX=M#ur0Ee9~O^w1eQXp5>H8m>N$i5tilVn1KR)SW7R)$vgg@D2a(2?L!*^dPT)UiW?laK{p zIlG?-`14g7pCs>+aUqC#Z~1XFiE2U2CKHOU1p?IrWfCux7|tb_=}>npU$FhNIkkY2 z>x5sEcO<>h9sZT-?rijwEXQJ|Z^2MByi@#~EDUdm+qBidhDhQh9c4TNO~X@sW{dI1_Ci>3Sj{PY4o*S6eI z(}N=e>!0ffp|5Xnq_6La#vZvr_+#wU()&i-m$*4e*m@v5q)d=xXvX0x%K60o(-($s ztLZMj1ZOw&&1Kv3;qsNCdia&Ph3Mfw>V}Pc!pmqWpVi5%f^RydYT0D@vU%36`T-1j z=wvCNsEsHw+I_2&_>&s zc_v?RJ=?ckhnq0x=qX&WJFM!N7xsggiR@&DW;c2hrN|6wnvhr{3W zkKXJ?ksv&Qumpj#A~L*MLoq8A%b`FLr$U=C%ggD^9nY67r{s^amvC9jKOBCS=pq-w zUlPm7k*jwTCRv0V-{78g6s3*0U}bnJd9IEYWF*#unhZd#^Pod5X6$es&u7&FC*i(p za5InLWWFUH3dTK&3Jissnl2VM^bc$V{~Xvb*f%o3mg1CooKz4x1@;UsUXFkc&sK!* zrIw|4posTsNO0%Y%i#bzz_swF)VD=W;2P-GQp2vZrdV~j#b&uBnAYMFG#u`kMR@?{ ztLbdESj=YGbEq0YC?d4*h+RDD*YIZhXERK#N9_v$IrWfT_HC!saug>8Z`_R7Z?=@6 z1JCa>g0PhhLLW@o1PxfRDQj7qvRuiY#}SzopkWlj0%)jJ$1b`{*x0-V{sCO{ghL(L z-p#l}JlX*lGmJjA58(j95ro444b5_@V?3>87PAGY?m*~7;I90})v%+Nq+dkE5W*IO zIrLyiT?wyu9;>6#vk$6ec=2!akXB!~1QmmdPyr$t>H)}v>!qkNP=%`J1YZn7_I9Uc}A~&s2lL?YNl+@Fb&@-Tadig6x~AAv#3Gs zlI@#i!ymUDqv$fjAGM58vvAV%M_p$vU%$sUY^PAJQp+<6Rv9L{;}-K)8%28rqN4&+ zp#!DEa4Wt&X4mSlalt(egqAF$<~o)aZNz51FN*GGfedyWpnzdN^N1i|iNJi~;U85J z0^wNi1c5p#EJntJ%K}tfnYB~Vf!fM>;}x|j)uFh8C<2Ky5>&ynUsuyYmsyg9Ko@0q@Y1+eiR$8dH=8Xg|b#5iGd0mCn|AUyKex^Zqeej70i5&i|q z@Vl)gn`0u6QaUDFzIjWWaYOlMNPP2{ORHsT2q+aitn~}vLkPZFi7v*M$F=zGcmhz< I7qkuk5BY|l*Z=?k delta 1687 zcmZ{kO>7%Q6vub=%e%H?=gVmllHk@f>8eDrlGKTtkfh;5p+$yJLcnSXi`O;__O6*- zDR0f{@?_5+@>6s?P5Sn(WaB5SUMq2pMj-#&gCQ2bS$^JQLz0jc8|Ox>CFK)5g%Y5i8o0P8>oYN ze$c$-G2FTUFl71^3{9!vdQGurHzm(@=pwkj7U|QtqEgec>t3sKT>TT^{(ya`&!1lb zi{=nq5VyFXc)_NHHZ|`<%pcg}10}1VH*m+3 z>~`3gdk##arIEgHbkJqAS`sYVEW3_bIcUhoxbi$=jSWU_yx5N>K@1`uLhz1=6w7L= zX029qENBq6A+I0G^73KoZf;bHPT7B*Ucha0$)FcT!__q{> zy@b{bT4U_nj%z!pz>w$wdhoJtcdt2CktQE^9nYur0&hYRSNYZ8GGE3iKN5=saYN`h z3)l{&N~O%y^b8o&nc2zLrs*(-==6aXR1mra%4I!*C*Y-~qwKrb$SXWbmn%j%R z1^n^9XOZ~b5^vz6Fx`&jTxYygcerA+LX#NCHIJi(!lBLyv?l=|Fr6-y(rKDT*Hwgx zXzL?RG1X6Oyz}$JPEDbA7LX6E+ZEq-%5AB5Q?S(Xr?>FAvsi`+JU<^A!V*0PbC8mO z0aRqu#bP$iofLl;Xy+?1&<(_^fM%%f*d=#}R{vMvFVKrYw$r6QlZ6e2);a+M29Y z<#L9?FW7P5g)!pn*ZzqbuMOXJnn2*61I2%$HjOB+B@|C@%gA%{_ez_ux>mhXTp$qP Y;U(yVw_1ZwSkzLQuB~VhpdRb`4_gIRnE(I) diff --git a/templates/pxy_city_digital_twins/city_digital_twin.html b/templates/pxy_city_digital_twins/city_digital_twin.html index 7ef66b1..78afc75 100644 --- a/templates/pxy_city_digital_twins/city_digital_twin.html +++ b/templates/pxy_city_digital_twins/city_digital_twin.html @@ -1,51 +1,126 @@ +{% load static %} - + LDS City - - - - - + + + + + + + + - - {% load static %} - + + + - - + + - - {% for building in city_data.buildings %} - - - - - {% endfor %} + + - - {% for lamp in city_data.lamps %} - - - - - - {% endfor %} + + - - {% for tree in city_data.trees %} - - - - - - {% endfor %} + + + {% for building in city_data.buildings %} + + + + + {% endfor %} + + + + {% for lamp in city_data.lamps %} + + + + + + {% endfor %} + - - - + + + {% for tree in city_data.trees %} + + + + + + {% endfor %} + + + + + {% for tower in city_data.towers %} + + + + + {% endfor %} + + + + + {% for fiber in city_data.fiber_paths %} + + + + + {% endfor %} + + + + + {% for wifi in city_data.wifi_hotspots %} + + + + + {% endfor %} + + + + + diff --git a/views.py b/views.py index 925fbc7..eb5915f 100644 --- a/views.py +++ b/views.py @@ -7,6 +7,8 @@ def city_digital_twin(request, city_id, innovation_pct=None, technology_pct=None try: if city_id == "random_city": city_data = generate_random_city_data() + elif city_id == "com_con": + city_data = generate_com_con_city_data() elif city_id == "dream": # Retrieve percentages from GET parameters if not in URL innovation_pct = innovation_pct or request.GET.get('innovation', 0) @@ -164,7 +166,6 @@ def triangular_layout(num_elements): return positions - def generate_random_city_data(innovation_pct=100, technology_pct=100, science_pct=100, max_position=100, radius=50): num_buildings = random.randint(5, 35) num_lamps = random.randint(5, 100) @@ -241,3 +242,57 @@ def generate_random_city_data(innovation_pct=100, technology_pct=100, science_pc 'lamps': lamps, 'trees': trees, } + + +def generate_com_con_city_data(): + """ + Generates a telecom-focused digital twin for the hackathon. + It includes cell towers, fiber paths, and optimized coverage zones. + """ + num_towers = random.randint(3, 10) + num_fiber_paths = random.randint(5, 15) + num_wifi_hotspots = random.randint(5, 20) + + towers = [ + { + 'id': i + 1, + 'status': 'Active' if random.random() > 0.2 else 'Inactive', + 'position_x': random.uniform(-50, 50), + 'position_z': random.uniform(-50, 50), + 'height': random.randint(20, 50), + 'range': random.randint(500, 1500), # Coverage range in meters + 'color': '#ff4500' # Orange for telecom towers + } + for i in range(num_towers) + ] + + fiber_paths = [ + { + 'id': i + 1, + 'start_x': random.uniform(-50, 50), + 'start_z': random.uniform(-50, 50), + 'end_x': random.uniform(-50, 50), + 'end_z': random.uniform(-50, 50), + 'status': 'Connected' if random.random() > 0.1 else 'Broken', + 'color': '#4682b4' # Steel blue for fiber cables + } + for i in range(num_fiber_paths) + ] + + wifi_hotspots = [ + { + 'id': i + 1, + 'position_x': random.uniform(-50, 50), + 'position_z': random.uniform(-50, 50), + 'status': 'Online' if random.random() > 0.2 else 'Offline', + 'range': random.randint(100, 300), + 'color': '#32cd32' # Lime green for Wi-Fi coverage + } + for i in range(num_wifi_hotspots) + ] + + return { + 'towers': towers, + 'fiber_paths': fiber_paths, + 'wifi_hotspots': wifi_hotspots + }