an investigation of skylight polarization using a … _slaterw16.pdf · the spectro-polarimeter is...

62
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

Upload: vuongnga

Post on 14-Apr-2019

254 views

Category:

Documents


0 download

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

Copyright © 2016 Jonathan Travis Slater

All Rights Reserved

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.

10 Chapter 1 Introduction

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.

20 Chapter 2 Methods

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.

38 Chapter A Measurement Direction Code

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)