|
2 | 2 | title: "Tutorials: Overview"
|
3 | 3 | ---
|
4 | 4 |
|
5 |
| -Here's where we park our various tutorials! |
| 5 | +Welcome to the iSamples tutorials! These tutorials demonstrate how to work with sample data using modern browser-based tools and geoparquet files. |
6 | 6 |
|
7 |
| -Get the OpenAPI spec. |
| 7 | +## Available Data Sources |
8 | 8 |
|
9 |
| -```{ojs} |
10 |
| -//| echo: true |
| 9 | +With iSamples Central currently unavailable, all tutorials now use **geoparquet files** as the primary data source: |
11 | 10 |
|
12 |
| -// Get the OpenAPI specification and display detailed endpoint information |
13 |
| -viewof apiEndpointDetails = { |
14 |
| - // Show loading indicator |
15 |
| - const loadingElement = html`<div>Loading API endpoints...</div>`; |
16 |
| - document.body.appendChild(loadingElement); |
| 11 | +### Primary Data Sources |
| 12 | +- **Zenodo Complete Dataset**: ~300MB, 6+ million records from all iSamples sources |
| 13 | +- **OpenContext Parquet**: Curated archaeological sample data |
| 14 | +- **Domain-specific Collections**: Specialized datasets for focused analysis |
17 | 15 |
|
18 |
| - try { |
19 |
| - const OPENAPI_URL = 'https://central.isample.xyz/isamples_central/openapi.json'; |
| 16 | +### Tutorial Categories |
20 | 17 |
|
21 |
| - // Fetch the OpenAPI spec |
22 |
| - const response = await fetch(OPENAPI_URL); |
23 |
| - if (!response.ok) throw new Error(`Failed to fetch API spec: ${response.status}`); |
| 18 | +**🗺️ Geographic Analysis** |
| 19 | +- Interactive mapping and spatial exploration |
| 20 | +- Regional distribution analysis |
| 21 | +- Cesium-based 3D visualizations |
24 | 22 |
|
25 |
| - const apiSpec = await response.json(); |
| 23 | +**📊 Data Analysis** |
| 24 | +- Statistical analysis with DuckDB-WASM |
| 25 | +- Material category distributions |
| 26 | +- Cross-collection comparisons |
26 | 27 |
|
27 |
| - // Extract detailed information about each endpoint |
28 |
| - const endpointDetails = []; |
| 28 | +**🚀 Performance Demonstrations** |
| 29 | +- Browser-based big data analysis |
| 30 | +- Efficient sampling and visualization techniques |
| 31 | +- HTTP range request optimization |
29 | 32 |
|
30 |
| - for (const [path, pathMethods] of Object.entries(apiSpec.paths)) { |
31 |
| - for (const [method, details] of Object.entries(pathMethods)) { |
32 |
| - endpointDetails.push({ |
33 |
| - endpoint: path, |
34 |
| - method: method.toUpperCase(), |
35 |
| - summary: details.summary || '', |
36 |
| - operationId: details.operationId || '', |
37 |
| - tags: (details.tags || []).join(', '), |
38 |
| - parameters: (details.parameters || []) |
39 |
| - .map(p => `${p.name} (${p.required ? 'required' : 'optional'})`) |
40 |
| - .join(', ') |
41 |
| - }); |
42 |
| - } |
43 |
| - } |
| 33 | +## Why Geoparquet? |
44 | 34 |
|
45 |
| - // Create a table with the detailed endpoint information |
46 |
| - return Inputs.table( |
47 |
| - endpointDetails, |
48 |
| - { |
49 |
| - label: "iSamples API Endpoints Details", |
50 |
| - width: { |
51 |
| - endpoint: 150, |
52 |
| - method: 80, |
53 |
| - summary: 200, |
54 |
| - operationId: 200, |
55 |
| - tags: 100, |
56 |
| - parameters: 300 |
57 |
| - } |
58 |
| - } |
59 |
| - ); |
60 |
| - } catch (error) { |
61 |
| - return html`<div style="color: red">Error fetching API endpoints: ${error.message}</div>`; |
62 |
| - } finally { |
63 |
| - // Remove loading indicator |
64 |
| - loadingElement.remove(); |
65 |
| - } |
66 |
| -} |
67 |
| -``` |
| 35 | +Our tutorials showcase how **geoparquet + DuckDB-WASM** enables: |
| 36 | +- ✅ **Universal access**: No software installation required |
| 37 | +- ✅ **Fast analysis**: 5-10x faster than traditional approaches (e.g., downloading full CSV datasets and analyzing them locally). [See benchmark](https://duckdb.org/2023/05/10/duckdb-wasm.html) |
| 38 | +- ✅ **Memory efficient**: Analyze 300MB datasets using <100MB browser memory |
| 39 | +- ✅ **Minimal data transfer**: Only download what you need |
| 40 | +- ✅ **Interactive exploration**: Real-time parameter adjustment |
0 commit comments