Giter VIP home page Giter VIP logo

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

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

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.

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)

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.

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.

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?

Duplicate page "Taylor"

The reference to Taylor's diamond data appears twice, once here and once here. In one case, the key-word "film" is added, but both entries refer to the same data.

By the way, this repository is very handy, great work, thanks a lot for keeping this up!

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.