.. _license_runs: ========================================== PyWAsP Subscriptions: How Runs are Counted ========================================== Overview -------- PyWAsP subscriptions use a `tier system `_ with three one-year subscription options: * **Bronze** - Entry-level tier 6000 runs per year, 25000 points per run * **Silver** - Mid-level tier 42000 runs per year, 125000 points per run * **Gold** - Premium tier 294000 runs per year, 625000 points per run Each tier has limits on: * Maximum number of runs per year * Maximum points per run What Counts as a Run? --------------------- A run is counted each time you call one of these core methods: * :meth:`pywasp.wasp.TopographyMap.get_site_effects` * :meth:`pywasp.wasp.TopographyMap.get_site_effects_rose` * :meth:`pywasp.lincom.FourierSpace.create_fourier_space` **Functions that consume runs internally:** * :func:`pywasp.wasp.generalize` * :func:`pywasp.wasp.downscale` * :func:`pywasp.wasp.predict_wwc` (consumes **2 runs** - calls ``get_site_effects`` twice) * :func:`pywasp.lincom.create_lut` How Points are Calculated ------------------------- The number of points in a run equals the total spatial output points requested. **For cuboid-shaped outputs:** Points = ``NX × NY × NZ`` **Example: Counting points in a dataset** Use ``windkit.spatial.count_spatial_points`` to determine point counts: .. ipython:: python import windkit as wk # Create a cuboid dataset output_locs_cuboid = wk.spatial.create_dataset( [0, 50, 100], # X coordinates [-100, -50, 0], # Y coordinates [50, 75, 100], # Z coordinates struct="cuboid", crs="EPSG:25832" ) print(output_locs_cuboid) print(f"Points: {wk.spatial.count_spatial_points(output_locs_cuboid)}") **Point count stays the same across spatial structures:** .. ipython:: python # Convert to point structure output_locs_pts = wk.spatial.to_point(output_locs_cuboid) print(output_locs_pts) print(f"Points: {wk.spatial.count_spatial_points(output_locs_pts)}") Subscription Tier Examples --------------------------- Here's how different calculations map to subscription tiers: **Bronze Tier Example** * Grid: 100 × 100 × 2 heights * Points: ``100 × 100 × 2 = 20,000`` * ✅ Within Bronze limits (25,000 points per run) **Silver Tier Example** * Grid: 200 × 200 × 3 heights * Points: ``200 × 200 × 3 = 120,000`` * ✅ Requires Silver tier or higher (125,000 points per run) **Gold Tier Example** * Grid: 250 × 250 × 10 heights * Points: ``250 × 250 × 10 = 625,000`` * ✅ Requires Gold tier (625,000 points per run) **Exceeding Gold Tier Limits** * Grid: 300 × 300 × 8 heights * Points: ``300 × 300 × 8 = 720,000`` * ❌ Exceeds Gold tier limits (625,000 points per run) * **Solution:** Split into multiple smaller runs (each run counts toward your total allowance)