No Clocks

No Clocks

4143 bookmarks
Newest
stac-spec/item-spec/item-spec.md at master · radiantearth/stac-spec
stac-spec/item-spec/item-spec.md at master · radiantearth/stac-spec
SpatioTemporal Asset Catalog specification - making geospatial assets openly searchable and crawlable - radiantearth/stac-spec
This is likely the acquisition (in the case of single camera type captures) or the 'nominal' or representative time in the case of assets that are combined together. Though time can be a complex thing to capture, for this purpose keep in mind the STAC spec is primarily searching for data, so use whatever single date and time is most useful for a user to search for. STAC content extensions may further specify the meaning of the main datetime field, and many will also add more datetime fields. All times in STAC metadata should be in Coordinated Universal Time (UTC). If there's clearly no meaningful single 'nominal' time, it is allowed to use null instead. In this case it is required to specify a temporal interval with the fields start_datetime and end_datetime from common metadata. For example, if your data is a time-series that covers 100 years, it's not very meaningful to set the datetime to a single timestamp as it would not be found in most searches that searches for a decade of data in that period although the Item actually covers the decade. See datetime selection in the best practices document for more information.
·github.com·
stac-spec/item-spec/item-spec.md at master · radiantearth/stac-spec
fiboa
fiboa
Field Boundaries for Agriculture (fiboa) - An ecosystem of data schema specifications, tools and data for more interoperability between field boundaries and related agriculture & other data.
The Field Boundaries for Agriculture (fiboa) project is focused on making field boundary data openly available in a unified format on a global scale. We believe that the fiboa specification is a foundational aspect of agricultural field boundary data interoperability which enables and accelerates additional layers of collaboration and detail via custom extensions.
·fiboa.org·
fiboa
The Admin-partitioned GeoParquet Distribution
The Admin-partitioned GeoParquet Distribution
An exploration of the benefits and challenges of sharing GeoParquet data partitioned by administrative boundaries.
·cloudnativegeo.org·
The Admin-partitioned GeoParquet Distribution
Programming with the wk C and C++ API
Programming with the wk C and C++ API
At the heart of the wk philosophy is the concept of a handler, whose job it is to respond to bits of geometric information as they are iterated over by the reader. These bits of information have a very specific structure and order such that the messages can be guaranteed to be backward-compatible for all time (for each version of the API). This means that the reader can focus on iterating over the data structure and handlers can focus on computing a value (usually) based on the geometries. The advantage of this system is that readers and handlers can be mixed and matched so that handlers can be used with many data structures! As an example, the wk package itself uses readers and handlers to power validation of and conversion among wkt(), wkb(), xy(), and rct() classes.
The wk API works with a vector of features: readers iterate over such vectors and handlers compute a value based on some or all of the features in the vector. Each feature can be NULL or contain exactly one geometry (although this geometry can be a collection or multi-geometry which can contain a tree of other geometries). A good way to visualize the structure, order, and type of messages passed to a handler is to use the wk_debug_filter() on some well-known text (WKT):
The concept of a vector was inspired by the sf::sfc() data type and draws heavily from the vctrs framework. The concept of a feature draws from the implementations of the simple features specification in most databases and the support in R for “missing” values, which are not quite the same as an EMPTY geometry (in the same way that NaN and NA can be distinguished in R). The concept of a geometry is very much tied to (and was inspired by) the definition of a geometry in the (E)WKB, (E)WKT, and TWKB format specifications such that most of the information provided by these formats is passed along to handlers if it is available
·paleolimbot.github.io·
Programming with the wk C and C++ API
targets Extensions for Geographic Spatial Formats
targets Extensions for Geographic Spatial Formats
Provides extensions for various geographic spatial file formats, such as shape files and rasters. Currently provides support for the terra geographic spatial formats. See the vignettes for worked examples, demonstrations, and explanations of how to use the various package extensions.
·docs.ropensci.org·
targets Extensions for Geographic Spatial Formats
Custom Formatted Console Messages with Timing Support
Custom Formatted Console Messages with Timing Support
A lightweight message system relying purely on base R. Comes with built-in and pre styled message types and provides an easy way to create custom messages. Supports individually styled and colored text as well as timing information. Designed to make console output more informative and visually organized.
·s3rdia.github.io·
Custom Formatted Console Messages with Timing Support
ALTREP: Alternative Representations for R Objects
ALTREP: Alternative Representations for R Objects
ALTREP: Alternative Representations for R Objects
The ALTREP branch of the R svn repository provides an experimental framework for developing alternate representations of basic R objects. Some examples of intended uses would be to allow vector data to be in a memory-mapped file or distributed; allow compact representation of arithmetic sequences; support adding meta-data to objects; support alternative representations of environments.
·svn.r-project.org·
ALTREP: Alternative Representations for R Objects
mori: Shared memory for R objects
mori: Shared memory for R objects
mori is a new R package for sharing R objects across processes via OS-level shared memory. Parallel workers get zero-copy, lazy ALTREP access to the same physical pages — share once, read anywhere.
Until now, parallel R has meant serializing your data to every worker and duplicating it in each worker’s RAM. Eight workers × 1 GB is 8 GB, plus the serialization, transfer, and deserialization cost to get it there. R processes don’t share memory — each has its own heap, so data crosses between them through a serialization pipe.
mori changes that. It places an R object once into OS-level shared memory and lets every process on the machine read the same physical pages directly — with no data copying between processes.
mori is built on R’s ALTREP (Alternative Representation) framework, which lets a package expose a custom vector backend that reads its data from somewhere other than ordinary R memory — a memory map, a database, a compressed store, or in this case, OS shared memory.
The entry point is share(). You pass it an R object, you get back a shared version that you can use in the same way as the original:
share() works on atomic vector types, lists, and data frames — it writes them directly into shared memory with attributes preserved. In practice that also covers tibbles, data.tables, factors, dates, and matrices, since they’re built on those types. Environments, functions, S4 objects, and external pointers are returned unchanged, since their state can’t be meaningfully exposed as raw bytes in shared memory.
mori pairs naturally with mirai. When you send a shared object to a local daemon, only the shared-memory name crosses the wire; the daemon maps the same physical pages and sees the full data with no deserialization cost. The same is true for any other parallel backend that uses R serialization.
Shared memory is tied to R’s garbage collector. As long as the shared object (or anything extracted from it) is live in R, the data stays available; when the last reference is dropped, it’s freed automatically with no manual cleanup. The process that called share() needs to hold its reference until a consumer has mapped a view — from that point on, the view itself keeps the shared memory alive.
Mutations go through R’s normal copy-on-write: editing a value inside a shared vector produces a private copy of that one vector, leaving the rest of the shared region untouched.
R has had partial answers to cross-process data sharing before. bigmemory offers shared big.matrix objects — effective, but limited to numeric matrices. SharedObject on Bioconductor targets a similar goal with its own memory-sharing machinery, oriented around BiocParallel workflows. Arrow ’s memory-mapped Parquet gives zero-copy columnar reads across processes, though the data lives on disk. On Unix, parallel::mclapply gets shared memory via fork copy-on-write (until a worker writes to a page), with the usual fork caveats (unsafe in GUI sessions, with open DB connections, or alongside multithreaded libraries), and with no equivalent on Windows.
·opensource.posit.co·
mori: Shared memory for R objects
What's new in R 4.6.0?
What's new in R 4.6.0?
Here we summarise some of the more interesting changes in the April 2026 release of R 4.6.0.
That is what has happened with the introduction of %notin% in R 4.6.0. An operator that was found across lots of separate packages has been moved up into base R: "a" %notin% LETTERS [1] TRUE "a" %notin% letters [1] FALSE
For the R project as a whole, there is a simple function citation() that provides the information you need:
In R 4.6.0, a DOI (Digital Object Identifier) has been added to the citation entry to make it easier to reference R in your published work.
summary(character_vector, character.method = "factor")
list.files(..., fixed = TRUE)
·jumpingrivers.com·
What's new in R 4.6.0?
geospatial-skills
geospatial-skills
Installable geospatial skills for AI coding agents
·isaac.earth·
geospatial-skills
R roxygen2 & pkgdown Documentation | Claude Code Skill
R roxygen2 & pkgdown Documentation | Claude Code Skill
Master R package documentation with roxygen2 and pkgdown. Learn to generate professional websites, document S4 classes, and automate CI/CD deployments.
·mcpmarket.com·
R roxygen2 & pkgdown Documentation | Claude Code Skill
Create roxygen2-styled documentation for datasets
Create roxygen2-styled documentation for datasets
DocumentData is an R package designed to facilitate dataset documentation during package creation. This package provides a roxygen2-style documentation skeleton with pre-filled information, saving time on typing and reducing the likelihood of errors.
·focardozom.github.io·
Create roxygen2-styled documentation for datasets
Package Development Documentation and Namespace Management
Package Development Documentation and Namespace Management
Manage package documentation and namespaces from the command line. Programmatically attach namespaces in R and Rmd script, populates Roxygen2 skeletons with information scraped from within functions and populate the Imports field of the DESCRIPTION file.
·yonicd.github.io·
Package Development Documentation and Namespace Management