Team Ai
Datasetpublic

ysn-rfd/text-dataset-tiny-code-script-py-format

USED of tahamajs/medicine_ds_persian for .parquet file USED of Alijafarixcs2/persian-it-llama2-2k for .parquet file USED of Abirate/english_quotes for .jsonl file NEW FILES (05/12/2025) NEW FILES (12/26/2025) NEW FILES (02/15/2026)

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
3likes1.7kdownloads
Untitled6.ipynb298 linesDownload Raw Back to opencv_test
1{2 "cells": [3  {4   "cell_type": "code",5   "execution_count": null,6   "id": "79c435c0-31ba-4c2f-81b3-90d8e670eb76",7   "metadata": {},8   "outputs": [],9   "source": [10    "import numpy as np\n",11    "import matplotlib.pyplot as plt\n",12    "from matplotlib.animation import FuncAnimation\n",13    "from mpl_toolkits.mplot3d import Axes3D, art3d\n",14    "import random\n",15    "\n",16    "# Parameters\n",17    "WORLD_SIZE = 100000\n",18    "AIRCRAFT_COUNT = 100\n",19    "RADAR_RANGE = 70000\n",20    "RADAR_ALTITUDE_LIMIT = 20000  # max altitude radar covers in meters\n",21    "SCAN_SPEED = 2.0  # degrees per frame\n",22    "BEAM_WIDTH = 5.0  # degrees width of radar beam\n",23    "TRACK_LENGTH = 20  # length of tail/track for aircrafts\n",24    "MAX_ACCELERATION = 5  # m/s^2 max change in velocity per frame\n",25    "\n",26    "# Aircraft types with properties\n",27    "AIRCRAFT_TYPES = {\n",28    "    'commercial': {'rcs_range': (10, 20), 'color': 'cyan', 'size': 30},\n",29    "    'military': {'rcs_range': (5, 12), 'color': 'red', 'size': 40},\n",30    "    'drone': {'rcs_range': (1, 4), 'color': 'yellow', 'size': 20},\n",31    "    'unknown': {'rcs_range': (0.5, 2), 'color': 'magenta', 'size': 25}\n",32    "}\n",33    "\n",34    "# Event Class with motion\n",35    "class MovingEvent3D:\n",36    "    def __init__(self, evt_type, center, radius, altitude, velocity):\n",37    "        self.type = evt_type\n",38    "        self.center = np.array(center, dtype=float)\n",39    "        self.radius = radius\n",40    "        self.altitude = altitude\n",41    "        self.velocity = np.array(velocity, dtype=float)\n",42    "        self.active = True\n",43    "    \n",44    "    def update(self):\n",45    "        self.center += self.velocity\n",46    "        # Bounce inside world bounds for x,y\n",47    "        for i in [0, 1]:\n",48    "            if self.center[i] < 0 or self.center[i] > WORLD_SIZE:\n",49    "                self.velocity[i] = -self.velocity[i]\n",50    "                self.center[i] = np.clip(self.center[i], 0, WORLD_SIZE)\n",51    "        # Bounce altitude inside radar altitude limit\n",52    "        if self.altitude < 0 or self.altitude > RADAR_ALTITUDE_LIMIT:\n",53    "            self.velocity[2] = -self.velocity[2]\n",54    "            self.altitude = np.clip(self.altitude, 0, RADAR_ALTITUDE_LIMIT)\n",55    "        # Random on/off toggle for event activity\n",56    "        if random.random() < 0.001:\n",57    "            self.active = not self.active\n",58    "\n",59    "def generate_moving_events_3d():\n",60    "    events = []\n",61    "    for _ in range(4):\n",62    "        evt_type = random.choice(['storm', 'no-fly-zone', 'jamming', 'interference'])\n",63    "        center = np.random.uniform(0, WORLD_SIZE, 2)\n",64    "        altitude = np.random.uniform(0, RADAR_ALTITUDE_LIMIT)\n",65    "        radius = {'storm': 15000, 'no-fly-zone': 10000, 'jamming': 8000, 'interference':12000}[evt_type]\n",66    "        velocity = np.random.uniform(-50, 50, 3)\n",67    "        events.append(MovingEvent3D(evt_type, center, radius, altitude, velocity))\n",68    "    return events\n",69    "\n",70    "world_events = generate_moving_events_3d()\n",71    "\n",72    "# Generate aircrafts with altitude, track history, type and variable velocity\n",73    "def generate_aircraft_3d():\n",74    "    aircrafts = []\n",75    "    for i in range(AIRCRAFT_COUNT):\n",76    "        ac_type = random.choices(list(AIRCRAFT_TYPES.keys()), weights=[0.5,0.3,0.15,0.05])[0]\n",77    "        rcs_min, rcs_max = AIRCRAFT_TYPES[ac_type]['rcs_range']\n",78    "        ac = {\n",79    "            'id': i,\n",80    "            'type': ac_type,\n",81    "            'position': np.array([*np.random.uniform(0, WORLD_SIZE, 2), np.random.uniform(0, RADAR_ALTITUDE_LIMIT)]),\n",82    "            'velocity': np.random.uniform(-50, 50, 3),\n",83    "            'rcs': random.uniform(rcs_min, rcs_max),\n",84    "            'callsign': f\"{ac_type[:2].upper()}{i:03}\",\n",85    "            'emergency': random.random() < 0.03,\n",86    "            'track': [],\n",87    "            'acceleration': np.zeros(3),\n",88    "        }\n",89    "        aircrafts.append(ac)\n",90    "    return aircrafts\n",91    "\n",92    "aircrafts = generate_aircraft_3d()\n",93    "radar_angle = [0]\n",94    "radar_pos = np.array([WORLD_SIZE/2, WORLD_SIZE/2, 0])\n",95    "paused = [False]\n",96    "\n",97    "def is_event_active_3d(pos):\n",98    "    for evt in world_events:\n",99    "        if evt.active:\n",100    "            d_xy = np.linalg.norm(pos[:2] - evt.center)\n",101    "            dz = abs(pos[2] - evt.altitude)\n",102    "            if d_xy < evt.radius and dz < evt.radius / 2:\n",103    "                return evt.type\n",104    "    return None\n",105    "\n",106    "def detect_3d(ac, radar_pos):\n",107    "    delta = ac['position'] - radar_pos\n",108    "    rng = np.linalg.norm(delta)\n",109    "    if rng > RADAR_RANGE or ac['position'][2] > RADAR_ALTITUDE_LIMIT:\n",110    "        return False\n",111    "    bearing = (np.degrees(np.arctan2(delta[1], delta[0])) + 360) % 360\n",112    "    diff = abs((bearing - radar_angle[0] + 180) % 360 - 180)\n",113    "    if diff > BEAM_WIDTH / 2:\n",114    "        return False\n",115    "    evt = is_event_active_3d(ac['position'])\n",116    "    snr_val = 20 - 20*np.log10(rng + 1) + ac['rcs']\n",117    "    if evt == 'jamming':\n",118    "        snr_val -= 50\n",119    "    elif evt == 'storm':\n",120    "        snr_val -= 15\n",121    "    elif evt == 'interference':\n",122    "        snr_val -= 25\n",123    "    prob = 1 / (1 + np.exp(-(snr_val - 10)))\n",124    "    # Introduce random detection noise\n",125    "    noise = np.random.normal(0, 0.1)\n",126    "    return np.random.rand() < (prob + noise)\n",127    "\n",128    "# Setup plot\n",129    "fig = plt.figure(figsize=(14, 10))\n",130    "ax = fig.add_subplot(111, projection='3d')\n",131    "ax.set_xlim(0, WORLD_SIZE)\n",132    "ax.set_ylim(0, WORLD_SIZE)\n",133    "ax.set_zlim(0, RADAR_ALTITUDE_LIMIT)\n",134    "ax.set_facecolor('black')\n",135    "\n",136    "# Scatter for different types of aircrafts (dynamic update)\n",137    "all_scatter = ax.scatter([], [], [], c=[], s=[], label='Aircraft')\n",138    "detected_scatter = ax.scatter([], [], [], c='lime', s=60, label='Detected')\n",139    "emergency_scatter = ax.scatter([], [], [], c='orange', s=80, marker='^', label='Emergency')\n",140    "radar_sweep_line, = ax.plot([], [], [], c='cyan', linewidth=3, label='Radar Sweep')\n",141    "\n",142    "# Track lines for aircrafts\n",143    "track_lines = [ax.plot([], [], [], c='white', alpha=0.3, linewidth=1)[0] for _ in range(AIRCRAFT_COUNT)]\n",144    "\n",145    "event_spheres = []\n",146    "event_colors = {'storm':'blue', 'no-fly-zone':'yellow', 'jamming':'magenta', 'interference':'purple'}\n",147    "\n",148    "def plot_sphere(center, radius, color):\n",149    "    u = np.linspace(0, 2*np.pi, 20)\n",150    "    v = np.linspace(0, np.pi, 20)\n",151    "    x = center[0] + radius * np.outer(np.cos(u), np.sin(v))\n",152    "    y = center[1] + radius * np.outer(np.sin(u), np.sin(v))\n",153    "    z = center[2] + radius * np.outer(np.ones(np.size(u)), np.cos(v))\n",154    "    return ax.plot_surface(x, y, z, color=color, alpha=0.15)\n",155    "\n",156    "for evt in world_events:\n",157    "    sphere = plot_sphere(np.array([*evt.center, evt.altitude]), evt.radius, event_colors[evt.type])\n",158    "    event_spheres.append(sphere)\n",159    "\n",160    "# Radar range circle on ground\n",161    "radar_circle = plt.Circle((radar_pos[0], radar_pos[1]), RADAR_RANGE, color='cyan', alpha=0.1)\n",162    "ax.add_patch(radar_circle)\n",163    "art3d.pathpatch_2d_to_3d(radar_circle, z=0, zdir=\"z\")\n",164    "\n",165    "def update(frame):\n",166    "    if paused[0]:\n",167    "        return\n",168    "    \n",169    "    # به‌روزرسانی زاویه رادار\n",170    "    radar_angle[0] = (radar_angle[0] + 1) % 360\n",171    "\n",172    "    all_pos = []\n",173    "    all_colors = []\n",174    "    all_sizes = []\n",175    "\n",176    "    detected_pos = []\n",177    "    emergency_pos = []\n",178    "\n",179    "    for ac in aircrafts:\n",180    "        # محدود کردن سرعت\n",181    "        v_mag = np.linalg.norm(ac['velocity'])\n",182    "        max_speed = 250  # m/s\n",183    "        if v_mag > max_speed:\n",184    "            ac['velocity'] = (ac['velocity'] / v_mag) * max_speed\n",185    "        \n",186    "        # به‌روزرسانی موقعیت\n",187    "        ac['position'] += ac['velocity']\n",188    "        \n",189    "        # برخورد به دیواره‌های جهان\n",190    "        for i in [0, 1]:\n",191    "            if ac['position'][i] < 0 or ac['position'][i] > WORLD_SIZE:\n",192    "                ac['velocity'][i] = -ac['velocity'][i]\n",193    "                ac['position'][i] = np.clip(ac['position'][i], 0, WORLD_SIZE)\n",194    "        if ac['position'][2] < 0 or ac['position'][2] > RADAR_ALTITUDE_LIMIT:\n",195    "            ac['velocity'][2] = -ac['velocity'][2]\n",196    "            ac['position'][2] = np.clip(ac['position'][2], 0, RADAR_ALTITUDE_LIMIT)\n",197    "        \n",198    "        # ثبت رد حرکت\n",199    "        ac['track'].append(ac['position'].copy())\n",200    "        if len(ac['track']) > TRACK_LENGTH:\n",201    "            ac['track'].pop(0)\n",202    "        \n",203    "        all_pos.append(ac['position'])\n",204    "        all_colors.append(AIRCRAFT_TYPES[ac['type']]['color'])\n",205    "        all_sizes.append(AIRCRAFT_TYPES[ac['type']]['size'])\n",206    "        \n",207    "        if detect_3d(ac, radar_pos):\n",208    "            detected_pos.append(ac['position'])\n",209    "            if ac['emergency']:\n",210    "                emergency_pos.append(ac['position'])\n",211    "\n",212    "    # تبدیل به np.array\n",213    "    all_pos = np.array(all_pos)\n",214    "    detected_pos = np.array(detected_pos)\n",215    "    emergency_pos = np.array(emergency_pos)\n",216    "\n",217    "    # آپدیت scatter کل هواپیماها\n",218    "    if len(all_pos) > 0:\n",219    "        all_scatter._offsets3d = (all_pos[:,0], all_pos[:,1], all_pos[:,2])\n",220    "        all_scatter.set_color(all_colors)\n",221    "        all_scatter.set_sizes(all_sizes)\n",222    "    else:\n",223    "        all_scatter._offsets3d = ([], [], [])\n",224    "        all_scatter.set_color([])\n",225    "        all_scatter.set_sizes([])\n",226    "\n",227    "    # آپدیت scatter هواپیماهای تشخیص داده شده\n",228    "    if len(detected_pos) > 0:\n",229    "        detected_scatter._offsets3d = (detected_pos[:,0], detected_pos[:,1], detected_pos[:,2])\n",230    "        detected_scatter.set_sizes([60]*len(detected_pos))\n",231    "    else:\n",232    "        detected_scatter._offsets3d = ([], [], [])\n",233    "        detected_scatter.set_sizes([])\n",234    "\n",235    "    # آپدیت scatter هواپیماهای اضطراری\n",236    "    if len(emergency_pos) > 0:\n",237    "        emergency_scatter._offsets3d = (emergency_pos[:,0], emergency_pos[:,1], emergency_pos[:,2])\n",238    "        emergency_scatter.set_sizes([80]*len(emergency_pos))\n",239    "    else:\n",240    "        emergency_scatter._offsets3d = ([], [], [])\n",241    "        emergency_scatter.set_sizes([])\n",242    "\n",243    "    # به‌روزرسانی خطوط رد حرکت\n",244    "    for i, ac in enumerate(aircrafts):\n",245    "        if len(ac['track']) >= 2:\n",246    "            track_arr = np.array(ac['track'])\n",247    "            track_lines[i].set_data(track_arr[:,0], track_arr[:,1])\n",248    "            track_lines[i].set_3d_properties(track_arr[:,2])\n",249    "        else:\n",250    "            track_lines[i].set_data([], [])\n",251    "            track_lines[i].set_3d_properties([])\n",252    "\n",253    "    # به‌روزرسانی خط اسکن رادار\n",254    "    angle_rad = np.radians(radar_angle[0])\n",255    "    x = [radar_pos[0], radar_pos[0] + RADAR_RANGE * np.cos(angle_rad)]\n",256    "    y = [radar_pos[1], radar_pos[1] + RADAR_RANGE * np.sin(angle_rad)]\n",257    "    z = [0, 0]\n",258    "    radar_sweep_line.set_data(x, y)\n",259    "    radar_sweep_line.set_3d_properties(z)\n",260    "\n",261    "    ax.set_title(f\"3D Radar Simulation - Scan Angle: {radar_angle[0]:.1f}°\")\n",262    "\n",263    "    \n",264    "def on_key(event):\n",265    "    if event.key == ' ':\n",266    "        paused[0] = not paused[0]\n",267    "\n",268    "fig.canvas.mpl_connect('key_press_event', on_key)\n",269    "\n",270    "ani = FuncAnimation(fig, update, interval=50)\n",271    "plt.legend(loc='upper right')\n",272    "plt.show()\n"273   ]274  }275 ],276 "metadata": {277  "kernelspec": {278   "display_name": "Python [conda env:base] *",279   "language": "python",280   "name": "conda-base-py"281  },282  "language_info": {283   "codemirror_mode": {284    "name": "ipython",285    "version": 3286   },287   "file_extension": ".py",288   "mimetype": "text/x-python",289   "name": "python",290   "nbconvert_exporter": "python",291   "pygments_lexer": "ipython3",292   "version": "3.12.7"293  }294 },295 "nbformat": 4,296 "nbformat_minor": 5297}298