Skip to content

Commit 60310ad

Browse files
author
Luke Marsden
committed
Update documentation
0 parents  commit 60310ad

File tree

160 files changed

+23472
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+23472
-0
lines changed

.buildinfo

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Sphinx build info version 1
2+
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3+
config: f418b47a036f7e79bb9ae3c4fa508af1
4+
tags: 645f666f9bcd5a90fca523b33c5a78b7

.nojekyll

Whitespace-only changes.

_sources/intro.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Exploring FAIR Scientific Datasets with Python
2+
3+
This book is your guide to discovering, accessing, and visualising fascinating scientific datasets using Python. Each chapter introduces a new dataset and provides step-by-step instructions to help you access and plot the data.
4+
5+
Basic familiarity with Python is recommended, but don’t worry if you’re new to it—each chapter includes detailed explanations to help you follow along.
6+
7+
8+
## Why This Book?
9+
10+
Increasingly, vast amounts of FAIR (Findable, Accessible, Interoperable, Reusable) data are being published openly, waiting to be explored and used. These datasets are not just for scientists—they’re available to anyone, from researchers seeking to complement their own work with high-quality data, to curious members of the public eager to uncover new insights. This book aims to:
11+
- Help you discover **FAIR datasets**.
12+
- Teach you how to access and analyse these datasets programmatically using Python.
13+
- Show you how to plot these data.
14+
15+
---
16+
17+
## How to Use This Book
18+
19+
Each chapter is independent, so you can jump to the datasets that interest you most.
20+
21+
## Contents
22+
23+
```{tableofcontents}
24+
```

_sphinx_design_static/design-style.4045f2051d55cab465a707391d5b2007.min.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var sd_labels_by_text = {};
2+
3+
function ready() {
4+
const li = document.getElementsByClassName("sd-tab-label");
5+
for (const label of li) {
6+
syncId = label.getAttribute("data-sync-id");
7+
if (syncId) {
8+
label.onclick = onLabelClick;
9+
if (!sd_labels_by_text[syncId]) {
10+
sd_labels_by_text[syncId] = [];
11+
}
12+
sd_labels_by_text[syncId].push(label);
13+
}
14+
}
15+
}
16+
17+
function onLabelClick() {
18+
// Activate other inputs with the same sync id.
19+
syncId = this.getAttribute("data-sync-id");
20+
for (label of sd_labels_by_text[syncId]) {
21+
if (label === this) continue;
22+
label.previousElementSibling.checked = true;
23+
}
24+
window.localStorage.setItem("sphinx-design-last-tab", syncId);
25+
}
26+
27+
document.addEventListener("DOMContentLoaded", ready, false);
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
/*
2+
* _sphinx_javascript_frameworks_compat.js
3+
* ~~~~~~~~~~
4+
*
5+
* Compatability shim for jQuery and underscores.js.
6+
*
7+
* WILL BE REMOVED IN Sphinx 6.0
8+
* xref RemovedInSphinx60Warning
9+
*
10+
*/
11+
12+
/**
13+
* select a different prefix for underscore
14+
*/
15+
$u = _.noConflict();
16+
17+
18+
/**
19+
* small helper function to urldecode strings
20+
*
21+
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
22+
*/
23+
jQuery.urldecode = function(x) {
24+
if (!x) {
25+
return x
26+
}
27+
return decodeURIComponent(x.replace(/\+/g, ' '));
28+
};
29+
30+
/**
31+
* small helper function to urlencode strings
32+
*/
33+
jQuery.urlencode = encodeURIComponent;
34+
35+
/**
36+
* This function returns the parsed url parameters of the
37+
* current request. Multiple values per key are supported,
38+
* it will always return arrays of strings for the value parts.
39+
*/
40+
jQuery.getQueryParameters = function(s) {
41+
if (typeof s === 'undefined')
42+
s = document.location.search;
43+
var parts = s.substr(s.indexOf('?') + 1).split('&');
44+
var result = {};
45+
for (var i = 0; i < parts.length; i++) {
46+
var tmp = parts[i].split('=', 2);
47+
var key = jQuery.urldecode(tmp[0]);
48+
var value = jQuery.urldecode(tmp[1]);
49+
if (key in result)
50+
result[key].push(value);
51+
else
52+
result[key] = [value];
53+
}
54+
return result;
55+
};
56+
57+
/**
58+
* highlight a given string on a jquery object by wrapping it in
59+
* span elements with the given class name.
60+
*/
61+
jQuery.fn.highlightText = function(text, className) {
62+
function highlight(node, addItems) {
63+
if (node.nodeType === 3) {
64+
var val = node.nodeValue;
65+
var pos = val.toLowerCase().indexOf(text);
66+
if (pos >= 0 &&
67+
!jQuery(node.parentNode).hasClass(className) &&
68+
!jQuery(node.parentNode).hasClass("nohighlight")) {
69+
var span;
70+
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
71+
if (isInSVG) {
72+
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
73+
} else {
74+
span = document.createElement("span");
75+
span.className = className;
76+
}
77+
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
78+
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
79+
document.createTextNode(val.substr(pos + text.length)),
80+
node.nextSibling));
81+
node.nodeValue = val.substr(0, pos);
82+
if (isInSVG) {
83+
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
84+
var bbox = node.parentElement.getBBox();
85+
rect.x.baseVal.value = bbox.x;
86+
rect.y.baseVal.value = bbox.y;
87+
rect.width.baseVal.value = bbox.width;
88+
rect.height.baseVal.value = bbox.height;
89+
rect.setAttribute('class', className);
90+
addItems.push({
91+
"parent": node.parentNode,
92+
"target": rect});
93+
}
94+
}
95+
}
96+
else if (!jQuery(node).is("button, select, textarea")) {
97+
jQuery.each(node.childNodes, function() {
98+
highlight(this, addItems);
99+
});
100+
}
101+
}
102+
var addItems = [];
103+
var result = this.each(function() {
104+
highlight(this, addItems);
105+
});
106+
for (var i = 0; i < addItems.length; ++i) {
107+
jQuery(addItems[i].parent).before(addItems[i].target);
108+
}
109+
return result;
110+
};
111+
112+
/*
113+
* backward compatibility for jQuery.browser
114+
* This will be supported until firefox bug is fixed.
115+
*/
116+
if (!jQuery.browser) {
117+
jQuery.uaMatch = function(ua) {
118+
ua = ua.toLowerCase();
119+
120+
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
121+
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
122+
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
123+
/(msie) ([\w.]+)/.exec(ua) ||
124+
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
125+
[];
126+
127+
return {
128+
browser: match[ 1 ] || "",
129+
version: match[ 2 ] || "0"
130+
};
131+
};
132+
jQuery.browser = {};
133+
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
134+
}

0 commit comments

Comments
 (0)