{
  "place_id": "NMS:FKNMS",
  "dataset_id": "moda_npp_mo_glob",
  "variable": "npp",
  "categorical": false,
  "start_date": "2002-07-31",
  "end_date": "2023-12-31",
  "start_datetime": "2002-07-31T00:00:00Z",
  "end_datetime": "2023-12-31T00:00:00Z",
  "record_start": "2002-07-31",
  "lobes": 1,
  "mask_cells": 191,
  "axes": [
    {
      "bbox": [
        -83.1498852,
        24.300408,
        -80.0664707,
        25.6504576
      ],
      "lon": [
        -83.166664,
        -83.083336,
        -83,
        -82.916664,
        -82.833336,
        -82.75,
        -82.666664,
        -82.583336,
        -82.5,
        -82.416664,
        -82.333336,
        -82.25,
        -82.166664,
        -82.083336,
        -82,
        -81.916664,
        -81.833336,
        -81.75,
        -81.666664,
        -81.583336,
        -81.5,
        -81.416664,
        -81.333336,
        -81.25,
        -81.166664,
        -81.083336,
        -81,
        -80.916664,
        -80.833336,
        -80.75,
        -80.666664,
        -80.583336,
        -80.5,
        -80.416664,
        -80.333336,
        -80.25,
        -80.166664,
        -80.083336
      ],
      "lat": [
        25.63687,
        25.553497,
        25.470125,
        25.386753,
        25.303381,
        25.220009,
        25.136637,
        25.053265,
        24.969894,
        24.886522,
        24.80315,
        24.719778,
        24.636406,
        24.553034,
        24.469662,
        24.38629,
        24.302917
      ]
    }
  ],
  "griddap_urls": [
    "https://erddap.oceanmetrics.io/erddap/griddap/moda_npp_mo_glob.parquet?npp%5B(2002-07-31T00:00:00Z):1:(2010-02-08T12:00:00Z)%5D%5B(25.63687):1:(24.302917)%5D%5B(-83.166664):1:(-80.083336)%5D",
    "https://erddap.oceanmetrics.io/erddap/griddap/moda_npp_mo_glob.parquet?npp%5B(2010-02-09T12:00:00Z):1:(2017-08-20T12:00:00Z)%5D%5B(25.63687):1:(24.302917)%5D%5B(-83.166664):1:(-80.083336)%5D",
    "https://erddap.oceanmetrics.io/erddap/griddap/moda_npp_mo_glob.parquet?npp%5B(2017-08-21T12:00:00Z):1:(2023-12-31T00:00:00Z)%5D%5B(25.63687):1:(24.302917)%5D%5B(-83.166664):1:(-80.083336)%5D"
  ],
  "griddap_url_templates": [
    "https://erddap.oceanmetrics.io/erddap/griddap/moda_npp_mo_glob.parquet?npp%5B({t0}):1:({t1})%5D%5B(25.63687):1:(24.302917)%5D%5B(-83.166664):1:(-80.083336)%5D"
  ],
  "griddap_chunks": [
    [
      "2002-07-31T00:00:00Z",
      "2010-02-08T12:00:00Z"
    ],
    [
      "2010-02-09T12:00:00Z",
      "2017-08-20T12:00:00Z"
    ],
    [
      "2017-08-21T12:00:00Z",
      "2023-12-31T00:00:00Z"
    ]
  ],
  "griddap_requests": 3,
  "rows": 259,
  "bytes": 13556,
  "generated": "2026-10-22T14:38:30Z",
  "erddap_base": "https://erddap.oceanmetrics.io/erddap",
  "erddap_version": "2.31.1",
  "sql": "-- daily key statistics for one place from an ERDDAP griddap slab.\n--   s.\"npp\"  the value expression over the slab alias `s` (e.g. s.\"CRW_SST\", or\n--             (s.\"analysed_sst\" - 273.15) to convert Kelvin to Celsius)\n--   (SELECT DISTINCT * FROM read_parquet([<one griddap slab per lobe for the chunk>]))  the registered griddap file (parquet) or view\n--   mask  the mask table: latitude, longitude, weight (0,1]\n-- the join is an exact equality on ROUND(x, 3): the ERDDAP axis is float32 in the parquet and float64\n-- in the JS mask, so 21.375 arrives as 21.374999... on one side; rounding to the grid's 3 decimals\n-- (0.05 spacing) makes the two match without a tolerance join.\nSELECT\n  -- utc day; via epoch_ms because duckdb-wasm ships without icu, so TIMESTAMPTZ::DATE is unimplemented there\n  make_timestamp(epoch_ms(s.\"time\") * 1000)::DATE   AS date,\n  count(s.\"npp\")                                  AS n,\n  avg(s.\"npp\")                                    AS mean,\n  sum(s.\"npp\" * m.weight) / sum(m.weight)         AS mean_wt,\n  stddev_samp(s.\"npp\")                            AS sd,\n  min(s.\"npp\")                                    AS min,\n  max(s.\"npp\")                                    AS max,\n  quantile_cont(s.\"npp\", 0.10)                    AS p10,\n  quantile_cont(s.\"npp\", 0.90)                    AS p90,\n  sum(m.weight)                                     AS weight_sum\nFROM (SELECT DISTINCT * FROM read_parquet([<one griddap slab per lobe for the chunk>])) s\nJOIN mask m\n  ON  ROUND(s.latitude::DOUBLE,  3) = ROUND(m.latitude::DOUBLE,  3)\n  AND ROUND(s.longitude::DOUBLE, 3) = ROUND(m.longitude::DOUBLE, 3)\nWHERE s.\"npp\" IS NOT NULL\nGROUP BY 1\nORDER BY 1"
}
