polyanskiy / refractiveindex.info-database Goto Github PK
View Code? Open in Web Editor NEWDatabase of optical constants
License: Creative Commons Zero v1.0 Universal
Database of optical constants
License: Creative Commons Zero v1.0 Universal
It might be worthwhile to give releases of the database DOI.
https://guides.github.com/activities/citable-code/
It would make it easier to cite usage of of the database in research papers.
Hi,
I may be wrong but I think there aren't data available for fluorozirconate glass such as ZBLAN
Indeed the fibered material is different from the bulk due to differences in density and stress, and there is probably a lot of variation from manufacturer to manufacturer, but I thought that maybe, at least, the Sellmeier reported by F. Gan in 1999 could be included (https://doi.org/10.1016/0022-3093(94)00592-3).
Please tell me if it's OK if I do it.
The glass would belong to the Main(Inorganic)/Fluoride category, I think.
Another set of Sellemeirs is published by Thorlabs at: https://www.thorlabs.de/newgrouppage9.cfm?objectgroup_id=7999
Found this paper that reviews a ton of experimental Fused silica refractive indexes, ranging form hard UV to deep IR.
I might get around to formatting some of this data, but not sure when.
https://www.osapublishing.org/ao/abstract.cfm?uri=ao-46-33-8118
The property "thermal_conductivity" in IRG27 is sequence of a mapping with two mapping keys : "temperature" and "value". On the contrary, in IRG22, IRG24, IRG25, IRG26, the property "thermal_conductivity" is simply a scalar map. This leads to difficulty in creating a single parsing schema for the entire database.
Hi, the COMMENTS value in this file has a period (".") outside the quotation marks. This leads to difficulty in parsing the document.
Hello, just want to start by saying my team and I are super appreciative of this repo and all the work that went into creating it. This is a massive accomplishment and wonderful contribution. I would be super happy to lend a helping hand to this bug.
I am noticing that certain glass materials do not keep a consistent ordering to their formula coefficients. the examples i found were in the schott folder
Here, f5 is in an order that follows a pattern of
b1, c1, b2, c2, b3, c3,
Then k10 seems to break this pattern and go
c1, b1, b2, c2, b3, c3
Here are some graphs that compare these two glasses and their resulting refractive index calculations. In these examples, the coefficients are pulled to match the k10 ordering. the blue line corresponds to data gathered from the refractive_index_db, and the red line corresponds to data our team has compiled
Hi!
While reading the database into R, I found two small errors that caused the parsing to fail:
I don't think these are intentional and are indeed errors, but I might be wrong. I've fixed these in a fork, happy to provide a pull-request if you'd like.
These files are on disk, but no in library.yml
:
Checks were performed with the Python script below.
Typical output:
File number mismatch: 1508 files in the index, 1441 files on disk
1436 unique files in the index, 1441 unique files on disk
database/glass/schott/N-BK7.yml appears 3 times in the index
[...]
Files in one set but not the other:
database/main/Ti/Rakic.yml
database/glass/schott/P-SF69.yml
database/organic/C2H6O2 - ethylene glycol/Sani2.yml
database/organic/C2H6O2 - ethylene glycol/Sani1.yml
database/main/Ag/Sthrenberg.yml
All files of the index have their counterpart on disk.
Some files on disk are not in the index :
database/main/Ag/Sthrenberg.yml
database/glass/schott/P-SF69.yml
database/organic/C2H6O2 - ethylene glycol/Sani2.yml
database/main/Ti/Rakic.yml
database/organic/C2H6O2 - ethylene glycol/Sani1.yml
import yaml
import os
import fnmatch
from collections import Counter
if __name__ == "__main__":
path = "database"
db = "library.yml"
## List all YML files to process, recursively.
yaml_files = [os.path.join(dirpath, f)
for dirpath, dirnames, files in os.walk(path)
for f in fnmatch.filter(files, '*.yml')
]
# Skip index
yaml_files.remove("database/library.yml")
## Load index
data = yaml.load(open(os.path.join(path, db), 'r').read())
ct = []
indexed_files = []
#5 main categories, ordered: main, organic, glasses, other, 3D
for cat in data:
cat_shelf = cat["SHELF"]
cat_name = cat["name"]
cat_content = cat["content"]
ct.append({"name":cat_shelf, "desc":cat_name, "content":{}})
# Each category has several books
divider = "root"
ct[-1]["content"][divider] = []
for cat in data:
cat_shelf = cat["SHELF"]
cat_name = cat["name"]
cat_content = cat["content"]
ct.append({"name":cat_shelf, "desc":cat_name, "content":{}})
# Each category has several books
divider = "root"
ct[-1]["content"][divider] = []
for book in cat_content:
if "DIVIDER" in book:
divider = book["DIVIDER"]
ct[-1]["content"][divider] = []
elif "BOOK" in book:
book_cat = book["BOOK"]
book_name = book["name"]
ct[-1]["content"][divider].append({"book_cat":book_cat,
"book_name":book_name,
"book_page":{}})
subpage = "root"
ct[-1]["content"][divider][-1]["book_page"][subpage] = []
for page in book["content"]:
if "DIVIDER" in page:
subpage = page["DIVIDER"]
ct[-1]["content"][divider][-1]["book_page"][subpage] = []
else:
page_auth = page["PAGE"]
page_name = page["name"]
page_path = os.path.join(path, page["path"])
ct[-1]["content"][divider][-1]["book_page"][subpage].append({
"page_auth":page_auth,
"page_name":page_name,
"page_path":page_path
})
indexed_files.append(page_path)
yml_files_num = len(yaml_files)
yml_files_indexed_num = len(indexed_files)
if yml_files_indexed_num != yml_files_num:
print("File number mismatch: {} files in the index, {} files on disk".format(yml_files_indexed_num, yml_files_num))
unique_files = set(yaml_files)
unique_files_index = set(indexed_files)
print("{} unique files in the index, {} unique files on disk".format(len(unique_files_index), len(unique_files)))
print("")
counts = Counter(indexed_files)
most_referenced = counts.most_common(yml_files_indexed_num - yml_files_num)
for name, value in most_referenced:
if value <= 1: continue
print("{} appears {} times in the index".format(name, value))
print("")
files_intersection = unique_files.symmetric_difference(unique_files_index)
print("Files in one set but not the other: ")
for ff in files_intersection:
print(ff)
print("")
if (unique_files_index <= unique_files):
# Files on disk are a subset of the files in the index
print("All files of the index have their counterpart on disk.")
diff = unique_files.difference(unique_files_index)
if len(diff) > 0:
print("Some files on disk are not in the index :")
for ff in diff:
print(ff)
else:
print("Some files of the index are not on disk :")
for ff in unique_files_index.difference(unique_files):
print(ff)
Do we also want transmission data of Schott filters such as OG515 and so on?
If so, do we go for the tabulated data published by Schott (which is an average over many fabrication runs) or transmission data available of recent filters? For the latter I have tabulated data, the former I would have to digitize from the data sheets.
I would be willing to do either.
I think this should be Abbe diagram
P.S. A big thank you for your work on this database, 10 years ago I visited this website in an Optics course to solve some refractive index exercises. Today I magically came across this website, and in this moment I realized how incredible this work is to maintain it for over 10 years!
I have created a web glass database (https://sciglass.uni-jena.de/). I think your website will be a good resource for people interested in the refractive index of glass (https://refractiveindex.info/?shelf=glass). In the future, I will put your website link as an external resource for refractive index.
There are over 15,000 optical spectra in the SciGlass database, most of them are Transmittance
and Absorption
(it seems that Reflection
and Complex refractive index
spectra are not stored.) Although these refractive index data are not stored as spectral data, they are stored as standardized properties:
However, the SciGlass database stores only few commercial glass, I think INTERGLAD has a lot such data.
Hi, first let me thank you for all effort you put in the useful website.
I suggest that Raman spectroscopic data could be added as a separate database (like the "nโ spectra" are now). There are some open-sourced spectra here on github (e.g. https://github.com/sutapaghosal/Raman-Spectral-Website/tree/master/Spectra with a simple browser https://cdph-ramanspectroscopywebsite.github.io/CDPH-Raman-Microspectroscopy-Website/spectraldata.html, or https://github.com/whenfung/Raman-spectra/tree/master/data/%E8%AF%95%E5%89%82%E6%A0%87%E5%87%86%E5%93%81%E8%B0%B1%E5%9B%BE).
Our laboratory could contribute with some high-quality Raman entries for technologically important materials like semiconductors.
Also there exist some limited resources on complex permittivity spectra, part of which I tried to document here: https://www.fzu.cz/~dominecf/eps/ When such data are available, they allow to design very realistic materials for the https://github.com/NanoComp/meep FDTD simulation. Also one can use permittivity directly compute and verify the n and k quantities.
Do you think these new two "libraries" would be a viable extension?
In data\main\ZnS\Amotchkina.yml, line 7 reads:
degrees"
which causes parsing to fail.
Removing line 7 fixes the problem.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.