pub struct OpendapAdapter {
pub id: &'static str,
pub endpoint: String,
pub dataset_id: String,
}Expand description
Adapter for Open-source Project for a Network Data Access Protocol (OPeNDAP) endpoints. Primarily used for subsetting massive 4D/5D NetCDF arrays (e.g. atmospheric layers, ocean currents).
Fields§
§id: &'static str§endpoint: String§dataset_id: StringImplementations§
Trait Implementations§
Source§impl DataAdapter for OpendapAdapter
impl DataAdapter for OpendapAdapter
Source§fn adapter_id(&self) -> &'static str
fn adapter_id(&self) -> &'static str
Returns the unique identifier for this adapter (e.g., “dem_adapter”)
Source§fn build_fetch_request(
&self,
_bbox: (f64, f64, f64, f64),
_time_range: (u64, u64),
registry: &NetworkDisclosureRegistry,
) -> Result<AdapterHttpRequest, String>
fn build_fetch_request( &self, _bbox: (f64, f64, f64, f64), _time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<AdapterHttpRequest, String>
Build the outbound request for a spatial bounding box [x1, y1, x2, y2]
and temporal range [t0, t1]. Implementations must check
NetworkDisclosureRegistry
before returning an actual network request.Source§fn primary_endpoint(&self) -> &str
fn primary_endpoint(&self) -> &str
Primary egress endpoint for disclosure checks and fetch reports.
Source§fn estimate_tile_count(&self, _bbox: (f64, f64, f64, f64)) -> u32
fn estimate_tile_count(&self, _bbox: (f64, f64, f64, f64)) -> u32
Honest estimate of how many tile/API units would be requested (no fake payloads).
Source§fn fetch_region(
&self,
bbox: (f64, f64, f64, f64),
time_range: (u64, u64),
registry: &NetworkDisclosureRegistry,
) -> Result<(), String>
fn fetch_region( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<(), String>
Initiate fetching through the native blocking transport. Browser WASM
cannot legally block on network I/O, so wasm callers use
fetch_region_async.Source§fn needs_fetch_body(&self) -> bool
fn needs_fetch_body(&self) -> bool
Whether the adapter consumes the response body instead of only checking
that the endpoint accepted the request.
Source§fn handle_fetch_body(&self, _body: &str) -> Result<(), String>
fn handle_fetch_body(&self, _body: &str) -> Result<(), String>
Parse or enqueue the fetched body. Most adapters currently only verify
access; CKAN consumes JSON discovery results here.
Source§fn parse_response(&self, _body: &str) -> Result<Vec<NQuin>, String>
fn parse_response(&self, _body: &str) -> Result<Vec<NQuin>, String>
Parse a fetched response body into provenance
NQuins (title / license /
created / source / lat / long, hashed with the same generate_60bit_token
the SPARQL layer uses, so the results are queryable). Adapters that can
interpret their response format override this — GBIF, OSM/Overpass, STAC,
OGC 3D Tiles and SPARQL-results do — and the default yields none. This is
how a fetched response becomes graph data rather than being discarded.Source§fn fetch_region_features(
&self,
bbox: (f64, f64, f64, f64),
time_range: (u64, u64),
registry: &NetworkDisclosureRegistry,
) -> Result<Vec<NQuin>, String>
fn fetch_region_features( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<Vec<NQuin>, String>
Native fetch that returns the parsed provenance
NQuins: build the
consent-gated request, execute it, and run parse_response on the body.
A caller can then route the quins into the graph. (WASM callers fetch via
fetch_region_async and call parse_response on the returned body.)Auto Trait Implementations§
impl Freeze for OpendapAdapter
impl RefUnwindSafe for OpendapAdapter
impl Send for OpendapAdapter
impl Sync for OpendapAdapter
impl Unpin for OpendapAdapter
impl UnsafeUnpin for OpendapAdapter
impl UnwindSafe for OpendapAdapter
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more