Giter VIP home page Giter VIP logo

refractiveindex.info-database's Introduction

Refractive Index Database

refractiveindex.info database is an extensive and well organized collection of optical constants of various materials. The database is in public domain. Copyright and related rights were waived by Mikhail Polyanskiy through the CC0 1.0 Universal Public Domain Dedication. You can copy, modify and distribute refractiveindex.info database, even for commercial purposes, all without asking permission.

YAML file format is used for storing material information and database structure. Many text processors have built-in syntax highlight for YAML markup. Under Windows, Notepad++ is recommended for viewing and editing refractiveindex.info database files.

Web interface

https://refractiveindex.info/

Related projects

refractiveindex.info-scripts

Collection of Python scripts related to refractiveindex.info database
https://github.com/polyanskiy/refractiveindex.info-scripts

PyTMM

Database browser and Transfer Matrix Method implementation
https://github.com/kitchenknif/PyTMM

refractiveindex.info-sqlite

Python 3 + SQLite wrapper for the refractiveindex.info database
https://github.com/HugoGuillen/refractiveindex.info-sqlite

refractiveindex.info

Support for operations not possible through the web interface, e.g. find materials with refractive index within a specified range
https://github.com/cinek810/refractiveindex.info (original scripts)
https://github.com/mtarek/refractiveindex.info (fork and further development)

RefractiveIndex.jl

Julia interface to refractiveindex.info database
https://github.com/stillyslalom/RefractiveIndex.jl

refractiveindex on PYPI

Easy Python interface to RefractiveIndex database. Based on parsing method from PyTMM project, usage simular to RefractiveIndex.jl for Julia.
https://github.com/toftul/refractiveindex

refractiveindex.info-database's People

Contributors

birgitzatschler avatar heitzmann avatar hmoldenhauer avatar kitchenknif avatar luzpaz avatar marceloalcocer avatar marjmue avatar mk8j avatar mlackner avatar mnishida avatar polyanskiy avatar rtreharne avatar stillyslalom avatar stuermer avatar tnorth avatar toftul avatar vincentvandalon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

refractiveindex.info-database's Issues

Sellmeier for ZBLAN?

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

Raman spectra

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?

Transmission data Schott filters

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.

malformed fields in database

Hi!

While reading the database into R, I found two small errors that caused the parsing to fail:

  • an extra (empty) "content:" field in "OHARA - NBH (Niobate, high-index)"
  • A duplicated "info:" key in Cs pointing to Cu

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.

Typo in the Abbe diagram

I think this should be Abbe diagram

image

image

---------------

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:
image

However, the SciGlass database stores only few commercial glass, I think INTERGLAD has a lot such data.

Missordering on sellmeier Coefficients

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

K10
F5

Some files in the database are not in the index

These files are on disk, but no in library.yml:

  • 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

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.