Skip to content

Commit

Permalink
Merge pull request #213 from UW-Macrostrat/obsidian-docs
Browse files Browse the repository at this point in the history
Obsidian-based documentation system
  • Loading branch information
davenquinn authored Jul 3, 2024
2 parents db1f5e0 + 62ec0fa commit 05788cc
Show file tree
Hide file tree
Showing 33 changed files with 1,491 additions and 283 deletions.
30 changes: 0 additions & 30 deletions CONTRIBUTING.md

This file was deleted.

1 change: 1 addition & 0 deletions CONTRIBUTING.md
1 change: 1 addition & 0 deletions content/.obsidian/app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
3 changes: 3 additions & 0 deletions content/.obsidian/appearance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"accentColor": ""
}
30 changes: 30 additions & 0 deletions content/.obsidian/core-plugins-migration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": false,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false
}
20 changes: 20 additions & 0 deletions content/.obsidian/core-plugins.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[
"file-explorer",
"global-search",
"switcher",
"graph",
"backlink",
"canvas",
"outgoing-link",
"tag-pane",
"page-preview",
"daily-notes",
"templates",
"note-composer",
"command-palette",
"editor-status",
"bookmarks",
"outline",
"word-count",
"file-recovery"
]
168 changes: 168 additions & 0 deletions content/.obsidian/workspace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
{
"main": {
"id": "54bd71a4296930db",
"type": "split",
"children": [
{
"id": "b3cf2043eaa4bc1c",
"type": "tabs",
"children": [
{
"id": "334ed1c38175c4da",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Macrostrat.md",
"mode": "source",
"source": false
}
}
},
{
"id": "dede0fad4051b323",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Macrostrat.md",
"mode": "source",
"source": false
}
}
}
],
"currentTab": 1
}
],
"direction": "vertical"
},
"left": {
"id": "f0fafc014c02ecac",
"type": "split",
"children": [
{
"id": "68e51cca67be1bc7",
"type": "tabs",
"children": [
{
"id": "ea16a5b64a96d3fe",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
},
{
"id": "aefc63aeb87bc73c",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
}
},
{
"id": "df790a7090ccb6bd",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {}
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "a60526d3595b51d4",
"type": "split",
"children": [
{
"id": "673fc4209c079446",
"type": "tabs",
"children": [
{
"id": "23ccb1734eaf33d6",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "Macrostrat.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "e90ef1ec860287d2",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "Macrostrat.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "75b5ba0c40b2c900",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
}
}
},
{
"id": "5404a44c5aae78a4",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "Macrostrat.md"
}
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false
}
},
"active": "dede0fad4051b323",
"lastOpenFiles": [
"Community.md",
"Frequently asked questions.md",
"Macrostrat.md"
]
}
7 changes: 7 additions & 0 deletions content/Architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
- Macrostrat is centered around a [[PostgreSQL]] database
- A "database-centric" application

## Architectural models

- Supabase
- [[PostgREST]]
1 change: 1 addition & 0 deletions content/Community.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Macrostrat is part of a broad geoinformatics ecosystem.
26 changes: 26 additions & 0 deletions content/Components/Macrostrat data services.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Macrostrat has emerged as the go-to resource for digital geological map and
geologic column data.

There are two main reasons for this:

1. Macrostrat currently contains voluminous geologic map and column data that cannot be accessed in aggregate anywhere else.
- Over 300 different geologic maps, containing more than 2.5 million rock unit polygons covering the world, have been integrated into a single, unified, queryable environment in Macrostrat.
- Additionally, more than 35,000 rock units from over 1,500 regional columns covering all of North America and limited other regions are publicly available.
2. Macrostrat has a public "REST" application programming interface (API) that makes the full complement of data available in Findable, Accessible, Interoperable, and Reusable (FAIR) fashion with a CC-BY license.

Many third-party applications and users take advantage of Macrostrat FAIR data services:

- Mancos
- StraboSpot
- Flyover Country
- MinDat
- The iNaturalist web and mobile applications
- A California Academy of Sciences interactive museum kiosk
- Local geological surveys and individual scientists.

## Usage

Macrostrat’s data services have become impactful community resources for geologic information:
- Our geologic map server has served more than 2 billion tile requests since logging began in 2018 (~10 per second)
- Over the last 28 days, our other data APIs have served 3.8 million requests (~2 per second).
- Conservatively, these amount to 100,000 requests for information each day.
16 changes: 16 additions & 0 deletions content/Components/Macrostrat lexicon.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Macrostrat maintains a lexicon of geologic information, such as stratigraphic units, etc.

## Concepts

- Lithologies (e.g., sandstone)
- Lithology attributes (e.g., _hummocky cross-stratified_)
- Environmental interpretations
- Stratigraphic names

## Mechanics

- This lexicon integrates curated information from a variety of publishers
- Notably the USGS Stratigraphic Names lexicon
- Also lexicons from other organizations
- Linked to from map and column descriptive information (mostly using autogenerated scripts)
- The capability to manage geologic names and concepts is not unique but the tools on top of it are
3 changes: 3 additions & 0 deletions content/Components/Macrostrat stratigraphic columns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Representation of stratigraphy in chronostratigraphic or lithostratigraphic context
- Provided by [[Macrostrat data services]]
- Will soon be viewable in [[Macrostrat user interfaces]]
9 changes: 9 additions & 0 deletions content/Components/Macrostrat user interfaces.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[[Macrostrat]] user interfaces seek to express the world as geologists are used to seeing it

## Core components

- Maps
- Stratigraphic columns
- Summary pages for geologic entities (units, samples, geochemical datasets, etc.)

Based on [[Macrostrat data services]]
30 changes: 30 additions & 0 deletions content/Contributing/Contributor guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Code style

- Prefer Hyperscript (using the `@macrostrat/hyper` package) over JSX.
- Prefer functional components over class components.
- Prefer named exports over default exports (default exports make it more difficult to track names through the codebase).
- Prefer relative imports (e.g., `import { fetchHelper } from '../helpers'`) over absolute imports (e.g., `import { fetchHelper } from '~/pages/page1/helpers'`). Minimizing the number of up-directory imports or imports from other parts of the codebase is a good way to keep it maintainable.
- Extract logic into hooks or utility functions to keep components straightforward.
- Generally, try to make sure folders have an `index.ts` file that exports all the files that might be used from the outside.
- Put the most important function in the file first, and the least important (ex., utility functions) last.
- Prefer `function foo() {}` over `const foo = () => {}` for named functions.

# Code format

- Use Prettier to format your code. You can run `yarn format` to format the entire codebase, or set up your editor to format on save.
- Sort and prune imports periodically to keep them organized.

# Styling and interface design

- Prefer CSS modules where possible, but don't be afraid to use semantically named global classes for straightforward cases.
- Use sentence case for headings, button text, and other UI elements

# Dumb things to avoid

This codebase has been modernized and kept maintainable
by avoiding (or belatedly correcting) many anti-patterns:

- Hard-coding specific colors
- Creating URLs by concatenating strings
- Deeply nested code blocks (often with confusing [control flow](https://en.wikipedia.org/wiki/Control_flow) or [side effects](<https://en.wikipedia.org/wiki/Side_effect_(computer_science)>) instead of unambiguous returns)
- Duplicated code of more than a few lines
8 changes: 8 additions & 0 deletions content/Frequently asked questions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

> [!question] I am interested in downloading the data from a search I ran on Macrostrat to import into ArcGIS.
> For example, if I searched "basalt", how might I be able to download the results as GIS metadata?
We don’t have a great way to bulk-download data in a form suitable for ArcGIS (yet; we are working on it). Part of the problem is that our GIS dataset is huge, so it’s usually easier to stream it from the web. For now, there are a few options:

- There is a way to view our layers directly in QGIS and filter/style them by their attributes (using the QGIS filter functions). Unfortunately this doesn’t work in ArcGIS. But you can pretty easily apply different styles and categories to make the thematic map you desire.
- [macrostratpy](https://github.com/DARPA-CRITICALMAAS/macrostratpy) is a prototype library to download Macrostrat tiles over large areas into a GIS-ready GeoPackage format. Right now it’s difficult to use but we hope to improve that over time.
10 changes: 10 additions & 0 deletions content/Get involved.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Macrostrat is improved by thousands of geologists

- Contribute to code
- Use our web components
- Contribute maps
- Add Rockd checkins

## Coming soon

- Contribute columns
Loading

0 comments on commit 05788cc

Please sign in to comment.