an investigation of skylight polarization using a … _slaterw16.pdf · the spectro-polarimeter is...
Post on 14-Apr-2019
254 Views
Preview:
TRANSCRIPT
AN INVESTIGATION OF SKYLIGHT POLARIZATION
USING A SPECTRO-POLARIMETER
by
Jonathan Travis Slater
A senior thesis submitted to the faculty of
Brigham Young University - Idaho
in partial fulfillment of the requirements for the degree of
Bachelor of Science
Department of Physics
Brigham Young University - Idaho
April 2016
BRIGHAM YOUNG UNIVERSITY - IDAHO
DEPARTMENT APPROVAL
of a senior thesis submitted by
Jonathan Travis Slater
This thesis has been reviewed by the research committee, senior thesis coor-dinator, and department chair and has been found to be satisfactory.
Date Dr. Todd Lines, Advisor
Date Dr. Richard Hatt, Committee Member
Date Dr. Stephen Turcotte, Committee Member
Date Dr. Stephen McNeil, Chair
ABSTRACT
AN INVESTIGATION OF SKYLIGHT POLARIZATION
USING A SPECTRO-POLARIMETER
Jonathan Travis Slater
Department of Physics
Bachelor of Science
The Spectro-Polarimeter project sought to measure the skylight polarization
across a spectral range by rotating a linear polarizer. The measurements from
the Spectro-Polarimeter instrument were used to calculate the corresponding
Stokes parameters describing the skylight polarization. However, a number
of challenges hindered the successful outcome of the project. Many of these
challenges were overcome. The most difficult proved to be an unpredictable
instrument response likely caused by a fiber optic cable. As a result, skylight
polarization measurements proved less conclusive than anticipated.
ACKNOWLEDGMENTS
I would like to thank my research advisor, Dr. Joseph Shaw of the Depart-
ment of Electrical and Computer Engineering at Montana State University.
Dr. Shaw’s advice and assistance proved invaluable during the course of the
Spectro-Polarimeter research. I am also grateful for the assistance of Paul
Nugent and David Riesland at Montana State University’s Optical Remote
Sensor Laboratory.
My research would not have been possible without the funding of the Na-
tional Science Foundation. I am grateful for the National Science Foundation’s
sponsorship and support to the Research Experience for Undergraduates pro-
gram.
I would also like to acknowledge the Department of Physics at Montana
State University for hosting the Research Experience for Undergraduates pro-
gram. Thank you to each of the faculty involved in this program.
I especially give my thanks to the Department of Physics at Brigham Young
University-Idaho. I am grateful for the support and patience of each of my
professors; my special thanks to Dr. Todd Lines, Dr. Richard Hatt, Dr. Jon
Paul Johnson, and Dr. Stephen Turcotte.
Finally, I must express my greatest thanks to my family. I am profoundly
grateful for my parents and their unfailing support. Most of all, I am grateful
for the love and support of my dear wife, Nicole. You have made all of the
difference.
Contents
Table of Contents xi
List of Figures xiii
1 Introduction 11.1 Polarization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Stokes Parameters and Mueller Matrices . . . . . . . . . . . . . . . . 31.3 Rayleigh and Mie Scattering . . . . . . . . . . . . . . . . . . . . . . . 61.4 Maximum Polarization of Skylight . . . . . . . . . . . . . . . . . . . . 71.5 Previous Spectro-Polarimeter Research . . . . . . . . . . . . . . . . . 8
2 Methods 112.1 Experimental Apparatus . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3 Principal Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4 Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5 Another Randomly Polarized Source . . . . . . . . . . . . . . . . . . 18
3 Results 213.1 Initial Data Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Measurement Comparison . . . . . . . . . . . . . . . . . . . . . . . . 223.3 Instrument Response . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4 Equatorial Mount Problem . . . . . . . . . . . . . . . . . . . . . . . . 263.5 Generating Stokes Vectors . . . . . . . . . . . . . . . . . . . . . . . . 28
4 Conclusion 29
Bibliography 30
A Measurement Direction Code 33
B Data Analysis and Stokes Calculations 39
xi
List of Figures
1.1 Light as an electromagnetic wave . . . . . . . . . . . . . . . . . . . . 31.2 Light through a polarizing filter . . . . . . . . . . . . . . . . . . . . . 41.3 All sky polarization image . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1 Spectro-Polarimeter setup . . . . . . . . . . . . . . . . . . . . . . . . 132.2 Single measurement and data set average . . . . . . . . . . . . . . . . 152.3 Principal plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4 Integrating sphere calibration . . . . . . . . . . . . . . . . . . . . . . 18
3.1 Clear day measurement . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2 Hazy day measurement . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3 Integrating sphere spectral curve . . . . . . . . . . . . . . . . . . . . 253.4 Integrating sphere instrument response . . . . . . . . . . . . . . . . . 253.5 Equatorial mount problem . . . . . . . . . . . . . . . . . . . . . . . . 273.6 Normalized Stokes parameters . . . . . . . . . . . . . . . . . . . . . . 28
4.1 Future polarimeter circuit . . . . . . . . . . . . . . . . . . . . . . . . 30
A.1 Choosing the direction of measurement . . . . . . . . . . . . . . . . . 37
xiii
Chapter 1
Introduction
There are many optical phenomena we can observe in the Earth’s atmosphere. Mea-
suring these optical phenomena helps increase our understanding of how the world
works. The goal of my project was to study the polarization of skylight using a
Spectro-Polarimeter and generate a quantifiable description of the skylight polariza-
tion. The Spectro-Polarimeter is an instrument assembled from several commercial
components that measures the polarization of skylight within the spectral range of 350
to 2500 nm. A previous project assembled the Spectro-Polarimeter and developed the
user interface. My work focused on using skylight polarization measurements to gen-
erate Stokes parameters. To introduce the Spectro-Polarimeter project, I will discuss
relevant topics such as polarization, the effects of atmospheric scattering on polar-
ization, and quantitative measures of polarization. Furthermore, I will discuss the
instrumental setup of the Spectro-Polarimeter, calibration techniques, measurement
data, and overall project analysis.
1
2 Chapter 1 Introduction
1.1 Polarization
Light is an electromagnetic wave. Polarization describes the particular orientation of
the electric field of the light. [1] Thus, in addition to irradiance and wavelength, polar-
ization is another measurable characteristic of light. There are several different kinds
of polarization; linear, circular, and elliptical are examples of types of polarization.
My research focused solely on the linear polarization of skylight. Linear polarization
of light is characterized as having the electric field of the propagating electromagnetic
wave restricted to a single plane. Figure 1.1 illustrates the electric field of linearly
polarized light oscillating in the plane of polarization.
Light may also be randomly polarized (often described as unpolarized light). Ran-
domly polarized describes light with an electric field changing randomly in time. The
sun outputs light that is randomly polarized. Randomly polarized light can be-
come polarized by scattering, reflection, or transmission through a filter or polarizing
medium. [2] When sunlight enters the Earth’s atmosphere, randomly polarized light
can often become partially polarized as a result of scattering off atmospheric par-
ticulates. The chief goal of my research was to measure skylight polarization using
a Spectro-Polarimeter. A practical definition of spectropolarimetry is the process
of measuring the polarization properties of light, an element, or system over some
defined spectral region. [2]
1.2 Stokes Parameters and Mueller Matrices 3
Horizontal Polarization
y
xz
B
E B
E
v
B
E
B
E
Plane of polarization
Figure 1.1 Polarization corresponds to the orientation of the electric field( ~E). Linearly polarized light has an electric field restricted to the plane ofpolarization. This figure is adapted from [3].
1.2 Stokes Parameters and Mueller Matrices
A modern quantitative description of polarization uses the Stokes vector containing
four quantities called the Stokes parameters. Equation 1.1 shows a frequently used
notation for the Stokes vector and Stokes parameters.
S =
s0
s1
s2
s3
(1.1)
The parameters of the Stokes vector are useful because they are able to describe
randomly, totally, or partially polarized light. [1] One method of calculating the Stokes
parameters is by passing light through a polarizing filter. [4] For example, light pass-
ing through a single linear polarizer with a horizontal transmission axis will become
4 Chapter 1 Introduction
horizontally polarized. The irradiance of the emerging light in this case is desig-
nated as I(0◦). Similarly, light passing through a vertically aligned polarizer becomes
vertically polarized and is represented as I(90◦). Figure 1.2 demonstrates how the
electric field of incident light becomes horizontally polarized after passing through a
polarizing filter.
Polarizing Filter
E
Polarizer
Only the component
of E perpendicular to
the polymer molecules
is transmitted.
E of randomly polarized
light oscillates randomly
in all directions.
Figure 1.2 Linear polarization caused by a linear polarizer. This figure isadapted from [3].
Each Stokes parameter is defined by a certain combination of polarization states.
While there are a number of different methods to calculate the Stokes parameters,
I have listed one possible method in Equation 1.2. This method for calculating the
Stokes parameters has been adapted from [4].
1.2 Stokes Parameters and Mueller Matrices 5
s0 = I(0◦) + I(90◦)
s1 = I(0◦)− I(90◦)
s2 = 2I(45◦)− I(0◦)− I(90◦)
s3 = I(0◦) + I(90◦)− 2Icir
(1.2)
For the parameters listed in Equation 1.2, the s3 term describes the degree of
circular polarization. Since my research focused solely on linear polarization, I did
not use the s3 parameter in my Stokes vector calculations later on. Instead, I focused
on the first three Stokes parameters as these correspond to measures of linear polar-
ization. In order to measure each Stokes parameter, I used a single linear polarizer
and rotated the polarizer’s transmission axis to the 0 degree, 45 degree, and 90 degree
orientations and measured the resulting irradiance.
Besides the Stokes vector, quantitative representation of polarization may also
involve Mueller matrices. These 4 × 4 matrices represent the properties of an opti-
cal element or system. [2] As light represented by a Stokes vector passes through an
optical element or system, the polarization state of the light may be altered. The
emerging light has a changed polarization state and is represented by a new Stokes
vector. A Mueller matrix is a transformation matrix representing the change the op-
tical element or system causes on the light passing through. [1] One of the potential
aspects of the Spectro-Polarimeter project was an option to solve for Mueller matri-
ces associated with the atmospheric conditions causing the polarization state of the
measured skylight.
Consider Equation 1.3 as an example of a Mueller Matrix applied to a Stokes
vector. This setup represents light passing through a linear polarizer. Randomly
polarized light (represented by the Stokes vector S) passes through a horizontal linear
polarizer (represented by the Mueller matrix M). A new Stokes vector, S ′, represents
6 Chapter 1 Introduction
the emerging horizontally polarized light. The total intensity of the emerging light,
S ′, is only half of the intensity of the randomly polarized light, S, because only the
horizontal component of the incident light’s electric field is transmitted through the
polarizer.
M S S ′
12
1 1 0 0
1 1 0 0
0 0 0 0
0 0 0 0
1
0
0
0
=
12
12
0
0
(1.3)
The atmosphere acts similar to a polarizing filter except that the light is not
completely polarized. This partially polarized light scattered by the atmosphere may
be comprised of multiple polarization states. As a result, Mueller matrices corre-
sponding to the transformation of light as it passes through the atmosphere are more
complicated. Nevertheless, one can still solve for these matrices once a Stokes vector
is calculated using the data collected from the Spectro-Polarimeter.
1.3 Rayleigh and Mie Scattering
Rayleigh and Mie scattering is the process by which sunlight is scattered in the
Earth’s atmosphere. Molecules that make up air (nitrogen, oxygen, etc.) are con-
stantly vibrating. Photons passing through air interact with air molecules and scatter
elastically, causing a change in the direction the photons are traveling. Due to elec-
tronic resonances air molecules have at the shorter wavelengths, violet and blue light
are scattered more than the longer wavelengths of red, orange, and yellow light. [1]
Rayleigh scattering may be considered as a small-size limiting case of Mie scat-
tering. [1] In my research I have defined Mie scattering to be scattering off of any
1.4 Maximum Polarization of Skylight 7
particle larger than the wavelength of incident light. Mie scattering is only weakly
dependent on the wavelength of light. Consequently, Mie scattering becomes com-
pletely independent of wavelength once the size of the scattering particle surpasses
the wavelength of the scattered light. [1] One example of Mie scattering is demon-
strated by light scattering off of the clouds on an overcast day. The clouds appear
white or gray because all of the wavelengths of visible light are equally scattered since
the water droplets in clouds are significantly larger than the wavelengths of visible
light.
1.4 Maximum Polarization of Skylight
There are certain locations in the sky that are more polarized from scattering than
others. Rayleigh and Mie scattering play a significant role in differences in the degree
of skylight polarization. Rayleigh scattering causes an increase in the degree of polar-
ization of light 90 degrees from the light source. However, Mie scattering will usually
decrease the degree of polarization of skylight. The results of my measurements with
the Spectro-Polarimeter were directly impacted by both of these types of scattering.
Several reasons explain why the polarization at 90 degrees is not 100 percent. These
reasons include multiple scattering, molecular anisotropy, ground reflectance, and
aerosols. [5] Figure 1.3 is an all-sky image illustrating the degree of linear polariza-
tion of skylight. The figure has depicted this band of maximum skylight polarization
in orange. At 90 degrees from the sun there is a band of maximum polarization. It
is within this band that I made my measurements with the Spectro-Polarimeter.
8 Chapter 1 Introduction
Figure 1.3 At 90 degrees from the sun there is a band of maximum polar-ization represented in this figure by the orange band above. Image from [6]and [7].
1.5 Previous Spectro-Polarimeter Research
The Spectro-Polarimeter project is a continuation of previous work at Montana State
University’s Optical Remote Sensor Laboratory. [8] This prior work focused on the de-
sign and assembly of the Spectro-Polarimeter, a user interface to control the Spectro-
Polarimeter via a graphical user interface (GUI), and the characterization of the
Spectro-Polarimeter instrument. [9] Much of the documentation from the previous
researched proved useful in my research.
1.5 Previous Spectro-Polarimeter Research 9
The design and assembly of the Spectro-Polarimeter used several commercial prod-
ucts. I will discuss these components in more detail within the Methods chapter. The
GUI developed by the previous project was most useful in my measurement process.
This interface facilitated control over the Spectro-Polarimeter’s equatorial mount, op-
tical rotation stage, and process for recording measurements. I also investigated the
instrument characterization during my research. In later sections I will refer to the
characterization as the instrument response to polarization states. This particular
aspect of the project proved to be the most challenging. I will further explain these
challenges in the Results chapter.
Chapter 2
Methods
The Spectro-Polarimeter is an assembly of several components of commercial appa-
ratus. For example, the Spectro-Polarimeter uses a commercial spectroradiometer as
well as other attachments such as a lens and a linear polarizer. Measuring skylight
polarization with the Spectro-Polarimeter required a careful setup and analysis of the
data. This chapter will expand on the Spectro-Polarimeter setup, data collection,
and calibration techniques.
2.1 Experimental Apparatus
The Spectro-Polarimeter instrument is a combination of an Analytical Spectral De-
vices, Inc. (ASD) FieldSpec Pro Spectroradiometer with an attached optical compo-
nent containing a linear polarizer, lens, and a rotation stage. In general, the ASD
spectroradiometer is designed as a measurement device for relative or absolute light
energy. [10] However, in the Spectro-Polarimeter configuration, a rotating polarizer
permits the instrument to measure irradiance of light in a particular linear polariza-
tion state.
11
12 Chapter 2 Methods
Figure 2.1 is an image of the Spectro-Polarimeter setup. The optic consisting of
a lens and a linear polarizer are attached to a rotation stage. The rotation stage
rotates the polarizer to 0, 45, 90, and 135 degree orientations. After passing through
the linear polarizer, skylight is transmitted to the spectroradiometer with a fiber
optic cable. The fiber optic cable is part of the commercially manufactured ASD
spectroradiometer. I secured the fiber optic cable in a coil to the top of the instrument
as a preventative measure against the distortion of data that movement of the cable
could cause. The spectroradiometer and optic are attached to an Astro-Physics 600E
Servo equatorial mount. [11] Both the spectroradiometer and equatorial mount were
controlled via laptop computer. The user interface GUI allowed the instrument to be
directed toward any part of the sky when the user specifies an elevation and azimuth.
The interface also controlled the rotation stage and the spectroradiometer.
The Spectro-Polarimeter measures wavelengths ranging from 350 to 2500 nm.
This range of wavelengths covers the visible and the short wave infrared (SWIR)
spectrums. A single detector is unable to realistically receive data in this entire
range of wavelengths. As a result, the spectroradiometer is manufactured with three
detectors capable of covering the entire range of 350 to 2500 nm. These detectors
group the wavelengths as visible near infrared (VNIR) ranging from 350 to 1050
nm, short wave infrared one (SWIR1) ranging from 900 to 1850 nm, and short wave
infrared two (SWIR2) ranging from 1700 to 2500 nm. Each grouping of wavelengths
overlaps with each other in order to prevent any loss of data. The VNIR detector
uses a 512-channel silicon photodiode array. For both the SWIR1 and SWIR2, the
Spectro-Polarimeter uses indium gallium arsenide (InGaAs) detectors.
2.1 Experimental Apparatus 13
Figure 2.1 The Spectro-Polarimeter setup on the roof of the Cobleigh Build-ing at Montana State University. The Spectro-Polarimeter uses an equatoralmount, spectroradiometer, and optical configuration with a lens, linear po-larizer, and rotation stage.
14 Chapter 2 Methods
2.2 Measurements
I began the process of taking measurements by setting up the Spectro-Polarimeter
on the roof of the Cobleigh Building at Montana State University. The Spectro-
Polarimeter rests on a standard equatorial mount. Consequently, the mount must
be calibrated each time the Spectro-Polarimeter is used. Instructions regarding the
equatorial mount calibration are found in [12]. Next, I tested the Spectro-Polarimeter
instrument in order to optimize the collection settings. The user interface GUI in-
cludes an option to automatically optimize the settings of the Spectro-Polarimeter.
The detectors inside the Spectro-Polarimeter perform best when the integration time
and gain settings are optimized to maximized readings in the visible and short wave
infrared (SWIR) spectrums.
Once the Spectro-Polarimeter was ready for measurements, I looked up the cur-
rent elevation and azimuth of the sun using NOAA’s solar calculator website. [13]
The coordinates I used on NOAA’s Solar Calculator for the Cobleigh Building were
45.6665◦N , 111.0461◦W . Next, I oriented the Spectro-Polarimeter to a position that
was 90 degrees from the sun’s current location. As discussed in the introduction, the
regions in the sky 90 degrees away from the sun have maximum skylight polarization.
Therefore, these are the best regions to direct the Spectro-Polarimeter towards to
measure skylight polarization.
Once the Spectro-Polarimeter was positioned correctly, I took a series of 20 mea-
surements in a two-minute interval. One of the challenges I noticed early on in the
project was that there was very little light measured in the SWIR, particularly the
wavelengths above 1700 nm. While it is expected that there is not very much light
in these wavelengths, I still hoped to receive some signal in the SWIR. This range
of wavelengths also had a great deal of background noise making it very difficult to
2.3 Principal Plane 15
distinguish differences between polarization states. My solution to this challenge was
to use an average of the 20 measurements in order to cancel out the background noise.
Figure 2.2 compares a single measurement (a) with an average of twenty measure-
ments (b). As is evident in the figure, the averaging technique helped reduce the
background noise in the SWIR wavelengths.
Wavelength (nm)500 1000 1500 2000 2500
Dig
ita
l C
ou
nt/
Nu
mb
er
-2000
0
2000
4000
6000
8000
10000
12000
140006/23/15 1515 Single Measurement
0 Degrees45 Degrees90 Degrees135 Degrees
(a) Single Measurement
Wavelength (nm)500 1000 1500 2000 2500
Dig
ita
l C
ou
nt/
Nu
mb
er
-2000
0
2000
4000
6000
8000
10000
12000
140006/23/15 1515 Data Set Average
0 Degrees45 Degrees90 Degrees135 Degrees
(b) Data Set Average
Figure 2.2 Averaging a set of measurements taken within a two-minuteinterval reduced the noise in the SWIR wavelengths.
2.3 Principal Plane
During the course of the Spectro-Polarimeter project, I focused on keeping my mea-
surements within the principal plane. The principal plane is the plane containing
the sun and the zenith (see Figure 2.3 for a diagram of the principal plane). This
simplified the process of locating a position 90 degrees away from the sun. I began
by pointing the Spectro-Polarimeter directly at the sun, then moving the instrument
90 degrees across the zenith. Measuring the skylight polarization in the principal
plane is a good method to check the reliability of the calculated Stokes parameters.
When the instrument is oriented in the principal plane, we expect most of the skylight
16 Chapter 2 Methods
polarization to be represented by the horizontal polarization (the s1 parameter). Ad-
ditionally, we expect the s2 parameter will not contribute much to the overall skylight
polarization and should be close to zero. These expectations follow from princples of
Rayleigh scattering.
Direction of
observation
ZenithSun
Principal Plane
Figure 2.3 Specto-Polarimeter measurements were primarily made in theprincipal plane (the plane containing the sun, zenith, and direction towardsthe region of measurement).
Other regions of the sky 90 degrees away from the sun will also have a maximum
polarization. I planned to compare Stokes parameters in these regions after my ini-
tial measurements and analysis of the Stokes parameters in the principal plane. In
preparation for these measurements I wrote a MATLAB code to calculate the corre-
sponding elevation for any specified azimuth within the region 90 degrees away from
the sun (see Appendix A).
2.4 Calibration 17
2.4 Calibration
One of the concerns in the analysis of the data involved the response of the instrument
to different polarization states. Specifically, the Spectro-Polarimeter is likely to have
a variation or instrument response with changes in the polarization state. Since
the goal was to measure polarization, this type of variation is less than ideal. I
attempted to combat this challenge by testing and calibrating the Spectro-Polarimeter
with an integrating sphere. An integrating sphere is an optical device that essentially
outputs randomly polarized light. A light source is illuminated into a spherical cavity.
This cavity is coated in a white, reflective coating. Since light inside the cavity is
consistently scattered off of the cavity walls, the light leaving the integrating sphere
does not remain in any particular polarization state.
Since the light from the integrating sphere is only emitting randomly polarized
light, any orientation of a linear polarizer should give the same result and intensity. In
order to test the instrument response of the Spectro-Polarimeter, one simply needs to
place the instrument such that it is receiving light directly from the integrating sphere
and change the orientation of the polarizer. If there is a variation, then the result can
be applied to any data collected in order to get a more accurate picture of the actual
polarization state of incident light. Figure 2.4 illustrates the Spectro-Polarimeter
setup during the calibration using the integrating sphere.
For this calibration process, I used the same methodology as my skylight polar-
ization measurements. I took 20 measurements and averaged each of the polarization
states together in order to cancel out any background noise. The results of these
measurements indicated that instrument response for the different polarization states
was fairly minimal (less than one percent). I will discuss the integrating sphere data
in further detail in the Results chapter.
18 Chapter 2 Methods
There was a key challenge with using the integrating sphere as a calibration source.
The integrating sphere in the Optical Remote Sensor Laboratory is only calibrated
up to 1100 nm light. Since the Spectro-Polarimeter takes data from 350 to 2500 nm,
it is not possible to determine the instrument response using the integrating sphere
for wavelengths longer than 1100 nm.
Figure 2.4 The setup calibrating the instrument response of the Spectro-Polarimeter using an integrating sphere. The integrating sphere is a whitespherical cavity that scatters a light source to emit randomly polarized light.
2.5 Another Randomly Polarized Source
Another source of randomly polarized light is the sun. The sun emits randomly
polarized light in a much larger range of wavelengths than the integrating sphere.
Consequently, I attempted to perform the same calibration technique using the sun
instead. At the time, it seemed like a fairly simple process. Nevertheless, it was far
from simple and proved to be a much less viable solution than the integrating sphere.
2.5 Another Randomly Polarized Source 19
I maintained the same calibration method using the sun as the calibration using
the integrating sphere. I oriented the Spectro-Polarimeter directly towards the sun
and took 20 measurements during the course of two minutes. Since the earth is
constantly rotating, the position of the sun constantly changes. Data taken from a
fixed position cannot be trusted for more than several minutes.
When I examined the averaged sets of measurements taken in the two-minute in-
tervals, each set of data had significant variations in the instrument response. Upon
examining single, unaveraged measurements, consecutive measurements taken within
seconds of each other also demonstrated significant variation and inconsistency from
each other in measuring the instrument response. These variations were more pro-
nounced in the SWIR wavelengths. I was not able to completely surmise the cause of
the calibration measurement variations. One possibility is that the fiber optic cable
was the cause of this variation. Another possibility is the presence of very thin cirrus
clouds or ice crystals could have been changing the polarization state. Neither of
these explanations can be completely ruled out as the cause of the variations without
further experimentation. Perhaps future research could find some interesting results
corresponding to this particular problem. I concluded that the sun was not a feasible
solution to check for any instrument response to polarization states.
The instrument response to polarization states did not appear to fluctuate as
much in the visible spectrum as the SWIR spectrum. With this observation, I de-
cided to continue the next phase of the project and calculate the Stokes parameters.
However, I decided to focus solely on the data collected in the visible spectrum since
the instrument response in the SWIR spectrum data appeared far more inconsistent.
Using only the visible spectrum data meant that I could use the calibration data from
the integrating sphere.
Chapter 3
Results
The results from the Spectro-Polarimeter research were a step in the right direction.
However, it is clear that the instrument itself has certain limitations that cannot yet
be overcome with regards to measuring polarization. While some of the results are
in line with the expectations of the project, others fall short. I was able to calcu-
late the Stokes parameters corresponding to my skylight polarization measurements.
However, the results from which these parameters are derived are not sufficiently
conclusive, as will be discussed in this chapter.
3.1 Initial Data Analysis
As highlighted in the Methods chapter, I used sets of 20 measurements averaged
together as a method of cancelling out background noise from the measurements. I
created a MATLAB code (see Appendix B) to read in data stored in comma separated
value (CSV) files. The code read in each measurement file and separately averaged the
0 degree, 45 degree, and 90 degree polarization states together. Overall, the averaging
did help in reducing the background noise, particularly in the SWIR wavelengths as
21
22 Chapter 3 Results
was shown in Figure 2.2.
3.2 Measurement Comparison
As discussed in the introduction, Rayleigh and Mie scattering both have a significant
impact on atmospheric polarization. Perfect Rayleigh scattering conditions contribute
to a maximum skylight polarization in regions 90 degrees from the sun. However,
Mie scattering reduces the overall polarization of skylight. Both of these types of
scattering were clearly demonstrated by the Spectro-Polarimeter data by comparing
measurements from two different days. Both of these particular days had sunny
weather with very few clouds. However, the key difference was in the concentration
of aerosols present in the atmosphere.
For example, consider Figures 3.1 and 3.2 comparing measurements from two days
with different atmospheric conditions. The first day (6/23/15) was very clear with
very few aerosols and traits exhibiting mostly Rayleigh scattering. The second day
(7/31/15) was very hazy and had a significant amount of aerosols present due to smoke
from nearby forest fires. The smoke in the atmosphere tends to cause conditions more
closely aligned with that of Mie scattering. As a result, there is an increase in the
overall irradiance detected by the Spectro-Polarimeter from the region 90 degrees
away from the sun. In particular, the hazy day illustrated by Figure 3.2 shows an
increased signal in the SWIR wavelengths. The peaks at approximately 1050, 1240,
and 1540 nm are much more pronounced on the hazy day than the clear day.
3.2 Measurement Comparison 23
Wavelength (nm)500 1000 1500 2000 2500
Dig
ital C
ount/N
um
ber
-2000
0
2000
4000
6000
8000
10000
12000
140006/23/15 1515 Data Set Average: Clear Day
0 Degrees45 Degrees90 Degrees135 Degrees
Figure 3.1 A clear day with few aerosols exhibits more Rayleigh scatteringand overall less light from the regions of the sky 90 degrees away from thesun.
Wavelength (nm)500 1000 1500 2000 2500
Dig
ital C
ount/N
um
ber
-2000
0
2000
4000
6000
8000
10000
12000
140007/2/15 1204 Data Set Average: Hazy Day
0 Degrees45 Degrees90 Degrees135 Degrees
Figure 3.2 A hazy day with a significant amount of aerosols is more char-acteristic of Mie scattering and results in more scattered light in the regionsof the sky 90 degrees away from the sun.
24 Chapter 3 Results
3.3 Instrument Response
In the Methods chapter I discussed calibration techniques. It was very clear that both
methods I attempted to use in order to calibrate the data into meaningful results were
inadequate for the full 350 to 2500 nm range. The integrating sphere simply did not
provide a sufficient range of wavelength for the calibration and calibration using the
sun proved to have too much measurement variation. As a result, I chose to only
look at the data from the visible spectrum to calculate the Stokes parameters. Using
the calibration data collected by the integrating sphere, I calculated the instrument
response to polarization with respect to the 0 degree orientation of the polarizer. This
response was divided out of the Spectro-Polarimeter data. I defined the instrument
response as the ratio of each polarization state with respect to the 0 degree orientation
of the polarizer as shown in Equation 3.1 and used these definitions of instrument
response to generate Figure 3.4.
R0◦(λ) = I0◦ (λ)I0◦ (λ)
R45◦(λ) = I45◦ (λ)I0◦ (λ)
R90◦(λ) = I90◦ (λ)I0◦ (λ)
(3.1)
In addition to the instrument response to polarization states, the Spectro-Polarimeter
exhibits an instrument spectral responsivity. This spectral responsivity is characteris-
tic of the silicon detector the Spectro-Polarimeter uses the measure irradiance in the
visible spectrum. Figure 3.3 illustrates the spectral curve the Spectro-Polarimeter
measures from the integrating sphere.
3.3 Instrument Response 25
Wavelength (nm)400 500 600 700 800 900 1000 1100
Dig
ita
l C
ou
nt/
Nu
mb
er
(x 1
04)
0
0.5
1
1.5
2
2.5
3
3.5Integrating Sphere Spectral Curve
0 Degrees45 Degrees90 Degrees135 Degrees
Figure 3.3 The spectral curve of the integrating sphere as measured by theSpecto-Polarimeter.
Wavelength (nm)400 500 600 700 800 900 1000 1100
Ratio to 0
degre
es
0.98
0.985
0.99
0.995
1
1.005
1.01
1.015
1.02Integrating Sphere Instrument Reponse
0 Degrees45 Degrees90 Degrees135 Degrees
Figure 3.4 The instrument response obtained from the integrating sphereusing the ratios in Equation 3.1
The calibration data in Figure 3.4 suggests that the instrument response to polar-
ization states is fairly minimal. Yet, the significant measurement variation exhibited
by a calibration attempt using the sun calls into question the realiabilty of the sky-
26 Chapter 3 Results
light polarization data. The greatest weakness of the Spectro-Polarimeter is the fiber
optic cable attached to the spectroradiometer. When the fiber optic cable is moved,
the irradiance as measured by the Spectro-Polarimeter changes. My solution was to
fix the fiber optic cable in place. However, this solution did not improve the variabil-
ity in the data, particularly in methods attempting to use the sun as a calibration
source. Another possible cause for this continued variation in instrument response is
the change in the temperature of the fiber optic cable as the measurements are taken.
When the Spectro-Polarimeter is set up, the instrument remains in direct sunlight
during the data collection. It is likely that as the sun heats the fiber optic cable,
the index of refraction of the cable changes as well as the response to changes in
polarization. In the end, the variability of the instrument response was too great to
overcome in order to find sufficiently conclusive results.
3.4 Equatorial Mount Problem
The equatorial mount is very useful. With it, a user may enter an elevation and
azimuth and the mount will orient the instrument to the corresponding region in the
sky. Yet, one of the challenges associated with this feature is that the instrument
is tilted from its original orientation. This means the linear polarizer is also tilted
from its initial horizontal orientation when measuring the 0 degree polarization state.
Moreover, the subsequent measurements of the 45 and 90 orientations of the polarizer
are also tilted. However, when the mount moves the Spectro-Polarimeter in order to
measure a particular region of the sky, the instrument (and the polarizer) are tilted
and are no longer oriented correctly. As a result, the orientations of the polarizer
become meaningless. Each time the Spectro-Polarimeter is oriented to a new location
in the sky, the tilt changes. Thus, there is no consistent orientation of the linear
3.4 Equatorial Mount Problem 27
polarizer and comparisons between separate measurements are no longer meaningful.
(a) Spectro-Polarimeter Linear Polarizer (b) Tilted Spectro-Polarimeter
Figure 3.5 The linear polarizer (a) has two white lines to show the polar-ization axis. When the mount tilts the instrument (b), the polarizer is nolonger in the horizontal orientation.
The solution to this challenge was to apply a rotation matrix to the data such
that the data from separate measurements can be compared. The matrix defines θ as
the angle at which the mount is tilted. Note the rotation matrix here uses 2θ since
this situation deals with intensities rather than amplitudes. More information on this
type of rotation matrix is explained in [14].
1 0 0 0
0 cos(2θ) − sin(2θ) 0
0 sin(2θ) cos(2θ) 0
0 0 0 1
(3.2)
28 Chapter 3 Results
3.5 Generating Stokes Vectors
After applying the data set averaging, calibration results, and rotation matrix, I was
able to use the Spectro-Polarimeter data to generate a graph representing normalized
Stokes vectors in the visible spectrum. I calculated the s0, s1, and s2 parameters
using Equation 1.2. Then, I normalized the parameters by letting each parameter
be a ratio with respect to the s0 parameter. Figure 3.6 depicts these normalized
Stokes parameters across the visible spectrum. The figure does not quite represent
the expected results for measurement of skylight polarization. In particular, the
steep rise and fall exhibited in the curves for the s1 and s2 parameters suggests
that the spectral responsivity of the Spectro-Polarimeter is still present in the data.
Unfortunately, I was unable to find a method to remove the spectral responsivity.
Wavelength (nm)400 500 600 700 800 900 1000 1100
Pa
ram
ete
r R
atio
to
s0
0
0.2
0.4
0.6
0.8
1
1.2Normalized Stokes Parameters vs Wavelength
S0
S1
S2
Figure 3.6 The normalized Stokes parameters as measured on 7/31/15.
Chapter 4
Conclusion
While not entirely successful, the Spectro-Polarimeter project has been a step in the
right direction of skylight polarization measurements. The greatest challenge was the
instrument response to polarization states and spectral responsivity of the Spectro-
Polarimeter. Had there been a method to fully overcome this challenge, I am confident
the results of the Spectro-Polarimeter project would have been more conclusive.
In hindsight, one adjustment that might have improved the results would have
been to rotate a quarter wave plate and keep the linear polarizer fixed. This setup
would permit only one polarization state to enter the instrument at different intensi-
ties as the quarter wave plate is rotated. This method would also enable measurement
of the s3 parameter corresponding to circular polarization. However, this setup would
still likely have difficulties with inconsistent instrument response.
The next developments of this research are underway in the construction of an-
other polarimeter. This new polarimeter will be a much simpler design and will not be
able to measure polarization over the entire spectral range. This polarimeter will use
a Thorlabs FDS100 photodiode capable of detecting light within wavelengths of 350
to 1100 nm. The photodiode connected to a circuit will output a voltage difference
29
30 Chapter 4 Conclusion
corresponding to the measured irradiance. A linear polarizer rotated in front of the
photodiode will change the voltage output. My goal is to again calculate the Stokes
parameters associated with polarization measurements with this polarimeter.
Figure 4.1 The suggested circuit for the Thorlabs FDS100 photodiode tobe used in a future polarimeter. [15]
Bibliography
[1] Hecht, E., 2002. Optics., 4 ed. Addison-Wesley.
[2] Tyo, J. S., Goldstein, D. L., Chenault, D. B., and Shaw, J. A., 2006. “Review
of passive imaging polarimetry for remote sensing applications.” Applied Optics,
45(22), Aug, pp. 5453–5469.
[3] Knight, R. D., 2012. Physics for Scientists and Engineers with Modern Physics:
A Strategic Approach., 3 ed. Pearson Education.
[4] Collett, E., 1984. “Measurement of the four stokes polarization parameters with
a single circular polarizer.” Optics Communications, 52(2), pp. 77 – 80.
[5] Jackson, J. D., 1998. Classical Electrodynamics., 3 ed. Wiley.
[6] Shaw, J. A., Pust, N. J., Staal, B., Johnson, J., and Dahlberg, A. R., 2010.
Continuous outdoor operation of an all-sky polarization imager.
[7] Dahlberg, A. R., Pust, N. J., and Shaw, J. A., 2011. “Effects of surface reflectance
on skylight polarization measurements at the mauna loa observatory.” Optics
Express, 19(17), Aug, pp. 16008–16021.
[8] Shaw, J. A. The optical remote sensor laboratory.
31
32 BIBLIOGRAPHY
[9] Riesland, D., Burgard, N., and Sharon, Z., 2014. Spectro-polarimeter character-
ization and control.
[10] Analytical Spectral Devices, Inc., 2002. FieldSpec Pro: User’s Guide.
[11] Astro-Physics, Inc., 2004. Astro-Physics 600E German Equatorial Mount
With SMD Servo Motor Drive.
[12] Astro-Physics, Inc., 2008. Astro-Physics GTO Keypad.
[13] Administration, N. O. . A. Noaa solar calculator.
[14] Collett, E., 1993. Polarized Light: Fundamentals and Applications. Marcel
Dekker.
[15] Thor Labs, 2013. Si Photodiode 350-1100 nm: FDS 100.
Appendix A
Measurement Direction Code
I wrote the following code to assist the user in choosing a direction in which to point
the Spectro-Polarimeter for skylight polarization measurements. In order to measure
the maximum degree of polarization, the Spectro-Polarimeter should be directed to
a region of the sky that is 90 degrees away from the sun.
1 %% Locate Position 90 Degrees From the Sun2 % Given an azimuth, find the elevation of a point that is 90 degrees3 % from the current location of the sun.4 clear; close all; clc;5 % Jon Slater6
7 %% User Inputs8 fprintf('\nEnter the following quantities in units of degrees:\n')9
10 % current azimuth of the sun (use NOAA Solar Calculator)11 azimuth = input('\nWhat is the azimuth of the sun? ');12 while azimuth > 360 | | azimuth < 013 fprintf('Invalid input for the azimuth.\n')14 fprintf('Choose a value between 0 and 360.\n\n')15 azimuth = input('What is the azimuth of the sun? ');16 end17
18 % current elevation of the sun (use NOAA Solar Calculator)19 elevation = input('\nWhat is the elevation of the sun? ');20 while elevation > 90 | | elevation < 021 fprintf('Invalid input for the elevation.\n')22 fprintf('Choose a value between 0 and 90.\n\n')
33
34 Chapter A Measurement Direction Code
23 elevation = input('What is the elevation of the sun? ');24 end25
26 % give an azimuth for the direction of observation27 Az obs = input('\nAzimuth in the direction of observation? ');28 while Az obs > 360 | | Az obs < 029 fprintf('Invalid input.\n')30 fprintf('Choose a value between 0 and 360.\n\n')31 Az obs = input('Azimuth in the direction of observation? ');32 end33
34 %% Spherical and Cartesian Coordinate Conversions35 % converting location of the sun to spherical coordinates36 phi = 360 - azimuth;37 theta = 90 - elevation;38
39 % Spherical to Cartesian coordinates for the sun (North is +x axis)40 X = sind(theta)*cosd(phi);41 Y = sind(theta)*sind(phi);42 Z = cosd(theta);43
44 % converting to polar coordinates (2D)45 polar angle = 360 - Az obs;46
47 % Cartesian coordinates of the direction of observation (2D)48 X obs = cosd(polar angle);49 Y obs = sind(polar angle);50
51 %% Normal Vector (ie vector towards the sun)52 % vector pointing towards the sun53 normal = [X Y Z];54
55 % equation of the plane given a normal vector56 a = normal(1);57 b = normal(2);58 c = normal(3);59 Z obs = (- a * X obs - b * Y obs)/c;60
61 % find the vector for the direction of observation62 Observation = [X obs Y obs Z obs];63 % normalize the perpendicular vector64 Observation = Observation./norm(Observation);65
66 % Spherical coordinates of location of observation67 phi obs = atand(Y obs/X obs);68 theta obs = atand(sqrt(X obsˆ2+Y obsˆ2)/Z obs);69
70 % elevation of the point of observation71 El obs = 90 - theta obs;72
73 %% Dot Product Test
35
74 % Spherical coordinates75 test phi = 360 - Az obs;76 test theta = 90 - El obs;77 % Cartesian coordinates78 test X = sind(test theta)*cosd(test phi);79 test Y = sind(test theta)*sind(test phi);80 test Z = cosd(test theta);81 % vector in the direction of observation82 vector = [test X test Y test Z];83 test = dot(normal,vector);84
85 % if the dot product is not close enough to zero, output an error86 if abs(test) > 10e-987 fprintf('\nError: Invalid elevation and azimuth values\n\n')88 return89 end90
91 %% Principal Plane Observation92 % The best case scernario will be to make observations in the93 % principal plane if we are using an equatorial mount. A measurement94 % in the principal plane will give the simplest method of calculating95 % the Stokes parameters.96
97 % azimuth for an observation in the principal plane98 if azimuth < 18099 ap = azimuth + 180;
100 else101 ap = azimuth - 180;102 end103 % elevation for an observation in the principal plane104 ep = 90 - elevation;105
106 % converting location to spherical coordinates107 princ phi = 360 - ap;108 princ theta = 90 - ep;109
110 % Spherical to Cartesian coordinates (North is positive x axis)111 Xp = sind(princ theta)*cosd(princ phi);112 Yp = sind(princ theta)*sind(princ phi);113 Zp = cosd(princ theta);114
115 % vector pointing towards an observation point in the principal plane116 principal = [Xp Yp Zp];117
118 %% Outputs119 % in case the elevation of the point of interest is > 90 degrees120 if El obs > 90121 fprintf('Warning: Area of observation is too close to sun!\n\n')122 flip = El obs - 90;123 el = 90 - flip;124 El plot = el;
36 Chapter A Measurement Direction Code
125 if Az obs >= 180126 az = Az obs - 180;127 Az plot = az;128 else129 az = Az obs + 180;130 Az plot = az;131 end132 fprintf('Instead, look at an Azimuth of %3.0f\n',az)133 fprintf(' and an Elevation of %3.2f \n\n',el)134 else135 % output the elevation at which one should look136 fprintf('\nLook at an elevation of %3.2f degrees\n\n', El obs)137 El plot = El obs;138 el = El plot;139 Az plot = Az obs;140 end141
142 % output notice if sun is too high or observation area too low143 if elevation > 80144 fprintf('The sun is too high for effective measurements.\n')145 fprintf('Consider waiting until the sun is lower.\n\n')146 elseif (El obs < 10 | | el < 10)147 fprintf('Observation area is too low for effective measurements')148 fprintf('\nConsider changing the direction of observation.\n\n')149 % recommend making the observation in the principal plane150 fprintf('Consider making observations in the principal plane.\n')151 fprintf('look at an Azimuth of %3.1f\n',ap)152 fprintf(' and an Elevation of %3.2f \n\n',ep)153 else154 % recommend making the observation in the principal plane155 fprintf('Consider making observations in the principal plane.')156 fprintf('\nlook at an Azimuth of %3.1f\n',ap)157 fprintf(' and an Elevation of %3.2f \n\n',ep)158 end159
160 %% Visualization Plot161 quiver3(0, 0, 0, normal(1), normal(2), normal(3),'r')162 hold on163 quiver3(0, 0, 0, vector(1), vector(2), vector(3),'b')164 legend('sun','observation','Location','SouthEast')165 axis equal166 xlim([-1,1])167 ylim([-1,1])168 zlim([0,1])169 xlabel('North/South')170 ylabel('East/West')171 zlabel('Zenith')172 set(gca,'XTickLabel',[],'YTickLabel',[],'ZTickLabel',[]);173 text1 = text(normal(1),normal(2),normal(3),...174 strcat('Az = ',num2str(azimuth),' El = ',num2str(elevation)));175 text2 = text(vector(1),vector(2),vector(3),...
37
176 strcat('Az = ',num2str(Az plot),' El = ',num2str(El plot)));177 title('Locate Position 90 Degrees From The Sun')178 set(gca,'FontSize',18)179 set(text1,'FontSize',14)180 set(text2,'FontSize',14)
Locate A Position 90 Degrees From The Sun
Az =92 El =28
Az =272 El =62
Ze
nith
sun
observation
Figure A.1 An example output figure from the program assisting in choos-ing a direction for measurement. This program permits the user to chooseany azimuth and gives a corresponding elevation for a direction 90 degreesaway from the sun.
Appendix B
Data Analysis and Stokes
Calculations
I wrote the following code to analyze the data generated by the Spectro-Polarimeter.
The program first reads in calibration data from the integrating sphere measurements
to calculate the instrument response. Then the program reads in polarization data
taken on a particular day and calculates the Stokes parameters.
1 %% Spectro-Polarimeter Visible Light Analysis2 clear; close all; clc;3 % Jon Slater4
5 %% File directory6 % Set the directory as the folder with the calibration data7 directory = '/Documents/SpectroPolarimeter/SPIntegratingSphere/6700';8 files = dir(fullfile(directory,'*.csv'));9 L = length(files);
10
11 % This is to warn the user if there are an incorrect number of files:12 if mod(L,4) ~= 013 for n = 1:4:L14 fprintf('Warning: incorrect number of files\n')15 end16 return17 end18
39
40 Chapter B Data Analysis and Stokes Calculations
19 % divide data into 4 groups with groups: 1:a, a+1:b, b+1:c, c+1:L20 a = L/4;21 b = 2*a;22 c = 3*a;23
24 %% Analysis of calibration data at 0 degrees25 SPdata0 = zeros(2151,a+1);26 SPdata0(:,1) = 350:2500;27 i = 2;28 % readin the data with the polarizer at 0 degrees29 for j = 1:a30 filename0 = fullfile(directory,files(j).name);31
32 ReadInData = csvread(filename0,1,0);33 SPdata0(:,i) = ReadInData(:,2);34 i=i+1;35 end36
37 % finding the average for calibration data w/ polarizer at 0 degrees38 calib0 = zeros(2151,2);39 calib0(:,1) = 350:2500;40 for k = 1:a41 calib0(:,2) = calib0(:,2) + SPdata0(:,k+1);42 end43 calib0(:,2) = calib0(:,2)./a;44
45 %% Analysis of polarization data at 45 degrees46 SPdata45 = zeros(2151,a+1);47 SPdata45(:,1) = 350:2500;48 i = 2;49 % readin the data with the polarizer at 45 degrees50 for j = a+1:b51 filename45 = fullfile(directory,files(j).name);52
53 ReadInData = csvread(filename45,1,0);54 SPdata45(:,i) = ReadInData(:,2);55 i=i+1;56 end57
58 % finding the average for calibration data w/ polarizer at 45 degrees59 calib45 = zeros(2151,2);60 calib45(:,1) = 350:2500;61 for k = 1:a62 calib45(:,2) = calib45(:,2) + SPdata45(:,k+1);63 end64 calib45(:,2) = calib45(:,2)./a;65
66 %% Analysis of polarization data at 90 degrees67 SPdata90 = zeros(2151,a+1);68 SPdata90(:,1) = 350:2500;69 i = 2;
41
70 % readin the data with the polarizer at 90 degrees71 for j = b+1:c72 filename90 = fullfile(directory,files(j).name);73
74 ReadInData = csvread(filename90,1,0);75 SPdata90(:,i) = ReadInData(:,2);76 i=i+1;77 end78
79 % finding the average for calibration data w/ polarizer at 90 degrees80 calib90 = zeros(2151,2);81 calib90(:,1) = 350:2500;82 for k = 1:a83 calib90(:,2) = calib90(:,2) + SPdata90(:,k+1);84 end85 calib90(:,2) = calib90(:,2)./a;86
87 %% Analysis of polarization data at 135 degrees88 SPdata135 = zeros(2151,a+1);89 SPdata135(:,1) = 350:2500;90 i = 2;91 % readin the data with the polarizer at 135 degrees92 for j = c+1:L93 filename135 = fullfile(directory,files(j).name);94
95 ReadInData = csvread(filename135,1,0);96 SPdata135(:,i) = ReadInData(:,2);97 i=i+1;98 end99
100 % finding average for calibration data w/ polarizer at 135 degrees101 calib135 = zeros(2151,2);102 calib135(:,1) = 350:2500;103 for k = 1:a104 calib135(:,2) = calib135(:,2) + SPdata135(:,k+1);105 end106 calib135(:,2) = calib135(:,2)./a;107
108 %% Dividing each polarization state by the 0 degree:109
110 response0 = calib0(:,2)./calib0(:,2);111 response45 = calib45(:,2)./calib0(:,2);112 response90 = calib90(:,2)./calib0(:,2);113 response135 = calib135(:,2)./calib0(:,2);114
115 %% Raw Data input116 % Set the directory as the folder with the data of a given day117 directory = '/Documents/SpectroPolarimeter/SP 7 31/1134';118 files = dir(fullfile(directory,'*.csv'));119 L = length(files);120
42 Chapter B Data Analysis and Stokes Calculations
121 % This is to warn the user if there are an incorrect number of files:122 if mod(L,4) ~= 0123 for n = 1:4:L124 fprintf('Warning: incorrect number of files\n')125 end126 end127
128 % divide data into 4 groups with groups: 1:a, a+1:b, b+1:c, c+1:L129 a = L/4;130 b = 2*a;131 c = 3*a;132
133 %% Analysis of polarization data at 0 degrees134 SPdata0 = zeros(2151,a+1);135 SPdata0(:,1) = 350:2500;136 i = 1;137 % readin the data with the polarizer at 0 degrees138 for j = 1:a139 filename0 = fullfile(directory,files(j).name);140
141 ReadInData = csvread(filename0,1,0);142 SPdata0(:,i+1) = ReadInData(:,2);143 i=i+1;144 end145
146 % finding the average for the data with polarizer at 0 degrees147 mean0 = zeros(2151,2);148 mean0(:,1) = 350:2500;149
150 for k = 1:a151 mean0(:,2) = mean0(:,2) + SPdata0(:,k+1);152 end153 mean0(:,2) = mean0(:,2)./a;154
155 % divid out the instrument response156 postmean0 = mean0(:,2)./response0;157
158 % delta function159 bb = 1/10*ones(1,10);160
161 % smooth out the data using the convolution function (conv)162 meansmthcal0 = conv(postmean0,bb);163 meansmthcal0 = meansmthcal0(5:end-5);164
165 meansmth0 = conv(mean0(:,2),bb);166 meansmth0 = meansmth0(5:end-5);167
168 %% Analysis of polarization data at 45 degrees169 SPdata45 = zeros(2151,a+1);170 SPdata45(:,1) = 350:2500;171 i = 1;
43
172 % readin the data with the polarizer at 45 degrees173 for j = a+1:b174 filename45 = fullfile(directory,files(j).name);175
176 ReadInData = csvread(filename45,1,0);177 SPdata45(:,i+1) = ReadInData(:,2);178 i=i+1;179 end180
181 % finding the average for the data with polarizer at 45 degrees182 mean45 = zeros(2151,2);183 mean45(:,1) = 350:2500;184
185 for k = 1:a186 mean45(:,2) = mean45(:,2) + SPdata45(:,k+1);187 end188 mean45(:,2) = mean45(:,2)./a;189
190 % divid out the instrument response191 postmean45 = mean45(:,2)./response45;192
193 % smooth out the data using the convolution function (conv)194 meansmthcal45 = conv(postmean45,bb);195 meansmthcal45 = meansmthcal45(5:end-5);196
197 meansmth45 = conv(mean45(:,2),bb);198 meansmth45 = meansmth45(5:end-5);199
200 %% Analysis of polarization data at 90 degrees201 SPdata90 = zeros(2151,a+1);202 SPdata90(:,1) = 350:2500;203 i = 1;204 % readin the data with the polarizer at 90 degrees205 for j = b+1:c206 filename90 = fullfile(directory,files(j).name);207
208 ReadInData = csvread(filename90,1,0);209 SPdata90(:,i+1) = ReadInData(:,2);210 i=i+1;211 end212
213 % finding the average for the data with polarizer at 90 degrees214 mean90 = zeros(2151,2);215 mean90(:,1) = 350:2500;216
217 for k = 1:a218 mean90(:,2) = mean90(:,2) + SPdata90(:,k+1);219 end220 mean90(:,2) = mean90(:,2)./a;221
222 % divid out the instrument response
44 Chapter B Data Analysis and Stokes Calculations
223 postmean90 = mean90(:,2)./response90;224
225 % smooth out the data using the convolution function (conv)226 meansmthcal90 = conv(postmean90,bb);227 meansmthcal90 = meansmthcal90(5:end-5);228
229 meansmth90 = conv(mean90(:,2),bb);230 meansmth90 = meansmth90(5:end-5);231
232 %% Analysis of polarization data at 135 degrees233 SPdata135 = zeros(2151,a+1);234 SPdata135(:,1) = 350:2500;235 i = 1;236 % readin the data with the polarizer at 135 degrees237 for j = c+1:L238 filename135 = fullfile(directory,files(j).name);239
240 ReadInData = csvread(filename135,1,0);241 SPdata135(:,i+1) = ReadInData(:,2);242 i=i+1;243 end244
245 % finding the average for the data with polarizer at 135 degrees246 mean135 = zeros(2151,2);247 mean135(:,1) = 350:2500;248
249 for k = 1:a250 mean135(:,2) = mean135(:,2) + SPdata135(:,k+1);251 end252 mean135(:,2) = mean135(:,2)./a;253
254 % divid out the instrument response255 postmean135 = mean135(:,2)./response135;256
257 % smooth out the data using the convolution function (conv)258 meansmthcal135 = conv(postmean135,bb);259 meansmthcal135 = meansmthcal135(5:end-5);260
261 meansmth135 = conv(mean135(:,2),bb);262 meansmth135 = meansmth135(5:end-5);263
264 %% Differences265 % find the difference in the data with response and without266 difference0 = meansmth0 - meansmthcal0;267 difference45 = meansmth45 - meansmthcal45;268 difference90 = meansmth90 - meansmthcal90;269 difference135 = meansmth135 - meansmthcal135;270
271 %% Correct for the Spectral Response272 % Set the directory as the folder with the data of given day273 directory = '/Documents/SpectroPolarimeter/Int Sphere Spectrum';
45
274 file = dir(fullfile(directory,'*.csv'));275
276 filename = fullfile(directory,file.name);277 ReadInData = csvread(filename);278
279 % set variables280 Lambda = ReadInData(:,1);281 Number = ReadInData(:,2);282 Max = max(Number);283
284 % normalize285 Spectral Resp = Number;%./Max;286
287 % correct data for spectral response288 all vis = zeros(751,3);289 all vis(:,1) = postmean0(1:751,:);290 all vis(:,2) = postmean45(1:751,:);291 all vis(:,3) = postmean90(1:751,:);292 data peaks = max(all vis);293 data peak = max(data peaks);294
295 % find the max of the data296 vis0 = all vis(:,1);297 vis45 = all vis(:,2);298 vis90 = all vis(:,3);299
300 vis0 = vis0./Spectral Resp;301 vis45 = vis45./Spectral Resp;302 vis90 = vis90./Spectral Resp;303
304 %% Formation of Stokes parameters accross spectrum305 % initialize the stokes parameters as arrays306 S0 = zeros(2151,1); Stokes0 = zeros(751,1);307 S1 = zeros(2151,1); Stokes1 = zeros(751,1);308 S2 = zeros(2151,1); Stokes2 = zeros(751,1);309 S3 = zeros(2151,1); Stokes3 = zeros(751,1);310
311 % calculation of the stokes parameters312 for j = 1:length(postmean0)313 S0(j,1) = postmean0(j,1) + postmean90(j,1);314 % S1 is 0 - 90 if the orientation of 0 degrees is horizontal315 S1(j,1) = postmean0(j,1) - postmean90(j,1);316 S2(j,1) = 2*postmean45(j,1) - postmean0(j,1) - postmean90(j,1);317 end318
319 % 2nd calc of stokes320 for k = 1:length(vis0)321 Stokes0(k,1) = vis0(k,1) + vis90(k,1);322 Stokes1(k,1) = vis0(k,1) - vis90(k,1);323 Stokes2(k,1) = 2*vis45(k,1) - vis0(k,1) - vis90(k,1);324 end
46 Chapter B Data Analysis and Stokes Calculations
325
326 th = input('\nWhat angle is the mount tilted at? ');327 % Rotation matrix328 M = [1 0 0 0; 0 cosd(2*th) -sind(2*th) 0;...329 0 sind(2*th) cosd(2*th) 0; 0 0 0 1];330
331 % define array sizes332 S = zeros(length(postmean0),4); Stok = zeros(length(vis0),4);333 Sr = zeros(length(postmean0),4); Stokes = zeros(length(vis0),4);334
335 % apply the rotation matrix for each data element336 for k = 1:length(postmean0)337 S(k,:) = [S0(k,1) S1(k,1) S2(k,1) S3(k,1)];338 Sr(k,:) = S(k,:)*M;339 end340
341 % 2nd application of rotation matrix342 for j = 1:length(vis0)343 Sto(j,:) = [Stokes0(j,1) Stokes1(j,1) Stokes2(j,1) Stokes3(j,1)];344 Stokes(j,:) = Sto(j,:)*M;345 end346
347 % select a wavelength of interest348 lam = input('\nWhat is your wavelength of interest? ');349 while lam > 1000 | | lam < 350350 fprintf('Invalid input for the wavelength.\n')351 fprintf('Choose a wavelength between 350 and 1000 nm.\n\n')352 lam = input('What is your wavelength of interest? ');353 end354
355 % output the normalized stokes vector for the chosen wavelength356 Stokes calc = [Sr(lam-349,1)/Sr(lam-349,1);...357 Sr(lam-349,2)/Sr(lam-349,1);...358 Sr(lam-349,3)/Sr(lam-349,1);...359 Sr(lam-349,4)/Sr(lam-349,1)]360
361 % output calculated degree of linear polarization (DoLP)362 DoLP = sqrt(Sr(lam-349,2).ˆ2 + Sr(lam-349,3).ˆ2)./Sr(lam-349,1)363
364 %% Output Graphs365 %% plotting the instrument response to the polarization state366
367 figure368 plot(calib0(:,1),response0,'b',...369 calib45(:,1),response45,'r',...370 calib90(:,1),response90,'g',...371 calib135(:,1),response135,'c','Linewidth',2)372 xlim([350 1100])373 ylim([0.99 1.01])374 legend('0 Degrees','45 Degrees','90 Degrees','135 Degrees')375 xlabel('Wavelength (nm)')
47
376 ylabel('Ratio to 0 degrees')377 title('Instrument Reponse: Integrating Sphere Average')378 set(gca,'FontSize',16)379
380 %% plotting polarization curves without response381 figure382 % smoothed plot:383 plot(mean0(:,1),meansmthcal0,'b.',...384 mean45(:,1),meansmthcal45,'r.',...385 mean90(:,1),meansmthcal90,'g.',...386 mean135(:,1),meansmthcal135,'c.','Linewidth',2)387 % unsmoothed plot:388 % plot(mean0(:,1),postmean0(:,2),'b',...389 % mean45(:,1),postmean45(:,2),'r',...390 % mean90(:,1),postmean90(:,2),'g',...391 % mean135(:,1),postmean135(:,2),'c','Linewidth',2)392 xlim([350 1100])393 legend('0 Degrees','45 Degrees','90 Degrees','135 Degrees')394 xlabel('Wavelength (nm)')395 ylabel('Digital Count/Number')396 title('Data Set Average w/o instrument response')397 set(gca,'FontSize',16)398
399 %% Plot the different Stokes parameters vs wavelength400 figure401 plot(mean0(:,1),Sr(:,1)./Sr(:,1),...402 mean0(:,1),Sr(:,2)./Sr(:,1),...403 mean0(:,1),Sr(:,3)./Sr(:,1),...404 mean0(:,1),sqrt(Sr(:,2).ˆ2+Sr(:,3).ˆ2)./Sr(:,1),'Linewidth',2)405 xlim([350 1100])406 legend('S 0','S 1','S 2','DoLP')407 xlabel('Wavelength (nm)')408 ylabel('Stokes Parameter Size')409 title('Normalized Stokes Parameters vs Wavelength')410 set(gca,'FontSize',16)411
412 %% Plot Stokes parameters w/o spectral response413 figure414 plot(Lambda,Stokes(:,1)./Stokes(:,1),...415 Lambda,Stokes(:,2)./Stokes(:,1),...416 Lambda,Stokes(:,3)./Stokes(:,1),'Linewidth',2)417 xlim([350 1100])418 legend('S 0','S 1','S 2')419 xlabel('Wavelength (nm)')420 ylabel('Stokes Parameter Size')421 title('Stokes Parameters w/o Spectral Response')422 set(gca,'FontSize',16)423
424 %% ploting the difference between the data with and without response425 figure426 plot(mean0(:,1),difference0,'b.',...
48 Chapter B Data Analysis and Stokes Calculations
427 mean45(:,1),difference45,'r.',...428 mean90(:,1),difference90,'g.',...429 mean135(:,1),difference135,'c.','LineWidth',2)430 xlim([350 1100])431 ylim([-100 100])432 legend('0 Degrees','45 Degrees','90 Degrees','135 Degrees')433 xlabel('Wavelength (nm)')434 ylabel('Digital Count/Number')435 title('Differences of data with/without Response')436 set(gca,'FontSize',16)
top related