ダウンロード・API
Starrydata2 のデータは、(1) 個別 Sample / Figure 単位の Web ダウンロード、 (2) 公式 Datasets スナップショット(3 つの CSV ファイル)、 (3) REST API、の 3 経路で取得できます。商用・非商用ともに無償です。
4.1 Web からの個別ダウンロード
論文一覧の各論文カードに csv / json リンクが並んでいます。クリックするとその論文に紐付くカーブデータがダウンロードできます。Data ページ内の「Get Data」「Copy to Clipboard」も同様に少量データ取得に便利です。
4.2 公式 Datasets スナップショット(推奨)
機械学習や統計解析で 全件データを扱う場合は、グローバルナビの Datasets から公開されるスナップショットを使うのが最も効率的です。フォルダには 3 つの CSV と README.md、スナップショット時刻 (db_snapshot.txt) が同梱されます。
| ファイル | 主なカラム | 役割 |
|---|---|---|
starrydata_papers.csv |
SID, DOI, URL, issued, author, title, container_title, volume, issue, page, ISSN, publisher, project_names, created_at |
論文の書誌情報(1 行 = 1 論文) |
starrydata_samples.csv |
sample_name, sample_id, composition, composition_details, SID, DOI, sample_info(JSON), created_at, updated_at |
試料情報(1 行 = 1 試料)。sample_info は JSON で領域別の属性を含む。 |
starrydata_curves.csv |
SID, DOI, composition, sample_id, figure_id, figure_name, prop_x, prop_y, unit_x, unit_y, x(JSON 配列), y(JSON 配列), project_names, comments, created_at, updated_at |
カーブデータ(1 行 = 1 カーブ)。x / y は同長の JSON 配列文字列。 |
SID(papers ⇔ samples ⇔ curves)と sample_id(samples ⇔ curves)が基本キー。figure_id は同じ図に属する複数 Curve をまとめるのに使える(Figure 単独のテーブルは無い)。
sample_info の構造
sample_info は {descriptor: {category: "", comment: "", extracted: ""}} 形式の JSON 文字列。領域ごとの descriptor 例:
- 熱電 (ThermoelectricMaterials):
MaterialFamily,DataType,Form,FabricationProcess,ElectricalMeasurement,ThermalMeasurement,Purity,RelativeDensity,GrainSizeほか - 磁性 (MagneticMaterials):
DataType,Form,FabricationProcess,MagneticMeasurement,saturation magnetization,coercivity,remanence magnetion,magnetic field,Measurement temperatureほか - 電池 (BatteryMaterials):
Cathode active material,Anode active material,Solvent 1/2/3,Solute 1/2/3,Electrolyte Additive 1/2/3,Current density,Upper/Lower voltage limit,Cell typeほか
4.3 領域別の主要物性
熱電: Temperature / Z-Seebeck coefficient / Electrical resistivity / Electrical conductivity / Thermal conductivity / Power factor / ZT / Carrier mobility / Hall coefficient
磁性: Temperature / Magnetic field / Magnetic field strength (H) / Magnetization / Magnetization per weight / Magnetization per volume / Magnetization (Bohr)
電池: C rate / Cycle number / Voltage / Discharge capacity / Charge capacity
4.4 Python での読み込み例
CSV 3 ファイルを pandas で結合して扱う基本形:
import json
import pandas as pd
# 3 つの CSV を読む
papers = pd.read_csv("starrydata_papers.csv")
samples = pd.read_csv("starrydata_samples.csv")
curves = pd.read_csv("starrydata_curves.csv")
# x / y は JSON 配列文字列 → list へ
curves["x"] = curves["x"].map(json.loads)
curves["y"] = curves["y"].map(json.loads)
# 試料情報 + 論文情報を Curve に結合(SID と sample_id を使う)
df = (
curves
.merge(samples[["sample_id", "sample_name", "sample_info"]], on="sample_id", how="left")
.merge(papers[["SID", "title", "issued"]], on="SID", how="left")
)
# 熱電プロジェクトの Seebeck 係数だけ抽出
seebeck = df[
df["project_names"].str.contains("ThermoelectricMaterials", na=False) &
(df["prop_y"] == "Seebeck coefficient")
]
print(seebeck[["SID", "composition", "prop_x", "unit_x", "unit_y"]].head())
展開して長い形式(1 点 = 1 行)にしたい場合:
long = seebeck.explode(["x", "y"]).rename(columns={"x": "x_value", "y": "y_value"})
long.to_csv("seebeck_long.csv", index=False)
unit_x / unit_y は SI 基本単位の積形式(例 V*K^(-1))。表示用に整形したい場合は自前で正規表現か sympy を使う。
4.5 REST API
個別 Sample / Figure / Paper をプログラムから取得する場合は REST API も使えます。認証不要、レスポンスは JSON。
# 個別オブジェクト
GET https://starrydata.nims.go.jp/starrydata2/api/paper/{SID}
GET https://starrydata.nims.go.jp/starrydata2/api/sample/{sample_id}
# 属性を絞った取得
GET https://starrydata.nims.go.jp/starrydata2/api/paper/{SID}/title
GET https://starrydata.nims.go.jp/starrydata2/api/sample/{sample_id}/composition
# 組成(原子)で検索(AND がデフォルト、OR にしたい場合は末尾 ,or)
GET https://starrydata.nims.go.jp/starrydata2/api/paper/search?atom=Bi,Te
GET https://starrydata.nims.go.jp/starrydata2/api/sample/search?atom=Bi,Te
GET https://starrydata.nims.go.jp/starrydata2/api/sample/search?atom=Bi,Te,or
4.6 NIMS MDR スナップショット(引用用途)
引用可能な凍結スナップショットが NIMS Materials Data Repository (MDR) でも公開されています。バージョン番号と取得日が永続的に紐付くため、研究の再現性のために MDR スナップショットの利用を推奨します。
4.7 ライセンスと引用
Starrydata2 のデータは商用・非商用を問わず無償で利用できます。論文や報告書で利用する場合は、引用すべき論文の一覧を 「引用について」ページにまとめています。
- プロジェクト全体を引用: /cite/ を参照
- バージョン固定で引用: NIMS MDR スナップショット(バージョン番号と取得日を明記)
- 個別データの場合: 元論文 (CrossRef DOI) も併せて引用