{
  "_id": "6ab8f51c99f7aa8c6aa38ede",
  "Package": "luxR",
  "Type": "Package",
  "Title": "Underwater Light Analysis and Visual Ecology",
  "Version": "0.1.1",
  "Date": "2026-07-29",
  "Authors@R": "person(given = c(\"John\", \"D\"),\nfamily = \"Kirwan\",\nrole  = c(\"aut\", \"cre\"),\nemail = \"jkirwan+luxR@pm.me\")",
  "Description": "Tools for quantifying and modelling underwater light\nenvironments. Propagates spectral irradiance through the water\ncolumn via Beer-Lambert attenuation, computes\nphotosynthetically active radiation (PAR), and converts between\nenergy and photon-flux units. Provides the 'lux_spectrum' S3\nclass for unit-safe spectral arithmetic and format readers for\nTriOS RAMSES and Ocean Optics instruments. The optional\n'lightr' package parses further instrument formats into strict\nnative records; explicit measurement, scale, calibration, and\nresampling policies govern conversion via read_spectrum().\nSpectra convert to and from the generic spectral classes of the\noptional 'photobiology' package, which also serves as the\nreference implementation luxR's integration and photometry are\nvalidated against. Includes visual ecology utilities:\nGovardovskii (2000) visual-pigment templates, photoreceptor\nquantum catch, Vorobyev-Osorio colour discrimination (JND),\nSecchi depth, and explicitly unvalidated contrast-threshold\ndistance scenarios.",
  "License": "GPL (>= 3)",
  "URL": "https://johnkirwan.github.io/luxR/,\nhttps://github.com/JohnKirwan/luxR",
  "BugReports": "https://github.com/JohnKirwan/luxR/issues",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "RoxygenNote": "8.0.0",
  "RdMacros": "Rdpack",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.0.0",
  "Repository": "https://johnkirwan.r-universe.dev",
  "Date/Publication": "2026-07-29 21:25:56 UTC",
  "RemoteUrl": "https://github.com/JohnKirwan/luxR",
  "RemoteRef": "HEAD",
  "RemoteSha": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-27 10:46:18 UTC",
    "User": "root"
  },
  "Author": "John D Kirwan [aut, cre]",
  "Maintainer": "John D Kirwan <jkirwan+luxR@pm.me>",
  "_user": "johnkirwan",
  "_type": "src",
  "_file": "luxR_0.1.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/2cb4696c9497c2c5a4113116a7e5989450b63db45d722a7edf630d59d3490578",
  "_filesize": 3093056,
  "_sha256": "2cb4696c9497c2c5a4113116a7e5989450b63db45d722a7edf630d59d3490578",
  "_expires": "2027-01-05T10:51:06.000Z",
  "_created": "2026-09-27T10:46:18.000Z",
  "_published": "2026-09-27T10:51:08.592Z",
  "_jobs": [
    {
      "job": 108604124600,
      "time": 236,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10930405148"
    },
    {
      "job": 108604124574,
      "time": 149,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10929797372"
    },
    {
      "job": 108604124641,
      "time": 109,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10930111297"
    },
    {
      "job": 108604124606,
      "time": 97,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10929871907"
    },
    {
      "job": 108603506521,
      "time": 247,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10929584041"
    },
    {
      "job": 108604124531,
      "time": 128,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10929678168"
    },
    {
      "job": 108604124604,
      "time": 112,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10929946633"
    },
    {
      "job": 108604124601,
      "time": 110,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10928944977"
    },
    {
      "job": 108604124608,
      "time": 129,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10929692984"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/johnkirwan/actions/runs/36313393458",
  "_status": "success",
  "_upstream": "https://github.com/JohnKirwan/luxR",
  "_commit": {
    "id": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
    "author": "John Kirwan <john@jkirwan.org>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Merge pull request #5 from JohnKirwan/feature/posit-connect-link\n\nUse Posit Connect as the canonical live app",
    "time": 1785360356
  },
  "_maintainer": {
    "name": "John D Kirwan",
    "email": "jkirwan+luxr@pm.me"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5.0",
      "role": "Depends"
    },
    {
      "package": "graphics",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "Rdpack",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "version": ">= 1.7.0",
      "role": "Suggests"
    },
    {
      "package": "lightr",
      "version": ">= 2.0.0",
      "role": "Suggests"
    },
    {
      "package": "pavo",
      "version": ">= 2.9.0",
      "role": "Suggests"
    },
    {
      "package": "photobiology",
      "version": ">= 0.11.0",
      "role": "Suggests"
    },
    {
      "package": "colourvision",
      "version": ">= 2.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    }
  ],
  "_owner": "johnkirwan",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-30",
      "n": 5
    },
    {
      "week": "2026-31",
      "n": 5
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-07-24"
    },
    {
      "name": "v0.1.1",
      "date": "2026-07-29"
    }
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "johnkirwan",
      "count": 24,
      "uuid": 3696221
    }
  ],
  "_userbio": {
    "uuid": 3696221,
    "type": "user",
    "name": "John Kirwan",
    "followers": 6
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/luxR"
  },
  "_devurl": "https://github.com/johnkirwan/luxr",
  "_pkgdown": "https://johnkirwan.github.io/luxR/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/luxR.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_cranurl": false,
  "_exports": [
    "absorbance",
    "angle_of_polarization",
    "as_colourvision",
    "as_lux_spectrum",
    "as_reflector_spct",
    "as_rspec",
    "as_source_spct",
    "attenuate_depth",
    "attenuate_spectrum",
    "band_irradiance",
    "beam_attenuation",
    "broadband2spectrum",
    "colour_jnd",
    "contrast_at_distance",
    "convert_unit",
    "degree_of_polarization",
    "detectability",
    "detection_range",
    "fit_Kd",
    "fit_sensitivity",
    "fresnel_reflectance",
    "from_naples",
    "from_ocean_optics",
    "from_solar",
    "from_trios",
    "ft2m",
    "govardovskii_template",
    "inherent_contrast",
    "irradiance2lux",
    "irradiance2radiance",
    "jerlov_Kd",
    "light_at_depth",
    "lux_spectrum",
    "lux2irradiance",
    "m2ft",
    "michelson_contrast",
    "n2W_spec_irradiance",
    "par_fraction",
    "par_irradiance",
    "photic_depth",
    "photon2W",
    "plot_spectra",
    "polarization_contrast",
    "propagate_depth",
    "propagate_spectrum",
    "quantum_catch",
    "radiance2irradiance",
    "read_instrument_spectrum",
    "read_ocean_optics",
    "read_spectrum",
    "read_trios",
    "receptor_absorptance",
    "reflectance_to_radiance",
    "refracted_solar_angle",
    "resample_spectrum",
    "run_app",
    "scattering_angle",
    "scotopic_lux",
    "secchi_depth",
    "single_scattering_albedo",
    "snells_window",
    "solar_irradiance",
    "species_brightness",
    "species_LEF",
    "species_sensitivity_matrix",
    "surface_transmittance",
    "transmittance",
    "underwater_polarization",
    "unit_expression",
    "unit_label",
    "visual_range",
    "W2mol_spec_irradiance",
    "W2photon",
    "wavelength_in_medium",
    "weber_contrast"
  ],
  "_datasets": [
    {
      "name": "CIE_scotopic",
      "title": "CIE Scotopic Luminous Efficiency Function",
      "object": "CIE_scotopic",
      "class": [
        "data.frame"
      ],
      "fields": [
        "lambda",
        "W"
      ],
      "rows": 401,
      "table": true,
      "tojson": true
    },
    {
      "name": "CIE1931",
      "title": "CIE Photopic Luminous Efficiency Function",
      "object": "CIE1931",
      "class": [
        "data.frame"
      ],
      "fields": [
        "lambda",
        "W"
      ],
      "rows": 471,
      "table": true,
      "tojson": true
    },
    {
      "name": "jerlov_types",
      "title": "Diffuse attenuation coefficients for Jerlov optical water types.",
      "object": "jerlov_types",
      "class": [
        "data.frame"
      ],
      "fields": [
        "type",
        "lambda",
        "Kd"
      ],
      "rows": 120,
      "table": true,
      "tojson": true
    },
    {
      "name": "Naples",
      "title": "Example downwelling irradiance from Mare Chiaro, Gulf of Naples",
      "object": "Naples",
      "class": [
        "data.frame"
      ],
      "fields": [
        "wv",
        "depth_0m",
        "depth_5m",
        "depth_10m"
      ],
      "rows": 103,
      "table": true,
      "tojson": true
    },
    {
      "name": "solar_spectra",
      "title": "ASTM G173-03 reference solar spectral irradiance.",
      "object": "solar_spectra",
      "class": [
        "list"
      ],
      "fields": [],
      "table": true,
      "tojson": true
    },
    {
      "name": "species_channel_support",
      "title": "Species visual-channel support decisions.",
      "object": "species_channel_support",
      "class": [
        "data.frame"
      ],
      "fields": [
        "species",
        "channel_role",
        "status",
        "reason",
        "source"
      ],
      "rows": 16,
      "table": true,
      "tojson": true
    },
    {
      "name": "species_channels",
      "title": "Validated visual-channel memberships for selected species.",
      "object": "species_channels",
      "class": [
        "data.frame"
      ],
      "fields": [
        "species",
        "channel",
        "channel_role",
        "receptor",
        "weight",
        "is_default",
        "source"
      ],
      "rows": 13,
      "table": true,
      "tojson": true
    },
    {
      "name": "species_sensitivities",
      "title": "Photoreceptor spectral sensitivities for selected species.",
      "object": "species_sensitivities",
      "class": [
        "data.frame"
      ],
      "fields": [
        "species",
        "receptor",
        "lambda_max",
        "chromophore",
        "channel_role",
        "source"
      ],
      "rows": 27,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "luxR-package",
      "title": "luxR: Underwater Light Analysis and Visual Ecology",
      "topics": [
        "luxR-package",
        "luxR"
      ]
    },
    {
      "page": "absorbance",
      "title": "Absorbance (optical density) from transmittance.",
      "topics": [
        "absorbance"
      ]
    },
    {
      "page": "angle_of_polarization",
      "title": "Angle of polarization (e-vector orientation) from Stokes parameters",
      "topics": [
        "angle_of_polarization"
      ]
    },
    {
      "page": "as_colourvision",
      "title": "Convert luxR spectra to a colourvision input data frame",
      "topics": [
        "as_colourvision",
        "as_colourvision.list",
        "as_colourvision.lux_spectrum"
      ]
    },
    {
      "page": "as_lux_spectrum",
      "title": "Coerce an object to lux_spectrum",
      "topics": [
        "as_lux_spectrum",
        "as_lux_spectrum.data.frame",
        "as_lux_spectrum.lux_instrument_spectrum",
        "as_lux_spectrum.lux_spectrum",
        "as_lux_spectrum.numeric",
        "as_lux_spectrum.reflector_spct",
        "as_lux_spectrum.rspec",
        "as_lux_spectrum.source_spct"
      ]
    },
    {
      "page": "as_reflector_spct",
      "title": "Convert luxR reflectance to a photobiology reflector_spct",
      "topics": [
        "as_reflector_spct",
        "as_reflector_spct.list",
        "as_reflector_spct.lux_spectrum"
      ]
    },
    {
      "page": "as_rspec",
      "title": "Convert luxR spectra to a pavo 'rspec' object",
      "topics": [
        "as_rspec",
        "as_rspec.list",
        "as_rspec.lux_spectrum"
      ]
    },
    {
      "page": "as_source_spct",
      "title": "Convert luxR spectra to photobiology spectral classes",
      "topics": [
        "as_source_spct",
        "as_source_spct.list",
        "as_source_spct.lux_spectrum"
      ]
    },
    {
      "page": "attenuate_depth",
      "title": "Beer-Lambert attenuation at a single wavelength.",
      "topics": [
        "attenuate_depth"
      ]
    },
    {
      "page": "attenuate_spectrum",
      "title": "Propagate a surface spectrum through the water column.",
      "topics": [
        "attenuate_spectrum",
        "attenuate_spectrum.lux_spectrum",
        "attenuate_spectrum.numeric"
      ]
    },
    {
      "page": "band_irradiance",
      "title": "Band-integrated irradiance at one or more depths",
      "topics": [
        "band_irradiance",
        "band_irradiance.lux_spectrum",
        "band_irradiance.numeric"
      ]
    },
    {
      "page": "beam_attenuation",
      "title": "Beam attenuation coefficient from absorption and scattering.",
      "topics": [
        "beam_attenuation"
      ]
    },
    {
      "page": "broadband2spectrum",
      "title": "Convert a broadband scalar reading into a plausible spectrum.",
      "topics": [
        "broadband2spectrum"
      ]
    },
    {
      "page": "CIE_scotopic",
      "title": "CIE Scotopic Luminous Efficiency Function",
      "topics": [
        "CIE_scotopic"
      ]
    },
    {
      "page": "CIE1931",
      "title": "CIE Photopic Luminous Efficiency Function",
      "topics": [
        "CIE1931"
      ]
    },
    {
      "page": "colour_jnd",
      "title": "Chromatic distance between two illuminants (Vorobyev-Osorio model).",
      "topics": [
        "colour_jnd"
      ]
    },
    {
      "page": "contrast_at_distance",
      "title": "Heuristic scalar contrast remaining after a sighting path through water.",
      "topics": [
        "contrast_at_distance"
      ]
    },
    {
      "page": "convert_unit",
      "title": "Convert a lux_spectrum to a different unit",
      "topics": [
        "convert_unit"
      ]
    },
    {
      "page": "degree_of_polarization",
      "title": "Degree of polarization from Stokes parameters",
      "topics": [
        "degree_of_polarization"
      ]
    },
    {
      "page": "detectability",
      "title": "Object-vs-background detection summary.",
      "topics": [
        "detectability"
      ]
    },
    {
      "page": "detection_range",
      "title": "Scenario estimate of object-background threshold-crossing distance.",
      "topics": [
        "detection_range"
      ]
    },
    {
      "page": "fit_Kd",
      "title": "Estimate the diffuse attenuation coefficient from two irradiance readings.",
      "topics": [
        "fit_Kd",
        "fit_Kd.lux_spectrum",
        "fit_Kd.numeric"
      ]
    },
    {
      "page": "fit_sensitivity",
      "title": "Fit a Govardovskii visual-pigment template to measured spectral sensitivity.",
      "topics": [
        "fit_sensitivity"
      ]
    },
    {
      "page": "fresnel_reflectance",
      "title": "Fresnel reflectance at the air-water interface.",
      "topics": [
        "fresnel_reflectance"
      ]
    },
    {
      "page": "from_naples",
      "title": "Load a Naples depth spectrum as a lux_spectrum",
      "topics": [
        "from_naples"
      ]
    },
    {
      "page": "from_ocean_optics",
      "title": "Read a calibrated Ocean Optics spectrum as a lux_spectrum",
      "topics": [
        "from_ocean_optics"
      ]
    },
    {
      "page": "from_solar",
      "title": "Load a reference solar spectrum as a lux_spectrum",
      "topics": [
        "from_solar"
      ]
    },
    {
      "page": "from_trios",
      "title": "Read a TriOS RAMSES file as calibrated radiance spectra",
      "topics": [
        "from_trios"
      ]
    },
    {
      "page": "ft2m",
      "title": "Convert feet to metres.",
      "topics": [
        "ft2m"
      ]
    },
    {
      "page": "govardovskii_template",
      "title": "Govardovskii et al. (2000) visual-pigment template.",
      "topics": [
        "govardovskii_template"
      ]
    },
    {
      "page": "inherent_contrast",
      "title": "Inherent (zero-distance) contrast of an object against its background.",
      "topics": [
        "inherent_contrast"
      ]
    },
    {
      "page": "irradiance2lux",
      "title": "Provide lux values for measures of spectral irradiance.",
      "topics": [
        "irradiance2lux",
        "irradiance2lux.default",
        "irradiance2lux.lux_spectrum",
        "irradiance2lux.numeric"
      ]
    },
    {
      "page": "irradiance2radiance",
      "title": "Convert irradiance to radiance under a geometry assumption.",
      "topics": [
        "irradiance2radiance"
      ]
    },
    {
      "page": "jerlov_Kd",
      "title": "Diffuse attenuation coefficient for Jerlov optical water types.",
      "topics": [
        "jerlov_Kd"
      ]
    },
    {
      "page": "jerlov_types",
      "title": "Diffuse attenuation coefficients for Jerlov optical water types.",
      "topics": [
        "jerlov_types"
      ]
    },
    {
      "page": "light_at_depth",
      "title": "In-water downwelling spectral irradiance at a single depth.",
      "topics": [
        "light_at_depth"
      ]
    },
    {
      "page": "lux_spectrum",
      "title": "Create a lux_spectrum object",
      "topics": [
        "*.lux_spectrum",
        "+.lux_spectrum",
        "-.lux_spectrum",
        "/.lux_spectrum",
        "as.data.frame.lux_spectrum",
        "lux_spectrum",
        "plot.list",
        "plot.lux_spectrum",
        "print.lux_spectrum",
        "summary.lux_spectrum",
        "[.lux_spectrum"
      ]
    },
    {
      "page": "lux2irradiance",
      "title": "Distribute integrated lux across a reference spectral shape.",
      "topics": [
        "lux2irradiance"
      ]
    },
    {
      "page": "m2ft",
      "title": "Convert metres to feet.",
      "topics": [
        "m2ft"
      ]
    },
    {
      "page": "michelson_contrast",
      "title": "Michelson contrast",
      "topics": [
        "michelson_contrast"
      ]
    },
    {
      "page": "n2W_spec_irradiance",
      "title": "Convert photon-count spectral irradiance to W m^-2 nm^-1.",
      "topics": [
        "n2W_spec_irradiance",
        "n2W_spec_irradiance.lux_spectrum",
        "n2W_spec_irradiance.numeric"
      ]
    },
    {
      "page": "Naples",
      "title": "Example downwelling irradiance from Mare Chiaro, Gulf of Naples",
      "topics": [
        "Naples"
      ]
    },
    {
      "page": "par_fraction",
      "title": "Fraction of spectral irradiance in the PAR window.",
      "topics": [
        "par_fraction",
        "par_fraction.lux_spectrum",
        "par_fraction.numeric"
      ]
    },
    {
      "page": "par_irradiance",
      "title": "PAR irradiance from a spectral irradiance measurement.",
      "topics": [
        "par_irradiance",
        "par_irradiance.lux_spectrum",
        "par_irradiance.numeric"
      ]
    },
    {
      "page": "photic_depth",
      "title": "Depth at which a given fraction of surface light remains.",
      "topics": [
        "photic_depth"
      ]
    },
    {
      "page": "photon2W",
      "title": "Convert photon counts to watts at a given wavelength.",
      "topics": [
        "photon2W"
      ]
    },
    {
      "page": "plot_spectra",
      "title": "Plot a list of lux_spectrum objects as overlaid lines.",
      "topics": [
        "plot_spectra"
      ]
    },
    {
      "page": "polarization_contrast",
      "title": "Polarization contrast between a target and its background",
      "topics": [
        "polarization_contrast"
      ]
    },
    {
      "page": "propagate_depth",
      "title": "Propagate a known irradiance to any other depth (bidirectional).",
      "topics": [
        "propagate_depth"
      ]
    },
    {
      "page": "propagate_spectrum",
      "title": "Propagate a known spectrum to any other depth(s) (bidirectional).",
      "topics": [
        "propagate_spectrum",
        "propagate_spectrum.lux_spectrum",
        "propagate_spectrum.numeric"
      ]
    },
    {
      "page": "quantum_catch",
      "title": "Sensitivity-weighted photon irradiance.",
      "topics": [
        "quantum_catch"
      ]
    },
    {
      "page": "radiance2irradiance",
      "title": "Convert radiance to irradiance under a geometry assumption.",
      "topics": [
        "radiance2irradiance"
      ]
    },
    {
      "page": "read_instrument_spectrum",
      "title": "Parse one instrument spectrum with lightr",
      "topics": [
        "read_instrument_spectrum"
      ]
    },
    {
      "page": "read_ocean_optics",
      "title": "Strictly parse an Ocean Optics / Ocean Insight spectrum file",
      "topics": [
        "read_ocean_optics"
      ]
    },
    {
      "page": "read_spectrum",
      "title": "Read a declared, calibrated spectrum with lightr",
      "topics": [
        "read_spectrum"
      ]
    },
    {
      "page": "read_trios",
      "title": "Read a TriOS RAMSES spectroradiometer data file",
      "topics": [
        "read_trios"
      ]
    },
    {
      "page": "receptor_absorptance",
      "title": "Photoreceptor absorptance from a normalised absorbance template (self-screening).",
      "topics": [
        "receptor_absorptance"
      ]
    },
    {
      "page": "reflectance_to_radiance",
      "title": "Convert spectral reflectance to spectral radiance",
      "topics": [
        "reflectance_to_radiance",
        "reflectance_to_radiance.lux_spectrum",
        "reflectance_to_radiance.numeric"
      ]
    },
    {
      "page": "refracted_solar_angle",
      "title": "Refracted zenith angle of the sun beneath the surface",
      "topics": [
        "refracted_solar_angle"
      ]
    },
    {
      "page": "resample_spectrum",
      "title": "Resample a spectrum to a new wavelength grid",
      "topics": [
        "resample_spectrum",
        "resample_spectrum.lux_spectrum",
        "resample_spectrum.numeric"
      ]
    },
    {
      "page": "run_app",
      "title": "Launch the luxR Shiny explorer.",
      "topics": [
        "run_app"
      ]
    },
    {
      "page": "scattering_angle",
      "title": "Angle between a line of sight and the solar beam",
      "topics": [
        "scattering_angle"
      ]
    },
    {
      "page": "scotopic_lux",
      "title": "Compute scotopic illuminance (V'(lambda) weighting).",
      "topics": [
        "scotopic_lux",
        "scotopic_lux.default",
        "scotopic_lux.lux_spectrum",
        "scotopic_lux.numeric"
      ]
    },
    {
      "page": "secchi_depth",
      "title": "Secchi depth from diffuse attenuation coefficient(s).",
      "topics": [
        "secchi_depth"
      ]
    },
    {
      "page": "single_scattering_albedo",
      "title": "Single-scattering albedo.",
      "topics": [
        "single_scattering_albedo"
      ]
    },
    {
      "page": "snells_window",
      "title": "Snell's window half-angle.",
      "topics": [
        "snells_window"
      ]
    },
    {
      "page": "solar_irradiance",
      "title": "Reference solar spectral irradiance under standard conditions.",
      "topics": [
        "solar_irradiance"
      ]
    },
    {
      "page": "solar_spectra",
      "title": "ASTM G173-03 reference solar spectral irradiance.",
      "topics": [
        "solar_spectra"
      ]
    },
    {
      "page": "species_brightness",
      "title": "Per-species sensitivity-weighted photon irradiance.",
      "topics": [
        "species_brightness"
      ]
    },
    {
      "page": "species_channel_support",
      "title": "Species visual-channel support decisions.",
      "topics": [
        "species_channel_support"
      ]
    },
    {
      "page": "species_channels",
      "title": "Validated visual-channel memberships for selected species.",
      "topics": [
        "species_channels"
      ]
    },
    {
      "page": "species_LEF",
      "title": "Spectral sensitivity for a named species and photoreceptor class.",
      "topics": [
        "species_LEF"
      ]
    },
    {
      "page": "species_sensitivities",
      "title": "Photoreceptor spectral sensitivities for selected species.",
      "topics": [
        "species_sensitivities"
      ]
    },
    {
      "page": "species_sensitivity_matrix",
      "title": "Photoreceptor sensitivity matrix for colourvision",
      "topics": [
        "species_sensitivity_matrix"
      ]
    },
    {
      "page": "surface_transmittance",
      "title": "Fraction of downwelling irradiance transmitted across the water surface.",
      "topics": [
        "surface_transmittance"
      ]
    },
    {
      "page": "transmittance",
      "title": "Beer-Lambert transmittance over a path.",
      "topics": [
        "transmittance"
      ]
    },
    {
      "page": "underwater_polarization",
      "title": "Tunable Rayleigh-like approximation to underwater polarization",
      "topics": [
        "underwater_polarization"
      ]
    },
    {
      "page": "unit_expression",
      "title": "Render a unit string as a plotmath expression",
      "topics": [
        "unit_expression"
      ]
    },
    {
      "page": "unit_label",
      "title": "Render a unit string for display",
      "topics": [
        "unit_label"
      ]
    },
    {
      "page": "visual_range",
      "title": "Heuristic horizontal visual-range estimate in water.",
      "topics": [
        "visual_range"
      ]
    },
    {
      "page": "W2mol_spec_irradiance",
      "title": "Convert energy spectral irradiance to molar photon flux.",
      "topics": [
        "W2mol_spec_irradiance",
        "W2mol_spec_irradiance.lux_spectrum",
        "W2mol_spec_irradiance.numeric"
      ]
    },
    {
      "page": "W2photon",
      "title": "Convert watts to photon counts at a given wavelength.",
      "topics": [
        "W2photon"
      ]
    },
    {
      "page": "wavelength_in_medium",
      "title": "Wavelength of light inside an optical medium.",
      "topics": [
        "wavelength_in_medium"
      ]
    },
    {
      "page": "weber_contrast",
      "title": "Weber contrast",
      "topics": [
        "weber_contrast"
      ]
    }
  ],
  "_pkglogo": "https://github.com/JohnKirwan/luxR/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/JohnKirwan/luxR/raw/HEAD/README.md",
  "_rundeps": [
    "rbibutils",
    "Rdpack"
  ],
  "_vignettes": [
    {
      "source": "visual-ecology.Rmd",
      "filename": "visual-ecology.html",
      "title": "From photons to perception",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Units and conversions",
        "How the spectrum changes with depth",
        "Building a visual model",
        "Reflectance to radiance",
        "Colour discrimination",
        "Validation against pavo",
        "Interoperating with pavo",
        "Interoperating with colourvision",
        "Validation against colourvision"
      ],
      "created": "2026-07-24 12:42:22",
      "modified": "2026-07-29 13:28:56",
      "commits": 2
    },
    {
      "source": "light-in-water.Rmd",
      "filename": "light-in-water.html",
      "title": "Light in the water column",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Loading field data",
        "Converting units",
        "Validation against photobiology",
        "PAR across depth",
        "Fitting attenuation from measurements",
        "Extending to depth with a Jerlov model",
        "Band-integrated irradiance",
        "Photic depth"
      ],
      "created": "2026-07-24 12:42:22",
      "modified": "2026-07-24 12:42:22",
      "commits": 1
    },
    {
      "source": "polarization.Rmd",
      "filename": "polarization.html",
      "title": "Polarization of the underwater light field",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The model",
        "Degree of polarization across the sky",
        "How polarization fades with depth",
        "The e-vector"
      ],
      "created": "2026-07-24 12:42:22",
      "modified": "2026-07-24 12:42:22",
      "commits": 1
    },
    {
      "source": "seeing-through-water.Rmd",
      "filename": "seeing-through-water.html",
      "title": "Seeing through water: from sunlight to detection",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Sunlight to depth",
        "2. Light to capture",
        "3. Capture to detection",
        "Summary"
      ],
      "created": "2026-07-24 12:42:22",
      "modified": "2026-07-29 13:28:56",
      "commits": 2
    }
  ],
  "_score": 3.6020599913279625,
  "_indexed": true,
  "_nocasepkg": "luxr",
  "_universes": [
    "johnkirwan"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.1",
      "date": "2026-09-27T10:49:52.000Z",
      "distro": "resolute",
      "commit": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
      "fileid": "https://r2.ropensci.org/e1042683ed135421000fac5611346bd37f1ea539d7e293e17728e73ab968d18a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/johnkirwan/actions/runs/36313393458"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.1",
      "date": "2026-09-27T10:48:48.000Z",
      "distro": "resolute",
      "commit": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
      "fileid": "https://r2.ropensci.org/abb0e4560224c09c754ee400e9159a10fae6dfe5122580eab1b0f912e7b686be",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/johnkirwan/actions/runs/36313393458"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.1",
      "date": "2026-09-27T10:48:12.000Z",
      "commit": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
      "fileid": "https://r2.ropensci.org/95a8da42f95f03b2620c0f4009e19c1afe085bfa925e9304a09e8301db0db7ec",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/johnkirwan/actions/runs/36313393458"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.1",
      "date": "2026-09-27T10:48:03.000Z",
      "commit": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
      "fileid": "https://r2.ropensci.org/8e3066dee46e4cbea13f46b82f1aac5a499e43d323efe15639fd6b7ca657cfd5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/johnkirwan/actions/runs/36313393458"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.1",
      "date": "2026-09-27T10:48:54.000Z",
      "commit": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
      "fileid": "https://r2.ropensci.org/fbefff9a1d43d3008fb591efaa95d3d57cbb1d6d700d99bfe2673d9ad2e40112",
      "status": "success",
      "buildurl": "https://github.com/r-universe/johnkirwan/actions/runs/36313393458"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.1",
      "date": "2026-09-27T10:47:37.000Z",
      "commit": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
      "fileid": "https://r2.ropensci.org/fe5add9f046004022226655d91c83648ff08ff95002d1602c89308c4cbbc8de4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/johnkirwan/actions/runs/36313393458"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.1",
      "date": "2026-09-27T10:47:47.000Z",
      "commit": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
      "fileid": "https://r2.ropensci.org/412cadf078c5de1d6ec576d3bda0196c31da62ae9bb88ce78c18a62978ef8574",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/johnkirwan/actions/runs/36313393458"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.1",
      "date": "2026-09-27T10:47:48.000Z",
      "commit": "75ae5c201a47cf658f3ea43bb9ef75689be01158",
      "fileid": "https://r2.ropensci.org/0469d01cc502e860c9417bf5f65b9259720b164d722cbfda7029652627262cff",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/johnkirwan/actions/runs/36313393458"
    }
  ]
}