Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Grating equation:
- # d sin(θₘ) = m λ
- #See also:
- # http://academia.hixie.ch/bath/laser/home.html
- # https://laserpointerforums.com/f70/make-your-own-spectrometer-under-1-a-98640.html
- #Map of laser ID onto measurement tuples of form:
- # ( grating spacing (m / cycle),
- # distance to wall (m),
- # distance from mode 0 to mode 1 (m)[,
- # distance from mode 0 to mode 2 (m)[,
- # ...]] )
- data = {
- "405nm laser (test)" : [
- (1.0e-3/1000.0, 1.5885, 0.703),
- ],
- "445nm laser (test)" : [
- (1.0e-3/1000.0, 1.5885, 0.796),
- ],
- "515nm laser (test)" : [
- (1.0e-3/1000.0, 1.5885, 0.9585),
- ],
- "532nm laser (test)" : [
- (1.0e-3/1000.0, 1.5885, 0.998),
- ],
- "638nm laser (test)" : [
- (1.0e-3/1000.0, 1.5885, 1.3165),
- ],
- "650nm laser (test)" : [
- (1.0e-3/1000.0, 1.5885, 1.389),
- ],
- }
- for laser in sorted(data.keys()):
- l_ests = [] #in nm
- measurements = data[laser]
- for measurement in measurements:
- mode = 1
- for dist_mode in measurement[2:]:
- sin_theta = dist_mode * (measurement[1]*measurement[1]+dist_mode*dist_mode)**-0.5 #sin(arctan(dist_mode/measurement[1]))
- l_est = sin_theta * measurement[0] / mode
- l_ests.append(l_est * 1.0e+9)
- mode += 1
- print(laser + ": " + str(l_ests) + " nm")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement