Compare commits
4 commits
5ae5e32048
...
e9d89e5769
| Author | SHA1 | Date | |
|---|---|---|---|
| e9d89e5769 | |||
| 6b0be3e3b6 | |||
| 2528dc461f | |||
| dca98cc8bf |
18 changed files with 11972 additions and 0 deletions
214
icme_list.dat
Normal file
214
icme_list.dat
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
#List of ICMEs seen at ACE
|
||||
#taken from Lan Jian 's list available at the ACE Science Center
|
||||
#but formatted to be more 'software-friendly'
|
||||
#
|
||||
#Begin YYYY, MM, DD, HH, MM, End YYYY, MM, DD, HH, MM, ACE, non-SIR, not atypical
|
||||
2000 01 22 00 23 2000 01 25 08 20 1 1 1
|
||||
2000 02 11 02 13 2000 02 11 23 00 1 1 1
|
||||
2000 02 11 23 19 2000 02 13 00 15 1 1 1
|
||||
2000 02 14 06 57 2000 02 15 15 30 1 1 1
|
||||
2000 02 20 21 00 2000 02 22 12 00 0 1 1
|
||||
2000 03 01 03 30 2000 03 02 03 00 0 1 1
|
||||
2000 03 29 23 30 2000 03 31 20 00 0 0 1
|
||||
2000 04 03 13 56 2000 04 05 20 35 1 1 1
|
||||
2000 04 06 16 32 2000 04 08 06 00 0 1 0
|
||||
2000 05 07 00 00 2000 05 08 21 10 0 1 0
|
||||
2000 06 04 14 50 2000 06 06 16 30 0 1 1
|
||||
2000 06 08 09 05 2000 06 09 16 00 0 1 1
|
||||
2000 06 12 22 00 2000 06 14 06 15 0 1 0
|
||||
2000 06 23 12 28 2000 06 25 19 22 1 1 1
|
||||
2000 07 01 01 00 2000 07 02 18 29 1 1 0
|
||||
2000 07 11 11 24 2000 07 13 02 22 1 1 1
|
||||
2000 07 13 09 19 2000 07 14 04 00 1 1 1
|
||||
2000 07 14 15 00 2000 07 15 14 00 0 1 1
|
||||
2000 07 15 14 16 2000 07 17 01 00 0 1 1
|
||||
2000 07 19 14 49 2000 07 21 19 27 1 1 1
|
||||
2000 07 26 17 55 2000 07 27 19 53 1 1 1
|
||||
2000 07 28 05 43 2000 07 29 09 10 1 1 1
|
||||
2000 08 10 04 08 2000 08 11 18 00 1 1 0
|
||||
2000 08 11 18 12 2000 08 13 22 10 1 1 1
|
||||
2000 09 02 12 00 2000 09 03 12 15 1 1 0
|
||||
2000 09 04 12 45 2000 09 06 00 43 1 1 1
|
||||
2000 09 06 16 15 2000 09 10 04 00 1 1 1
|
||||
2000 09 17 14 09 2000 09 19 06 25 1 1 1
|
||||
2000 10 03 01 02 2000 10 04 12 30 0 1 0
|
||||
2000 10 05 03 29 2000 10 06 06 00 0 1 1
|
||||
2000 10 12 22 33 2000 10 14 07 16 0 1 1
|
||||
2000 10 28 09 32 2000 10 29 23 30 0 1 1
|
||||
2000 11 06 09 30 2000 11 08 03 25 0 1 1
|
||||
2000 11 10 06 20 2000 11 10 18 00 0 1 0
|
||||
2000 11 11 04 13 2000 11 11 21 00 0 1 1
|
||||
2000 11 28 04 58 2000 11 30 08 00 1 1 1
|
||||
2000 12 03 03 21 2000 12 05 08 00 1 1 0
|
||||
2001 01 13 02 27 2001 01 14 00 00 0 1 1
|
||||
2001 01 23 10 07 2001 01 26 07 48 1 1 1
|
||||
2001 01 31 08 37 2001 02 01 15 30 0 1 1
|
||||
2001 03 04 05 00 2001 03 05 01 40 0 0 0
|
||||
2001 03 19 11 34 2001 03 22 00 00 0 1 1
|
||||
2001 03 27 02 02 2001 03 27 10 09 0 1 1
|
||||
2001 03 27 18 07 2001 03 28 13 45 0 1 0
|
||||
2001 03 31 00 23 2001 03 31 21 38 0 1 1
|
||||
2001 03 31 21 40 2001 04 03 03 10 1 1 1
|
||||
2001 04 04 14 23 2001 04 05 05 45 1 1 1
|
||||
2001 04 07 17 00 2001 04 08 05 51 0 1 0
|
||||
2001 04 08 10 32 2001 04 10 09 00 1 1 1
|
||||
2001 04 11 13 15 2001 04 13 04 46 1 1 0
|
||||
2001 04 13 07 07 2001 04 14 10 10 1 1 1
|
||||
2001 04 18 00 05 2001 04 20 11 00 1 1 1
|
||||
2001 04 21 15 08 2001 04 23 00 30 1 1 0
|
||||
2001 04 28 04 32 2001 04 29 14 00 1 1 1
|
||||
2001 05 27 14 47 2001 05 29 10 30 0 1 1
|
||||
2001 06 27 03 00 2001 06 28 17 00 1 1 0
|
||||
2001 07 09 03 00 2001 07 12 03 00 0 1 0
|
||||
2001 08 03 07 19 2001 08 03 18 15 0 1 1
|
||||
2001 08 05 01 15 2001 08 05 23 45 1 0 1
|
||||
2001 08 17 11 02 2001 08 18 20 00 0 1 1
|
||||
2001 08 27 19 38 2001 08 28 16 50 0 1 1
|
||||
2001 09 17 21 45 2001 09 19 17 47 1 1 0
|
||||
2001 09 25 20 18 2001 09 27 04 00 0 1 1
|
||||
2001 09 29 09 06 2001 09 30 16 00 1 1 1
|
||||
2001 09 30 18 47 2001 10 01 16 00 1 1 1
|
||||
2001 10 02 23 24 2001 10 03 16 30 1 1 1
|
||||
2001 10 03 22 00 2001 10 04 07 00 1 1 1
|
||||
2001 10 21 16 14 2001 10 22 23 10 1 1 0
|
||||
2001 10 28 02 43 2001 10 31 12 54 1 1 1
|
||||
2001 10 31 13 48 2001 11 02 12 00 0 1 0
|
||||
2001 11 05 19 31 2001 11 06 20 17 0 1 1
|
||||
2001 11 14 08 00 2001 11 15 09 00 0 1 1
|
||||
2001 11 15 18 00 2001 11 16 10 30 0 1 1
|
||||
2001 11 19 17 36 2001 11 20 17 00 0 1 1
|
||||
2001 11 24 05 52 2001 11 25 16 38 0 1 1
|
||||
2001 12 29 04 49 2001 12 30 18 20 1 1 1
|
||||
2001 12 30 19 33 2001 12 31 07 47 1 1 0
|
||||
2002 02 28 05 07 2002 03 01 09 00 0 1 0
|
||||
2002 03 18 13 15 2002 03 20 09 38 0 1 0
|
||||
2002 03 20 13 20 2002 03 22 03 00 0 1 1
|
||||
2002 03 23 11 25 2002 03 25 21 00 0 0 1
|
||||
2002 04 14 11 49 2002 04 15 18 00 1 1 1
|
||||
2002 04 17 11 02 2002 04 19 08 25 0 1 0
|
||||
2002 04 19 08 27 2002 04 21 16 30 0 1 1
|
||||
2002 04 23 04 15 2002 04 24 17 00 1 1 0
|
||||
2002 05 10 11 14 2002 05 11 10 00 0 1 1
|
||||
2002 05 11 10 30 2002 05 11 23 50 0 0 0
|
||||
2002 05 18 19 20 2002 05 20 02 57 1 1 1
|
||||
2002 05 20 03 35 2002 05 21 21 00 0 1 1
|
||||
2002 05 23 10 16 2002 05 25 18 20 1 1 1
|
||||
2002 07 17 15 26 2002 07 19 07 30 1 1 1
|
||||
2002 07 19 09 32 2002 07 21 11 08 1 0 1
|
||||
2002 07 25 13 00 2002 07 26 18 30 1 1 0
|
||||
2002 07 29 12 42 2002 07 30 18 00 1 1 1
|
||||
2002 08 01 04 25 2002 08 01 22 20 1 1 1
|
||||
2002 08 01 22 20 2002 08 03 05 26 1 1 1
|
||||
2002 08 18 18 10 2002 08 21 21 15 1 1 1
|
||||
2002 08 26 11 15 2002 08 26 23 00 0 1 1
|
||||
2002 09 07 16 22 2002 09 08 20 00 0 1 1
|
||||
2002 09 08 22 25 2002 09 10 20 00 0 1 1
|
||||
2002 09 19 06 17 2002 09 20 22 35 0 1 1
|
||||
2002 09 30 07 55 2002 10 01 14 30 0 0 1
|
||||
2002 10 02 22 41 2002 10 04 19 00 0 1 1
|
||||
2002 11 16 23 04 2002 11 18 23 46 1 1 0
|
||||
2002 11 26 21 10 2002 11 27 20 15 1 1 1
|
||||
2003 02 01 13 13 2003 02 03 04 47 0 1 1
|
||||
2003 02 17 21 51 2003 02 19 00 44 1 0 0
|
||||
2003 03 20 04 21 2003 03 20 22 30 1 1 0
|
||||
2003 05 09 04 56 2003 05 10 06 00 1 1 0
|
||||
2003 05 29 11 52 2003 05 29 18 30 1 1 1
|
||||
2003 05 29 18 30 2003 05 30 14 15 1 1 1
|
||||
2003 05 30 15 53 2003 05 31 11 25 1 1 0
|
||||
2003 06 15 06 17 2003 06 16 21 00 1 0 0
|
||||
2003 06 17 00 30 2003 06 18 09 00 0 1 1
|
||||
2003 07 06 12 25 2003 07 07 11 42 1 1 0
|
||||
2003 07 23 14 00 2003 07 24 14 00 1 1 0
|
||||
2003 08 04 19 30 2003 08 05 23 00 0 0 0
|
||||
2003 08 18 01 13 2003 08 19 16 23 1 1 0
|
||||
2003 10 21 23 00 2003 10 24 02 28 1 1 1
|
||||
2003 10 24 14 49 2003 10 25 11 23 1 1 0
|
||||
2003 10 26 08 10 2003 10 28 01 30 1 1 0
|
||||
2003 10 29 08 42 2003 10 30 10 00 1 1 0
|
||||
2003 10 31 01 27 2003 11 01 17 20 0 1 1
|
||||
2003 11 04 06 00 2003 11 04 15 30 1 1 1
|
||||
2003 11 06 19 20 2003 11 08 04 30 1 1 1
|
||||
2003 11 15 05 19 2003 11 15 17 00 1 1 1
|
||||
2003 11 20 07 28 2003 11 21 06 15 1 1 1
|
||||
2004 01 09 14 51 2004 01 12 13 00 1 1 0
|
||||
2004 01 22 01 05 2004 01 23 07 00 1 1 1
|
||||
2004 01 23 14 21 2004 01 25 03 00 1 1 0
|
||||
2004 04 03 09 55 2004 04 05 19 32 0 0 1
|
||||
2004 04 10 19 27 2004 04 11 12 20 1 1 0
|
||||
2004 04 12 17 36 2004 04 13 05 00 1 1 0
|
||||
2004 04 26 15 18 2004 04 27 09 25 1 1 0
|
||||
2004 04 30 16 00 2004 05 02 21 00 1 1 1
|
||||
2004 07 22 09 55 2004 07 23 08 55 1 0 1
|
||||
2004 07 24 05 31 2004 07 25 15 35 0 1 0
|
||||
2004 07 25 17 34 2004 07 26 17 48 1 1 1
|
||||
2004 07 26 22 29 2004 07 27 15 32 1 1 1
|
||||
2004 08 29 09 08 2004 08 30 20 20 0 1 0
|
||||
2004 09 13 19 45 2004 09 14 21 30 0 1 0
|
||||
2004 09 18 12 10 2004 09 20 08 00 0 1 0
|
||||
2004 09 22 05 54 2004 09 22 18 38 1 1 0
|
||||
2004 11 09 18 21 2004 11 11 06 32 0 0 0
|
||||
2004 11 11 16 49 2004 11 13 11 00 0 1 1
|
||||
2004 12 11 12 57 2004 12 14 02 38 1 1 1
|
||||
2004 12 27 04 48 2004 12 28 18 00 1 1 0
|
||||
2005 01 07 08 38 2005 01 08 07 07 0 1 0
|
||||
2005 01 08 20 13 2005 01 09 17 40 1 1 0
|
||||
2005 01 16 09 27 2005 01 17 07 13 0 1 0
|
||||
2005 01 17 07 15 2005 01 17 23 00 0 1 0
|
||||
2005 01 18 02 20 2005 01 20 02 00 0 1 0
|
||||
2005 01 21 16 48 2005 01 22 17 00 1 1 1
|
||||
2005 01 30 23 01 2005 02 02 09 10 0 1 0
|
||||
2005 02 18 15 00 2005 02 19 04 20 0 1 0
|
||||
2005 02 21 01 48 2005 02 22 07 33 0 1 0
|
||||
2005 02 22 16 26 2005 02 23 18 20 1 1 0
|
||||
2005 03 21 06 15 2005 03 23 19 00 0 1 0
|
||||
2005 05 07 18 26 2005 05 10 08 00 0 1 0
|
||||
2005 05 15 02 10 2005 05 17 09 42 0 1 1
|
||||
2005 05 20 03 35 2005 05 21 07 00 0 1 0
|
||||
2005 05 29 09 00 2005 05 31 07 03 0 0 0
|
||||
2005 06 12 06 49 2005 06 13 14 00 0 1 1
|
||||
2005 06 14 17 56 2005 06 16 08 09 0 0 1
|
||||
2005 07 10 02 42 2005 07 11 06 19 0 1 1
|
||||
2005 07 16 01 41 2005 07 16 12 42 0 1 0
|
||||
2005 07 17 00 53 2005 07 18 02 55 0 1 0
|
||||
2005 08 08 23 10 2005 08 09 12 00 1 1 0
|
||||
2005 08 23 22 47 2005 08 24 11 28 0 0 1
|
||||
2005 09 02 13 50 2005 09 03 03 00 0 1 1
|
||||
2005 09 09 13 33 2005 09 10 04 10 0 0 1
|
||||
2005 09 11 00 58 2005 09 12 06 00 0 1 1
|
||||
2005 09 12 06 03 2005 09 13 09 00 1 1 1
|
||||
2005 09 13 08 54 2005 09 14 08 00 0 1 0
|
||||
2005 09 15 08 36 2005 09 16 03 42 0 1 0
|
||||
2005 10 31 02 43 2005 10 31 21 00 0 1 0
|
||||
2005 12 30 23 45 2006 01 01 10 00 0 1 0
|
||||
2006 01 01 13 26 2006 01 02 03 00 0 1 1
|
||||
2006 02 05 19 00 2006 02 06 12 45 0 1 0
|
||||
2006 03 14 11 30 2006 03 15 00 00 0 1 0
|
||||
2006 04 13 11 12 2006 04 14 11 00 1 1 0
|
||||
2006 06 17 21 30 2006 06 18 08 00 0 0 1
|
||||
2006 07 09 20 40 2006 07 11 05 27 0 0 1
|
||||
2006 08 19 10 57 2006 08 21 16 00 0 1 0
|
||||
2006 09 30 07 53 2006 09 30 19 43 1 0 1
|
||||
2006 11 29 05 00 2006 11 30 06 25 0 1 1
|
||||
2006 12 08 04 02 2006 12 08 04 02 0 1 1
|
||||
2006 12 14 13 52 2006 12 15 11 50 0 1 1
|
||||
2006 12 16 17 34 2006 12 17 19 21 0 1 0
|
||||
2007 01 14 11 48 2007 01 15 07 10 0 1 0
|
||||
2007 05 21 22 23 2007 05 22 13 40 0 1 1
|
||||
2007 11 19 17 22 2007 11 20 11 46 0 1 0
|
||||
2007 12 25 16 00 2007 12 26 07 43 0 1 0
|
||||
2008 07 25 13 00 2008 07 25 23 30 0 1 0
|
||||
2008 09 17 04 00 2008 09 18 08 04 0 1 0
|
||||
2008 12 04 11 20 2008 12 05 10 38 0 1 1
|
||||
2008 12 17 03 27 2008 12 17 16 00 0 1 1
|
||||
2009 01 26 04 55 2009 01 26 15 15 0 1 0
|
||||
2009 02 03 19 21 2009 02 04 19 00 0 1 0
|
||||
2009 03 11 22 00 2009 03 13 01 33 0 0 1
|
||||
2009 06 27 11 04 2009 06 28 19 39 0 0 1
|
||||
2009 07 21 01 00 2009 07 22 05 15 0 0 0
|
||||
2009 08 05 12 29 2009 08 06 05 49 0 0 1
|
||||
2009 09 30 00 38 2009 09 30 19 13 0 1 1
|
||||
2009 10 16 22 22 2009 10 17 10 23 0 1 0
|
||||
2009 10 17 21 24 2009 10 18 15 20 0 1 0
|
||||
2009 10 29 02 00 2009 10 29 23 42 0 1 1
|
||||
2009 11 13 17 00 2009 11 15 11 50 0 1 0
|
||||
2009 12 12 04 39 2009 12 13 22 39 0 1 1
|
||||
117
icmes.py
Normal file
117
icmes.py
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
Read list of ACE ICMEs and provide truth values etc. for ICME objects
|
||||
"""
|
||||
|
||||
|
||||
import datetime,calendar,sys
|
||||
from numpy import *
|
||||
|
||||
|
||||
class ICME(object):
|
||||
"""
|
||||
The class itself. Provides basic functionality
|
||||
"""
|
||||
|
||||
def __init__(self, option="all", path="", source=["jian"]):
|
||||
self.id = []
|
||||
self.ace = []
|
||||
self.nosir = []
|
||||
self.typical = []
|
||||
self.y_beg = []
|
||||
self.mon_beg = []
|
||||
self.d_beg = []
|
||||
self.h_beg = []
|
||||
self.min_beg = []
|
||||
self.y_end = []
|
||||
self.mon_end = []
|
||||
self.d_end = []
|
||||
self.h_end = []
|
||||
self.min_end = []
|
||||
self.date_beg = []
|
||||
self.date_end = []
|
||||
self.doy_beg = []
|
||||
self.doy_end = []
|
||||
self.fyr_beg = []
|
||||
self.fyr_end = []
|
||||
self.duration = []
|
||||
self.source=source
|
||||
for source in self.source:
|
||||
if source=="jian":
|
||||
self.icme_file_name=path+'/home/rassilon/heidrich/etph/coding/icme_list.dat'
|
||||
if source=="rc":
|
||||
self.icme_file_name=path+'/home/rassilon/heidrich/etph/coding/rc_icmes.dat'
|
||||
self.icme_file = open(self.icme_file_name, 'r')
|
||||
i = 1
|
||||
for line in self.icme_file:
|
||||
if line[0] != '#':
|
||||
if source=="jian":
|
||||
y_beg, mon_beg, d_beg, h_beg, min_beg, y_end, mon_end, d_end, h_end, min_end, ace, nosir, typical= line.split()
|
||||
else:
|
||||
y_beg, mon_beg, d_beg, h_beg, min_beg, y_end, mon_end, d_end, h_end, min_end= line.split()
|
||||
self.id = i
|
||||
i += 1
|
||||
needthis=True
|
||||
if option=="ace" and int(ace)==0:
|
||||
needthis=False
|
||||
if option=="nosir" and int(nosir)==0:
|
||||
needthis=False
|
||||
if option=="typical" and int(typical)==0:
|
||||
needthis=False
|
||||
if needthis:
|
||||
if source=="rc":
|
||||
self.ace.append(0)
|
||||
self.nosir.append(0)
|
||||
self.typical.append(0)
|
||||
else:
|
||||
self.ace.append(int(ace))
|
||||
self.nosir.append(int(nosir))
|
||||
self.typical.append(int(typical))
|
||||
self.y_beg.append(int(y_beg))
|
||||
self.mon_beg.append(int(mon_beg))
|
||||
self.d_beg.append(int(d_beg))
|
||||
self.h_beg.append(int(h_beg))
|
||||
self.min_beg.append(int(min_beg))
|
||||
self.y_end.append(int(y_end))
|
||||
self.mon_end.append(int(mon_end))
|
||||
self.d_end.append(int(d_end))
|
||||
self.h_end.append(int(h_end))
|
||||
self.min_end.append(int(min_end))
|
||||
date_beg = datetime.datetime(int(y_beg),int(mon_beg),int(d_beg),int(h_beg),int(min_beg))
|
||||
date_end = datetime.datetime(int(y_end),int(mon_end),int(d_end),int(h_end),int(min_end))
|
||||
self.date_beg.append(datetime.datetime(int(y_beg),int(mon_beg),int(d_beg),int(h_beg),int(min_beg)))
|
||||
self.date_end.append(datetime.datetime(int(y_end),int(mon_end),int(d_end),int(h_end),int(min_end)))
|
||||
self.doy_beg.append((date_beg - datetime.datetime(int(y_beg), 1, 1)).days + 1. + float(h_beg)/24.+float(min_beg)/24./60.)
|
||||
self.doy_end.append((date_end - datetime.datetime(int(y_end), 1, 1)).days + 1. + float(h_end)/24.+float(min_end)/24./60.)
|
||||
self.fyr_beg.append(int(y_beg)+self.doy_beg[-1]/(365.+calendar.isleap(int(y_beg))))
|
||||
self.fyr_end.append(int(y_end)+self.doy_end[-1]/(365.+calendar.isleap(int(y_end))))
|
||||
self.duration.append(date_end - date_beg)
|
||||
|
||||
|
||||
|
||||
def is_icme(self,dt):
|
||||
"""
|
||||
return whether this particular time, dt, coincides with an ICME
|
||||
dt is in datetime format
|
||||
"""
|
||||
#print ('check whether', dt, 'coincides with an ICME.')
|
||||
ind_beg = searchsorted(self.date_beg,dt)
|
||||
ind_end = searchsorted(self.date_end,dt) + 1
|
||||
#if ind_end >= len(self.date_end): return False
|
||||
#print (ind_beg, self.date_beg[ind_beg], ind_end, self.date_end[ind_end])
|
||||
if ind_beg == ind_end: return True
|
||||
return False
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) != 6:
|
||||
print ('usage: icmes yy_beg, mon_beg, day_beg, hh_beg, mm_beg, source=["jian"]')
|
||||
else:
|
||||
print (sys.argv)
|
||||
dt = datetime.datetime(int(sys.argv[1]),int(sys.argv[2]),int(sys.argv[3]),int(sys.argv[4]),int(sys.argv[5]))
|
||||
icme_list = ICME()
|
||||
print (icme_list.is_icme(dt))
|
||||
|
||||
|
|
@ -329,6 +329,7 @@ class Clusters():
|
|||
print ("Trial %i of %i for %s"%(n, ntrials,method))
|
||||
if not Xloaded and n ==0 :
|
||||
for n in range(self.ntrials):
|
||||
# creates list with the huffeled indices once for all trials
|
||||
X = np.arange(len(data[:,0]))
|
||||
X=shuffle(X,random_state = n*1212+42)
|
||||
X = np.array(X)
|
||||
|
|
@ -370,6 +371,7 @@ class Clusters():
|
|||
|
||||
def include_dB(self, component = 1, verbose = 0):
|
||||
"""
|
||||
function to include dB as a component
|
||||
component= 1 is x component
|
||||
component = 2 is y component
|
||||
"""
|
||||
|
|
@ -394,6 +396,10 @@ class Clusters():
|
|||
startcombi: either set of combination or None, start point of experiment; if None it does all combinations; default: None
|
||||
montecarlo: boolean needs to be set to true if montecarlo experiments should be running default: False
|
||||
mclabel: the label of the monte carlo run usually 'monte_carlo_' + index of the loop, default = ''
|
||||
comp_no_mc: boolean whether the refernce cluster should be not with monte= False
|
||||
plot =True
|
||||
start = 0,
|
||||
one_mc = False
|
||||
"""
|
||||
ntrials = self.ntrials
|
||||
indexs = self.indexs
|
||||
|
|
|
|||
1312
paper/agujournal2019.cls
Normal file
1312
paper/agujournal2019.cls
Normal file
File diff suppressed because it is too large
Load diff
0
paper/agujournaltemplate.loc
Normal file
0
paper/agujournaltemplate.loc
Normal file
1
paper/agujournaltemplate.soc
Normal file
1
paper/agujournaltemplate.soc
Normal file
|
|
@ -0,0 +1 @@
|
|||
;blue;;0;0;0;0;0
|
||||
BIN
paper/agujournaltemplate.synctex.gz
Normal file
BIN
paper/agujournaltemplate.synctex.gz
Normal file
Binary file not shown.
BIN
paper/agujournaltemplate.tex
Normal file
BIN
paper/agujournaltemplate.tex
Normal file
Binary file not shown.
8024
paper/agutexSI2019.cls
Normal file
8024
paper/agutexSI2019.cls
Normal file
File diff suppressed because it is too large
Load diff
434
paper/discussion_agu.tex
Normal file
434
paper/discussion_agu.tex
Normal file
|
|
@ -0,0 +1,434 @@
|
|||
\section{Discussion}\label{sec:discussion}
|
||||
% b can substitute parts of dsw ? compression regions
|
||||
% B can subsitute parts of Tsw correlation of B and Tsw
|
||||
% 7 lower combinations colage more important ?
|
||||
In this section, we discuss the results of our solar wind classification feature analysis approach.
|
||||
We note that the following discussion provides not the only possible interpretation of the results. We neither claim completeness nor uniqueness of the discussion.
|
||||
|
||||
To investigate the sensitivity of the resulting solar wind
|
||||
classification to the choice of the input parameter set, we tested
|
||||
all subsets of the selected seven solar wind parameters and
|
||||
evaluated the results in comparison to the clustering obtained on
|
||||
the full input parameter set. For all combinations of the seven
|
||||
solar wind parameters, 100 clusterings are calculated and compared
|
||||
to the corresponding trial of the combination using all input
|
||||
parameters. Comparing in this context refers to calculating the
|
||||
similarity scores given in Sect.~\ref{sec:scores}. As expected, for
|
||||
all parameter combinations, the similarity to the reference
|
||||
clustering is systematically higher for three clusters than for
|
||||
seven clusters since the simplified clustering with $k=3$ offers
|
||||
fewer degrees of freedom than the more detailed clustering with
|
||||
$k=7$. Although the corresponding error bars that estimate
|
||||
the model stability are more prominent for seven clusters than
|
||||
for three, we found that the $k$-means clustering led to a stable
|
||||
and reliable result.
|
||||
|
||||
\subsection{Implications for the proton density $\n$}
|
||||
The most striking result in the feature selection for
|
||||
both three and seven clusters is the importance of the proton
|
||||
density $\n$. Whenever the input data included $\n$,
|
||||
high similarities to the reference cluster are obtained while
|
||||
omitting $\n$ delivers for both numbers of clusters the
|
||||
lowest respective similarities to the reference clusters. Since
|
||||
the proton density exhibits systematic differences in coronal
|
||||
hole wind and in slow solar wind, the proton density can be
|
||||
regarded as a tracer for the solar source region (and fulfils
|
||||
this role in \citeA{xu2014new}). At the same time, the proton
|
||||
density is affected by expansions (in all types of solar wind)
|
||||
and is suspect to compression and rarefaction in SIRs. That $\n$
|
||||
proved to be the most important solar wind parameter for a
|
||||
simple (mainly source driven) three cluster categorisation and a
|
||||
detailed categorisation that combines source and transport
|
||||
affected types of plasma, supports that $\n$ is indeed a
|
||||
suitable tracer for both origin and transport of the solar
|
||||
wind.
|
||||
|
||||
However, our results also clearly indicate that the proton density
|
||||
alone is not sufficient for this task. Nevertheless, our results
|
||||
underline the importance of measuring the proton density with a
|
||||
high accuracy. The proton density is typically derived as the $0$th
|
||||
moment of 1d-proton velocity distribution functions. Since, the
|
||||
proton velocity distribution function frequently exhibits
|
||||
non-thermal features (in particular the proton beam and different
|
||||
parallel and perpendicular temperatures, see for example,
|
||||
\citeA{marsch1982solar,verscharen2011apparent}) and overlaps with
|
||||
the alpha (He$^{2+}$) velocity distribution function
|
||||
measured in the same instruments, 1d moments tend to introduce a
|
||||
variable bias/ uncertainty into the measurement of the proton
|
||||
plasma properties. The bias induced by the proton beam could also
|
||||
be partially responsible for the observed importance of the
|
||||
proton density. Although the proton density is likely less
|
||||
affected by the non-thermal features in the proton velocity
|
||||
distribution than the proton speed and proton temperature,
|
||||
systematic changes with the presence or absence of a
|
||||
beam, could sharpen the distinction between slow solar wind and
|
||||
coronal hole wind, since a proton beam is predominately (although
|
||||
not uniquely) observed in coronal hole wind and is associated
|
||||
with wave activity
|
||||
\cite{marsch1982wave,verniero2020parker,d2015origin,panasenco2020exploring,louarn2021multiscale}.
|
||||
|
||||
\subsection{Implications for the proton temperature $\T$}
|
||||
|
||||
Based on our study, the proton temperature is the second most
|
||||
important solar wind parameter for solar wind
|
||||
classification. Again, this holds true for both a simple (three
|
||||
type) a detailed (seven type) solar wind classification. The
|
||||
proton temperature is stronger affected by transport effects than
|
||||
the proton density. In particular, wave-particle interactions that
|
||||
lead to non-thermal features and asymmetries in the proton
|
||||
velocity distribution directly impact the observed proton
|
||||
temperatures. This includes (real or apparent,
|
||||
perpendicular) heating of the proton velocity distribution which
|
||||
directly increases the perpendicular temperature. If a
|
||||
proton beam is present this can also affect the determined proton
|
||||
temperatures if simple 1d-moment calculations are used to
|
||||
determine the temperature. These effects are all related to waves
|
||||
which are at L1 mainly found in coronal hole wind or
|
||||
Alfv{\'e}nic slow solar wind. Therefore, we
|
||||
suspect that including the proton temperature in the input data
|
||||
set for $k$-means makes it easier to distinguish between coronal
|
||||
hole wind and non-coronal hole wind. Since the proton temperature
|
||||
is also increased in compression regions, this solar wind
|
||||
parameter is also helpful to distinguish between, for example,
|
||||
compressed slow solar wind and compressed fast solar wind or
|
||||
compressed fast solar wind and uncompressed coronal hole wind.
|
||||
|
||||
The importance of the proton temperature for solar wind
|
||||
classification again suggests that improving the measurement
|
||||
accuracy of the proton temperature is relevant and
|
||||
important. Exploiting the full 3d information of the proton
|
||||
velocity distribution to carefully separate the proton bulk from
|
||||
the proton beam and the protons from alphas, respectively, is from
|
||||
our perspective an important step in this direction.
|
||||
|
||||
|
||||
\begin{table*}
|
||||
\centering
|
||||
\resizebox{1.0\textwidth}{!}{
|
||||
\begin{tabular}[h]{ll|l|l|l|l|l}
|
||||
\multicolumn{2}{l}{parameter combinations} & $k$ & $M_{rand}$ & $M_{adMI}$ & $M_{normMI}$ & $M_{FM}$ \\ \hline
|
||||
$\{\n,\T\}$ & $\{ \n,\B\}$ & 3&0.14 $\in [0.13, 0.15]$ & 0.22 $\in [0.21, 0.22]$ & 0.22 $\in [0.21, 0.22]$ & 0.58 $\in [0.57, 0.59]$ \\
|
||||
$\{\n ,\vsw ,\T ,\B ,\nO , \mcsFe\}$ & $\{\n ,\vsw ,\T ,\B \}$& 3& 0.80 $\in [0.80, 0.81]$ &0.75 $\in [0.74, 0.75]$& 0.75 $\in [0.74, 0.75]$ & 0.89 $\in [0.89, 0.89]$ \\
|
||||
$\{\n ,\vsw ,\T ,\B ,\nO , \mcsFe\}$ & $\{\n ,\vsw ,\T ,\B, \nO \}$ & 3& 0.98 $\in [0.97, 0.98]$& 0.95 $\in [0.94,0.96] $& 0.95 $\in [0.94,0.96]$& 0.99 $\in [0.98,0.99]$ \\
|
||||
$\{\n ,\vsw ,\T ,\B ,\nO , \mcsFe\}$ & $\{\n ,\vsw ,\T ,\B, \mcsFe \}$ & 3& 0.81 $\in [0.80,0.81]$ & 0.75 $\in [0.75,0.76]$& 0.75 $\in [0.75,0.76]$& 0.89 $\in [0.89, 0.90]$\\\hline
|
||||
$\{\n,\T\}$ & $\{ \n,\B\}$ & 7&0.21 $\in [0.20, 0.24]$ & 0.33 $\in [0.32, 0.35]$ & 0.33 $\in [0.32, 0.35]$ & 0.40 $\in [0.39, 0.42]$ \\
|
||||
$\{\T , \colage ,\nO \}$ & $\{\T ,\colage, \mcsFe \}$& 7& 0.26 $\in [0.24, 0.28]$ &0.42 $\in [0.41, 0.43]$& 0.42 $\in [0.41, 0.43]$ & 0.38 $\in [0.36, 0.39]$\\
|
||||
$\{\n ,\vsw ,\T ,\B ,\nO , \mcsFe\}$ & $\{\n ,\vsw ,\T ,\B \}$& 7& 0.36 $\in [0.34, 0.36]$ &0.50 $\in [0.49, 0.51]$& 0.50 $\in [0.49, 0.51]$ & 0.48 $\in [0.47, 0.49]$ \\
|
||||
$\{\n ,\vsw ,\T ,\B ,\nO , \mcsFe\}$ & $\{\n ,\vsw ,\T ,\B, \nO \}$ & 7& 0.36 $\in [0.32, 0.39]$& 0.53 $\in [0.50,0.56] $& 0.53 $\in [0.50,0.56]$& 0.48 $\in [0.45,0.51]$ \\
|
||||
$\{\n ,\vsw ,\T ,\B ,\nO , \mcsFe\}$ & $\{\n ,\vsw ,\T ,\B, \mcsFe \}$ & 7& 0.69 $\in [0.64,0.73]$ & 0.72 $\in [0.69,0.74]$& 0.72 $\in [0.69,0.74]$& 0.74 $\in [0.71, 0.78]$\\ \hline
|
||||
Xu \& Borovsky scheme & $\{\n ,\vsw ,\T ,\B \}$& 3& 0.41 $\in [0.41, 0.41]$ &0.43 $\in [0.43, 0.43]$& 0.43 $\in [0.43, 0.43]$ & 0.65 $\in [0.65, 0.66]$ \\
|
||||
Xu \& Borovsky scheme & $\{\n ,\vsw ,\T , \colage ,\B \}$& 3& 0.43 $\in [0.43, 0.43]$ &0.45 $\in [0.45, 0.45]$& 0.45 $\in [0.45, 0.45]$ & 0.65 $\in [0.65, 0.66]$ \\
|
||||
\end{tabular}
|
||||
}
|
||||
\caption{Similarity scores for the direct comparison of clusterings obtained from selected parameter combinations. For each of the four similarity scores the median and the 0th and 100th percentiles are given. The pairs of combinations are noted in the first columns and the respective number of clusters ($k$) is indicated in the third column.}
|
||||
\label{tab:scores}
|
||||
\end{table*}
|
||||
|
||||
\subsection{Measurement uncertainty and model stability}
|
||||
We considered two sources of uncertainty in our approach: the measurement uncertainty estimated by a Monte Carlo approach and the influence of the starting point of $k$-means and the ordering of the data points as an estimate for the model stability of $k$-means.
|
||||
|
||||
From the Monte Carlo simulation, we obtain a high and frequent deviation for combinations that contain $\T$. This strongly underlines the importance of highly accurate proton temperature measurements. Increasing the measurement accuracy would lead to more stability against the remaining measurement uncertainty and thus a clustering that is more stable. More accurate 3d-proton temperature measurements can also contribute to understanding the (apparent and real) heating of the solar wind through wave-particle interactions.
|
||||
We also see a frequent deviation for combinations that contain $\nO$. This indicates that an improved measurement accuracy would be advised. Since we limited upper error to the percentile corresponding to an 1$\sigma$ interval we would even more advise it.
|
||||
|
||||
\subsection{Implications for the proton speed $\vsw$ }
|
||||
Compared to the proton density and the proton
|
||||
temperature, the proton velocity has proven to be a useful
|
||||
but less influential parameter for solar wind classification in
|
||||
our study. Historically, the proton speed has frequently been used
|
||||
as the single parameter to characterise the solar wind. Our
|
||||
results indicate that over-reliance on the proton speed alone
|
||||
is not advisable and can likely lead to misleading categorisations
|
||||
and interpretations.
|
||||
|
||||
\subsection{Implications for the non-linear parameters}
|
||||
The proton-proton collisional age (or Coulomb number) estimates
|
||||
the number of collisions during the solar wind travel time. We
|
||||
included the collisional age into our input data set for two main
|
||||
reasons: to estimate the effect of collisions and as a proxy to
|
||||
evaluate the impact of non-linear parameters. The collisional age
|
||||
depends (non-linearly) on the proton density, proton
|
||||
temperature and proton speed. If only a single
|
||||
input parameter is supplied to $k$-means, the
|
||||
proton-proton collisional age is the best choice (as also
|
||||
discussed in \citeA{heidrich2020proton}). This clearly shows the
|
||||
benefit of using informative, physical, non-linear parameters for
|
||||
solar wind classification. Candidates for such parameters are, for
|
||||
example, the proton specific entropy, the Alfv{\'e}n speed
|
||||
\citeA{xu2014new}, or the perpendicular variability of the
|
||||
magnetic field. Alternatively a non-linear unsupervised clustering
|
||||
method (for example, self-organizing maps
|
||||
\cite{amaya2020visualizing} or kernel $k$-means
|
||||
\cite{dhillon2004kernel,zhang2002large}) could be employed to a
|
||||
similar effect.
|
||||
|
||||
Our results imply that none of the parameters that are
|
||||
used to calculate the $\colage$ are completely interchangeable in
|
||||
information with the $\colage$ itself. Substituting $\n$ with the
|
||||
$\colage$ delivers worse results in terms of similarity to the
|
||||
reference clustering. The results for the substitutions of $\vsw$
|
||||
for $\colage$ lead in some combinations to a comparable similarity
|
||||
to the reference clustering. But replacing $\T$ with $\colage$
|
||||
leads to a higher similarity to the reference clustering if five
|
||||
or six parameters are used but for small input data set sizes (two
|
||||
or three) the same substitution leads to a reduced similarity.
|
||||
This suggests that it is beneficial to keep both the basic proton
|
||||
plasma properties (as for example the proton density and proton
|
||||
temperature) and derived quantities in the input data set.
|
||||
|
||||
At 1 AU, the slow solar wind is just dense, cool and slow enough
|
||||
to be affected by collisions. This leads to different plasma
|
||||
properties in the slow solar wind compared to the coronal hole
|
||||
wind: a compact proton velocity distribution function, less or no
|
||||
wave activity and no differential streaming
|
||||
\citeA{kasper2012evolution,janitzek2016high,marsch1982wave}. This
|
||||
illustrates why the collisional age is well-suited to
|
||||
differentiate between slow solar wind and coronal hole wind as a
|
||||
single parameter in the three cluster case. That the collisional
|
||||
age is similarly effective as a single parameter in the seven
|
||||
cluster case, indicates that it is worthwhile to
|
||||
investigate sub-types of slow solar wind or coronal hole wind that
|
||||
are more or less affected by collisions.
|
||||
|
||||
\subsection{Implications for the magnetic field strength $\B$ and combinations of input parameters}
|
||||
Our feature selection analysis indicated that the magnetic field
|
||||
strength is less important for solar wind classification than the
|
||||
proton density and proton temperature. However, the impact of $\B$
|
||||
depends on which parameters it is paired with. In some cases, $\B$
|
||||
and $\n$ are interchangeable for larger input parameters without
|
||||
affecting the similarity to the reference cluster. For small input
|
||||
parameter sets (size 2 and 3), parameter combinations that include
|
||||
both $\n$ and $\B$ result in a low similarity to the reference
|
||||
clustering. Both points indicate that these two parameters carry
|
||||
partially redundant information.
|
||||
|
||||
A similar, but less strong effect is observed for combinations of
|
||||
$\T$ and $\B$. These three solar wind parameters show a typical
|
||||
systematic behaviour in SIRs, the proton density and temperature
|
||||
are increased in compressed slow and fast solar wind, wherein the
|
||||
proton density is higher in compressed slow solar wind than in
|
||||
compressed fast solar wind, whereas the proton temperature is
|
||||
higher in compressed fast solar wind than in compressed slow solar
|
||||
wind. The magnetic field strength peaks at the stream
|
||||
boundary. Thus, these three parameters are all well-suited to
|
||||
identify SIRs (and carry in so far redundant information) but each
|
||||
of them is particularly well-suited to identify a different part
|
||||
of SIRs: the proton density for compressed slow solar wind, the
|
||||
proton temperature for compressed coronal hole wind, and the
|
||||
magnetic field strength for the stream interface.
|
||||
|
||||
For the three cluster case, combinations that contain $\n$ and
|
||||
$\T$ deliver a relatively high similarity to the reference
|
||||
clustering. In particular for regimes with low numbers of
|
||||
parameters (2,3,4 input parameters), the similarity scores of
|
||||
clusterings obtained from parameter combinations containing $\B$
|
||||
instead of $\T$ are systematically lower. This is also illustrated
|
||||
by a direct comparison of $\{\T, \B\}$ in Table \ref{tab:scores}.
|
||||
This indicates that combining $\n$ with $\T$ leads to a
|
||||
systematically different clustering than if $\n$ and $\B$ are
|
||||
combined. The clustering that contains $\B$ instead of $\T$ in
|
||||
combination with $\n$ is not able to differentiate clearly between
|
||||
coronal hole wind and "slow" solar wind and also less well-suited
|
||||
to identify compression regions.
|
||||
|
||||
\subsection{Comparison with Xu and Borovsky scheme} %\citeA{xu2014new}
|
||||
The comparison of the \citeA{xu2014new} solar wind categorisation
|
||||
to the $k=3$ reference clustering reveals a low similarity to our
|
||||
reference clustering. Thus, $k$-means obtains systematically
|
||||
different results than the \citeA{xu2014new} clustering even if
|
||||
trained on the same underlying solar wind parameters. This is
|
||||
further illustrated in Table \ref{tab:scores} which directly
|
||||
compares the \citeA{xu2014new} clustering to the $k=3$ clustering
|
||||
trained on the combination $\{\n, \vsw , \T, \B \}$, that is the
|
||||
same underlying solar wind parameters. This comparison shows that
|
||||
the similarity to the \citeA{xu2014new} scheme is low. The
|
||||
qualitatively different solar wind categorisation could be a
|
||||
result of the non-linearity of the \citeA{xu2014new}
|
||||
clustering. A (weak) indication that the \citeA{xu2014new} scheme
|
||||
makes efficient use of non-linear parameters is given by the
|
||||
result that if we include the one non-linear parameter
|
||||
($\colage$) we increase the similarity to the \citeA{xu2014new}
|
||||
scheme.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{hist/comaprisson_of_3_dsw_tsw_B_vswand_3_dsw_tsw_B_dO7_6_vsw_mcsFe_vsw_dO7_6_trial0_3_dsw_tsw_B_vsw_3_dsw_tsw_B_dO7_6_vsw_mcsFe_2.pdf}
|
||||
\caption{Direct comparison of two selected clusterings with and without charge state information. For the respective first trial, the intersections of all cluster pairs of the $k=3$ clusterings based on $\{\n,\vsw,\T, \B\}$ and $\{\n,\vsw,\T, \B,\nO, \mcsFe \}$ are projected to the $\vsw$-$\nO$ plane. In each panels the percentage of the data points assigned to this intersection is noted. At the bottom, the medians of the four similarity scores with the corresponding 0th and 100th percentile-confidence intervals are listed.}
|
||||
\label{fig:hist_}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Implications for the the heavy ion charge states ($\mcsFe$ and $\nO$)}
|
||||
|
||||
The charge states of heavy ions are the only solar wind
|
||||
parameters considered here that are not affected by any (known)
|
||||
transport effects. We found that the charge states of the
|
||||
heavier ions (O and Fe) are more important in the
|
||||
classification with seven clusters than in the classification
|
||||
that contains only three clusters. For three clusters almost
|
||||
perfect similarity is achieved by excluding the mean charge
|
||||
state of Fe whilst this can not be achieved for seven
|
||||
clusters. In the regime of two and three parameters, for three
|
||||
clusters adding $\mcsFe$ decreases or does not affect the
|
||||
similarity to the reference clustering. For the detailed solar
|
||||
wind classification of the seven cluster case, the $\mcsFe$ is
|
||||
notably more important than in the simplified three cluster
|
||||
case.
|
||||
|
||||
For a simple classification the charge state information is less
|
||||
important than for a detailed classification but the
|
||||
charge state information is nevertheless relevant as
|
||||
illustrated in Fig.~\ref{fig:hist_}. This figure shows
|
||||
the projection of the intersection of the clustering of the
|
||||
first trial of the combinations that contains $\{\n,\vsw,\T,\B
|
||||
\}$ and the combination that also contains both charge state
|
||||
data products $\{\n,\vsw,\T,\B, \nO,\mcsFe\}$. The chosen
|
||||
projection plane is $\vsw$ and $\nO$. The cluster corresponding
|
||||
to SIRs (Cluster 1 in $\{\n,\vsw,\T,\B,\nO \mcsFe \}$ and
|
||||
Cluster 2 in $\{\n,\vsw,\T,\B \}$) are (almost) identical in
|
||||
both clusterings. This is unsurprising, since the charge states
|
||||
provide no additional information on SIRs. The remaining two
|
||||
cluster pairs also overlap but clearly the clustering that lacks
|
||||
the charge state information mislabelled some data points with
|
||||
low $\nO$ as slow solar wind and some data points with high
|
||||
$\nO$ as coronal hole wind. The similarity scores for the direct
|
||||
trial-by-trial comparison of the two clustering based on these
|
||||
two combinations show a low variability in the similarity. The
|
||||
0th percentile deviates 0.01 at maximum from the 100th
|
||||
percentile. All of the medians of the scores are 0.75 or
|
||||
higher. The stability of our results underlines the
|
||||
importance of including charge state information for solar wind
|
||||
classification.
|
||||
|
||||
Since we have chosen charge states of elements that freeze in at
|
||||
different heights in the solar corona different information can
|
||||
be obtained from these two properties. This can be observed in
|
||||
the $k=7$ reference clustering, which shows that regimes with
|
||||
high or low values of $\nO$ and $\mcsFe$ end up in different
|
||||
clusters. The feature selection analysis showed that
|
||||
the two charge state data products are not interchangeable in
|
||||
the seven cluster case and instead carry complementary
|
||||
information.
|
||||
|
||||
As discussed in Sec.~\ref{sec:feature}, we tentatively
|
||||
identified different types of coronal hole wind with likely
|
||||
different origin and transport history. Although the charge
|
||||
states of O and Fe are unaffected by any (known) transport
|
||||
effects, $\mcsFe$ also apparently improves the
|
||||
characterisation of some SIR-related clusters since the charge
|
||||
states can help to differentiate between compressed
|
||||
slow solar wind and compressed coronal hole wind. This can also
|
||||
be seen in Table \ref{tab:scores}. The direct comparison between
|
||||
the clustering with all input parameters except for $\colage$
|
||||
($\{\n ,\vsw ,\T ,\B ,\nO , \mcsFe\}$) and the clustering based
|
||||
on $\{\n ,\vsw ,\T ,\B ,\nO \}$ delivers a higher similarity in
|
||||
the entropy based scores than leaving out $\nO$ form the later
|
||||
combination. The similarity is increased significantly in all
|
||||
four scores when replacing $\nO$ by $\mcsFe$. This effect
|
||||
strongly supports the claim that Fe and the
|
||||
O charge states contain different information. A
|
||||
direct comparison of the first trial of the combination
|
||||
containing every parameter and every transport effected
|
||||
parameter delivers different SIR subtypes instead of identifying
|
||||
different source regions \footnote{For the sake of brevity the
|
||||
corresponding figure is not shown here.}. This suggests that
|
||||
plasma that ends up in, for example, a compression region, can
|
||||
also be traced back to a (sufficiently) different plasma
|
||||
environment in the solar corona. This could hint at a
|
||||
systematic change in the charge state composition of solar wind
|
||||
at or close to the boundaries or coronal holes or other solar
|
||||
source regions. Such an effect would be one possible
|
||||
explanation for our result that including the charge states
|
||||
of the heavier ions does not only provide more information on
|
||||
the precise source location on the Sun, but also helps with
|
||||
identifying compression regions.
|
||||
|
||||
While disregarding charge state information might be
|
||||
considered to be sufficient for a simple classification
|
||||
(albeit with a loss in accuracy as Fig.~\ref{fig:hist_}
|
||||
shows), this approach is not advisable for a more nuanced
|
||||
solar wind classification beyond a simple view of ``slow'' and
|
||||
``fast'' solar wind. If a more detailed approach is desired, the
|
||||
charge states gain in importance and provide very valuable and
|
||||
detailed information on the solar source region. Although
|
||||
instruments that are capable of measuring the charge state and
|
||||
elemental composition of the solar wind are considerably more
|
||||
complex than proton solar wind instruments, from the perspective
|
||||
of our results this effort is well-spent and worthwhile. Our
|
||||
results also suggests that introducing other charge states (for
|
||||
example, Si or Mg charge states) into the feature selection might
|
||||
prove beneficial and insightful.
|
||||
|
||||
\subsection{Limitations and assumptions of the model}
|
||||
|
||||
The main limitation of our method is the selection of input
|
||||
parameters that we have chosen. We can only obtain information
|
||||
about the chosen seven parameters but not about any other
|
||||
parameters. This even holds for any (non-linear) parameter that
|
||||
can be derived using a combination of our parameters. This
|
||||
is illustrated by the introduction of the collisional
|
||||
age since it delivers different results than each individual
|
||||
parameter. So our analysis does not deliver any informations on
|
||||
derived properties like, for example, the
|
||||
Alfv{\`e}n speed.
|
||||
|
||||
We found in our analysis that the charge states of O and
|
||||
Fe do not contain the same information. With this knowledge we
|
||||
cannot directly infer predictions about other charge states, but
|
||||
our analysis and \citeA{heidrich2017evolution} indicate strongly
|
||||
that the inclusion of further charge states might be
|
||||
useful.
|
||||
|
||||
We also make the assumption that a diverse set of parameters
|
||||
provides more information and is more likely to deliver a
|
||||
representative result. Hence, we chose the reference clustering
|
||||
with all seven parameters for (most of) our comparisons. A
|
||||
different set of input parameters could lead to additional and
|
||||
complementary results. Our results indicate that the proton
|
||||
temperature appears to serve as an indirect proxy for
|
||||
wave-activity. Nevertheless, including a more direct tracer for
|
||||
wave-activity would also be interesting.
|
||||
|
||||
Another limitation of our analysis lies in the choice of the solar
|
||||
wind categorisation method, in our case $k$-means. This
|
||||
algorithm favours convex clusters and assumes an underlying
|
||||
normal or at least symmetric distribution for each cluster. As
|
||||
the cluster quality scores have shown, the resulting clusters
|
||||
are however not convex for the $k=7$ case. Thus, although
|
||||
$k$-means favours convex and symmetric clusters, in this
|
||||
application $k$-means nevertheless provides useful and
|
||||
insightful results for non-convex clusters.
|
||||
|
||||
For the similarity scores, we note that the same score
|
||||
in the comparison to the reference clustering can be achieved by
|
||||
two clusterings that are different from each other. This can be
|
||||
seen in Table \ref{tab:scores} in the comparison between $\{ \T
|
||||
, \nO ,\colage \}$ and $\{ \T ,\colage, \mcsFe \}$ for seven
|
||||
clusters. In the comparison to the reference clustering these
|
||||
two parameter combinations deliver a comparable result
|
||||
whilst the direct comparison between the two parameter
|
||||
combinations does not indicate a similarity. Furthermore, the
|
||||
similarity scores do not provide information about the nature of
|
||||
the exact changes or common properties in the compared
|
||||
clusters. However, since our analysis is based on the relative
|
||||
changes due to inclusion or omission of specific parameters, we
|
||||
are able to draw conclusions on the informative value of the
|
||||
selected solar wind parameters for solar wind classification.
|
||||
|
||||
\subsection{Summary}
|
||||
|
||||
In summary, we identified the proton density as the most important
|
||||
feature for solar wind classification in our study.
|
||||
Furthermore, our results indicate that for a more detailed
|
||||
classification that can take solar source and transport
|
||||
effects into account, solar wind properties that are not
|
||||
influenced by transport effects are particularly
|
||||
important. For the simple three type classification,
|
||||
leaving out the charge states still leads to some mislabelled
|
||||
data points although the majority of the data points is correctly
|
||||
classified. Thus, our results strongly indicate that
|
||||
charge states are a necessary component for an accurate (and
|
||||
detailed) identification of the solar source region of solar
|
||||
wind.
|
||||
|
||||
|
||||
|
||||
|
||||
129
paper/feature_selection_agu.tex
Normal file
129
paper/feature_selection_agu.tex
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
\begin{sidewaysfigure*}
|
||||
\centering
|
||||
\includegraphics[width = \textwidth]{figs/big_plots/big_plot_3_ind_O_err_sigma_1_new.pdf}
|
||||
\caption{Comparison of all parameter combinations for three clusters. Each trial of each parameter combination is compared with the corresponding trial of the reference parameter combination. On the x-axis each parameter is identified by a coloured square: $\n$ is light blue, $\T$ is orange, $B$ is dark blue, $\nO$ is magenta, $\vsw$ is red, $\colage$ is brown and $\mcsFe$ is green. The y-axis shows the median for all four similarity scores. Over all 100 trials the median is calculated and the corresponding $1\sigma$ percentile range is visualised as the line-style error bars. The shaded regions of the plot correspond to the $1\sigma$-equivalent percentile range of the Monte Carlo simulations.}
|
||||
\label{fig:big_3_mc}
|
||||
\end{sidewaysfigure*}
|
||||
|
||||
|
||||
|
||||
\section{Feature selection for $k$-means}\label{sec:feature}
|
||||
|
||||
As discussed in the previous sections, the clusterings for each parameter combination are compared to the corresponding trial of the reference parameter combination for three and seven clusters. The phrases reference parameter combination and reference clustering always denote the combination containing all seven input parameters and the resulting clustering. This comparison results in four median similarity values for each of the other 126 parameter combinations. To account for the different starting points of $k$-means, error bars are introduced that correspond to the percentiles on par with $1\sigma$ confidence. In addition, to account for the measurement uncertainty of the different parameters, Monte Carlo simulations are performed with additive noise for each parameter. Both uncertainty estimates are represented separately in the figures of this section. We refer to them as measurement uncertainty estimate (Monte Carlo) and model stability (effect of different staring point of $k$-means), respectively.
|
||||
|
||||
First, the results of the comparison with all input parameters for three clusters is discussed, before we discuss the seven cluster case. As illustrated in Sect.~\ref{sec:all_para}, the reference clusterings for the $k=3$ and $k=7$ deliver reasonable results. For three clusters, a type of slow solar wind and a coronal hole wind can be identified. For seven types, $k$-means detected at least two different types of slow solar winds and corona hole wind. Also compressed corona hole wind and compressed slow wind are apparently treated as separate clusters by $k$-means. Thus, the reference points of the comparisons in the plots \ref{fig:big_3_mc} and \ref{fig:big_7_mc} can be assumed to be physically meaningful.
|
||||
|
||||
|
||||
\subsection{Three clusters}
|
||||
In this section, the results for the experiment with three clusters are discussed. First, we highlight observations of relevant results for each group of input parameter combinations of the same size separately. Afterwards, the results of the feature selections are discussed in Sect.~\ref{sec:discussion}.
|
||||
|
||||
The results of the comparison via the four similarity scores is shown in Fig.~\ref{fig:big_3_mc}. As described in Sect.~\ref{sec:method}, each trial of the chosen parameter combination is compared to the corresponding trial of the reference parameter combination. Subsequently the median is calculated and the error bars represented as lines account for the uncertainty from the $k$-means model stability. The Monte Carlo-based estimate for the measurement uncertainty is depicted with shaded with broader shaded bars. The different parameter combinations are colour-coded on the x-axis with a colour assigned to each parameter. On the y-axis, the median of the different similarity scores is displayed and where 1 indicates identical clusterings.
|
||||
|
||||
Overall, it is obvious that additional parameters do not automatically lead to a higher similarity with the reference clustering. Also, the adjusted and normalised mutual information scores overlap for all parameter combinations in Fig.~\ref{fig:big_3_mc}. Since only one of the two normalisation methods of the mutual information score takes chance effects into account, this overlapping leads to the interpretation that chance effects do not play a huge role for solar wind classification with $k$-means. The error bars representing the initialisation of $k$-means, that is the model stability, are relatively small. Only for a few parameter combinations noticeable error bars are visible. The same holds for the stability towards the measurement uncertainty derived from the Monte Carlo simulations. Only for a few parameter combinations the similarity scores of the respective clusterings deviate noticeable from the Monte Carlo-based percentile range equivalent to a $1\sigma$ confidence interval.
|
||||
|
||||
\subsubsection{One-parameter combinations}
|
||||
|
||||
Considering only parameter combinations containing one parameter, the $\{\colage\}$ delivers the highest similarity compared to the clustering trained on the reference parameter combination. Other input parameters with high similarity scores are $\{\T\}$ and $\{\n\}$. The least similarity to the reference clustering delivers the parameter combination containing only $\{\mcsFe\}$ with the mutual information scores close to zero.
|
||||
|
||||
Only the unperturbed result for $\{\nO\}$ deviates from the Monte Carlo error margins in the Folkwes Mallow score and adjusted rand score.
|
||||
|
||||
\subsubsection{Two-parameter combinations}
|
||||
For two-parameter combinations, the highest similarity to the reference clustering is obtained by combining $\T$ and $\n$. Adding the $\colage$, $\B$ and $\mcsFe$ to $\n$ decreases the similarity compared to only taking $\n$ alone. Adding the proton density increases the similarity for all other parameter combinations except for $\colage$. Adding $\mcsFe$ to any of the parameters decreases the similarity compared to the reference parameter combination. Adding $\nO$ to $\B$ or $\n$ increases the similarity significantly. For the other combinations containing $\nO$ the similarity to the reference clustering is in the same regime.
|
||||
|
||||
Combinations with high similarities to the reference case that do not contain $\n$ are the parameter combinations with $\{ \vsw, \T\}$, $\{\vsw, \B\}$, and $\{\vsw, \colage \}$. $\{\n, \vsw\}$ and $\{ \vsw,\T \}$ are in this regime the only parameter combinations with noticeable (model stability) error bars where the first combination has larger error bars. Combinations that contain $\T$ or $\nO$ tend to deviate from the Monte Carlo measurement uncertainty estimate. The combinations $\{ \T, \nO\}$ and $\{\vsw, \nO \}$ show significant higher similarity in the Monte Carlo approach than in the unperturbed measurements.
|
||||
|
||||
\subsubsection{Three-parameter combinations}
|
||||
Considering three input parameters, Fig.~\ref{fig:big_3_mc} shows that most of the parameter combinations containing the $\n$ and $\T$ deliver high similarity scores. The peak similarity in the three-parameter regime is reached with a Folkwes Mallow score of $0.9$ for the parameter combination $\{\n,\vsw, \T\}$. Adding $\B$ to either $\n$ or $\T$ results in a much lower similarity than considering only the two parameters $\{\n, \T\}$. Also adding $\mcsFe$ decreases the similarity to the reference clustering slightly. The parameter combinations containing $\n$ and $\B$ with the exception of the parameter combination that also contains $\T$ exhibit comparable similarity scores. The following three other parameter combinations have a strikingly low similarity to the reference clustering: $\{\T,\B,\mcsFe\}$, $\{\B,\nO,\mcsFe\}$ and $\{\colage,\B,\mcsFe\}$. These parameter combinations share $\mcsFe$ and $\B$.
|
||||
|
||||
The parameter combinations containing $\n$ outperform other combinations in terms of similarity except if paired with $\B$. The highest similarity for a parameter combination that does not contain $\n$ is $\{\vsw,\T,\B\}$. Considering the two charge states, adding $\nO$ to any other two parameters leads to higher similarities to the reference clustering than adding $\mcsFe$. Combinations that contain both of these parameters lead to an even lower similarity to the reference parameter combination.
|
||||
|
||||
Two parameter combinations have noticeably low model stability: $\{\n,\vsw,\colage\}$ and $\{\n,\vsw, \mcsFe\}$. Smaller but also noticeable model stability error bars are visible at the combination $\{\n,\colage,\nO\}$.
|
||||
In the three parameter regime, there are some combinations that differ strikingly from the Monte Carlo simulations. Those combinations are $\{\n,\vsw,\mcsFe\}$ and $\{\vsw,\B,\mcsFe\}$. There are also other parameter combination where the $1\sigma$ corresponding measurement uncertainty estimate from the Monte Carlo simulation does not align perfectly with the results based on the unperturbed measurements. Most of these contain $\T$ or $\nO$ as a parameter. Since $\T$ and $\nO$ are associated with a large measurement uncertainty this is not surprising. Furthermore, there is a relatively broad distribution in similarity of clusterings based on the Monte Carlo simulation with the combination $\{\T,\colage,\nO\}$.
|
||||
|
||||
\subsubsection{Four-parameter combinations}
|
||||
The regime containing four parameters shows again high similarities to the reference clustering for parameter combinations that contain $\n$ and $\T$. Substituting $\vsw$ with $\colage$ in parameter combinations with $\B$ leads to a lower similarity. The parameter combination with the highest similarity with all scores with over $0.8$ is the combination $\{\n ,\vsw , \T,\nO\}$. Substituting $\vsw$ with $\colage$ in this combination decreases the similarity to the reference clustering slightly in the Folkwes Mallow score and adjusted rand score. A larger change is visible in the mutual information scores. In general, the similarity decreases if one of the parameters that is used to calculate $\colage$ is substituted for $\colage$. This effect is especially striking for $\n$.
|
||||
|
||||
The combination that corresponds to the \citeA{xu2014new} parameters ($\{\n,\vsw,\T,\B\}$) delivers a relatively high similarity to the reference clustering. Comparing this similarity with the similarity of the original \citeA{xu2014new} scheme (right-most column in Fig.~\ref{fig:big_3_mc}), the similarity of the original scheme is decidedly lower. This leads to the conclusion that while the parameters of the \citeA{xu2014new} solar wind classification are well chosen and informative for identifying three clusters, $k$-means clustering results in a systematically different than the \citeA{xu2014new} scheme, even if compared on the same input parameter combination.
|
||||
|
||||
The least similar to the reference clustering are two combinations that both contain $\n$, $\B$ and $\mcsFe$. For the first of these, $\colage$ is added, for the second combination $\vsw$ is added. Adding $\nO$ increases the similarity further. But adding $\mcsFe$ does not always increase or change the similarity for some parameter combinations.
|
||||
|
||||
The model stability error bars are well visible for the combinations $\{\n,\colage, \B,\nO\}$, $\{\n,\vsw,\colage, \B\}$, $\{\n,\colage,\nO,\mcsFe\}$ and $\{\n, \vsw, \colage, \mcsFe\}$.
|
||||
For $\{\n,\T, \B,\mcsFe\}$ the Monte Carlo uncertainties only fit for the mutual information based scores. Again, the combinations that contain the two parameters that are associated with the highest individual measurement uncertainties, $\nO$ or $\T$, tend to deviate from the Monte Carlo error margins. %Lower similarity for all four scores are visible in the results of the parameter combinations $\{\T, \B,\colage,\mcsFe\}$ and $\{\n, \B, \vsw,\colage\}$ in the Monte Carlo simulations.
|
||||
|
||||
\subsubsection{Five-parameter combinations}
|
||||
Considering parameter combinations that consist of five parameters, the highest similarity to the reference clustering is noted in the combination containing every parameter except for $\B$ and $\mcsFe$. For this combination, all four similarity scores denote values over $0.8$. The Folkwes-Mallow and the adjusted rand scores are both over $0.9$. The same holds for the combinations $\{\n,\T,\colage,\B,\nO\}$, $\{\n,\vsw, \T,\B,\nO\}$, and $\{\n,\vsw,\T,\nO,\mcsFe\}$.
|
||||
|
||||
The four parameter combinations that are missing $\n$ but contain $\mcsFe$ and $\colage$ have very similar mutual information scores. Only for the parameter combination that does not contain $\B$ and $\n$ the adjusted rand score is higher than the mutual information scores. For all other combinations the adjusted rand score denotes higher values than the mutual information scores.
|
||||
|
||||
Combinations that contain both $\T$ and $\nO$ tend to deviate from the Monte Carlo error margins. For all other combinations the measurement uncertainty estimate fits and both types of error bars are not visible. This leads to the conclusion that the variation in the trials is low and the clustering is stable against the choice of the starting points and the measurement uncertainty.
|
||||
|
||||
\subsubsection{Six-parameter combinations}
|
||||
For the parameter combinations with only one missing parameter compared to the full reference parameter combination, the combination without $\mcsFe$ leads to a nearly identical clustering (with all similarity scores close to one). High similarities are also noted for the parameter combinations missing $\B$ and $\colage$. The least similar parameter combination compared to the reference clustering is the parameter combination missing $\n$ (all scores are below $0.8$, the mutual information scores are below $0.6$). The second lowest score is observed for the parameter combination missing $\T$.
|
||||
|
||||
For the measurement uncertainty estimate only the combination missing $\colage$ shows a slight deviation from the unperturbed approach.
|
||||
|
||||
\subsubsection{Summary of three cluster results}
|
||||
In conclusion, for $k$-means clustering with three cluster, including $\n$ in the input parameters, usually leads to a higher similarity to the reference clustering. Similarly, including $\T$ to $\n$ also leads to higher similarity. $\mcsFe$ and $B$ tend to lead to a decreased similarity. $\T$ and $\nO$ lead to deviations for the measurement error estimate in comparison to the unperturbed measurements.
|
||||
|
||||
\subsection{Seven clusters}
|
||||
\begin{sidewaysfigure*}
|
||||
\centering
|
||||
\includegraphics[width = \textwidth]{figs/big_plots/big_plot_7_ind_O_err_sigma_1_new.pdf}
|
||||
|
||||
\caption{Overview on the similarity scores obtained from all input parameter combinations for seven clusters in the same format as Fig.~\ref{fig:big_3_mc}.}
|
||||
\label{fig:big_7_mc}
|
||||
\end{sidewaysfigure*}
|
||||
|
||||
Now, the same analysis is conducted for seven clusters. Fig.~\ref{fig:big_7_mc} shows the evaluation of the experiments with comparisons of clusterings based on all parameter combinations to the reference clustering. In the same way as Fig.~\ref{fig:big_3_mc}, the figure is organised by the number of input parameters. On the x-axis the parameter combinations are noted. The individual parameters are identified as squares with the corresponding colour.
|
||||
|
||||
Compared to the three cluster case, the overall similarities to the respective reference clustering are lower. The only exceptions are two parameter combinations containing all but one parameter. In comparison to Fig.~\ref{fig:big_3_mc}, the influence of the starting points chosen by $k$-means and thus the model stability error bars are larger for the seven cluster case, in particular in the regime containing a higher number of parameters such as five and six. The variation in the different regimes of input parameter combinations with different sizes is smaller than in the three cluster case. Again more parameters do not automatically lead to an overall higher similarity to the reference clustering. The two mutual information scores overlap for all parameter combinations.
|
||||
|
||||
\subsubsection{One-parameter combinations}
|
||||
In the regime of the parameter combinations containing one parameter, $\{\colage\}$ again delivers the clustering that is most similar to the full reference clustering. The mutual information score is even higher in this case than the Folkwes Mallow score. The second highest mutual information scores in this regime are seen by using only $\{\vsw\}$. The Folkwes Mallow scores are higher for $\{\n\}$ and $\{\T\}$ than the other parameters. The lowest similarity compared to the reference clustering is $\{\mcsFe\}$ followed by $\{B\}$. The model stability error bars are visible for $\{\n\}$, $\{\vsw\}$, $\{\T\}$ and $\{\mcsFe\}$.
|
||||
|
||||
All results except are within the Monte Carlo error margins.
|
||||
|
||||
\subsubsection{Two-parameter combinations}
|
||||
Considering two input parameters, the parameter combination with the highest scores is $\{\n,\colage\}$. Other parameter combinations with high similarity to the reference clustering are $\{\n,\T\}$ and $\{\n,\vsw\}$. The parameter combination, $\{\B,\mcsFe\}$ delivers the least similarity to the reference clustering.
|
||||
The parameter combinations that include $\n$ deliver a higher similarity to the reference parameter combination than the parameter combinations without it. Only adding $\B$ or $\mcsFe$ to $\n$ lead to only average similarity scores. Combining $\colage$ with any other parameter increases the similarity for all such parameter combinations.
|
||||
|
||||
There are a few combinations where the mutual information scores are higher than the Folkwes Mallow score (e.g. $\{\colage , \B\}$ and $\{\colage, \nO\}$). For the parameter combination $\{\T,\colage\}$ the Folkwes Mallow score and the adjusted rand score increase compared to $\{\T\}$ but the mutual information scores remain the same. The parameter combination $\{\nO, \mcsFe\}$ shows a higher similarity to the reference clustering than $\{\nO$ and $\{\mcsFe\}$, respectively.
|
||||
|
||||
Most of results of the Monte Carlo simulations fit well to the results obtained without adding noise according to the instruments' error margins. This does not hold for combinations that contain $\nO$. We see a huge deviation in Folkwes Mallow score and adjusted rand score from the measurement error estimate for the combination $\{\T,\nO \}$.
|
||||
|
||||
\subsubsection{Three-parameter combinations}
|
||||
The regime with three parameters shows the highest similarity compared to the reference clustering for $\{\n,\vsw,\colage\}$. Overall in this regime, the similarity scores are in a similar range with only a few outliers. The lowest similarity obtained by the adjusted rand score and the Folkwes Mallow score is delivered by the parameter combination $\{\n,\B, \mcsFe\}$. The parameter combinations with a minimum in the mutual information scores are $\{\T,\B,\mcsFe\}$ and $\{\B,\nO, \mcsFe\}$.
|
||||
|
||||
Parameter combinations that contain $\n$ have the tendency to deliver higher similarities (Folkwes Mallow score and mutual information scores over 0.4) to the full clustering except if paired with $\T$ and $B$ or $\mcsFe$ and $\B$. Substituting $\T$ for the $\colage$ in combinations that also include $\n$ increases the similarity to the reference clustering. Substituting $\nO$ with $\mcsFe$ always decreases the similarity indicated by the scores based on statistics in this regime (except when paired with $\vsw$ and $\T$ or $\colage$). The amount of change in the similarity depends on the parameter it is paired with (for example, the effect is smaller for $\colage$ and $\vsw$ than for $\n$ and $\T$).
|
||||
|
||||
The parameter combinations $\{\n, \nO, \mcsFe\}$, $\{\n,\vsw,\mcsFe\}$ $\{\n,\vsw,\colage\}$ exhibit a (slightly) reduced model stability compared to the other parameter combinations in this regime.
|
||||
The parameter combinations $\{\n,\nO, \mcsFe\}$ and $\{\n,\T, \nO\}$ deviates drastically from the percentile range corresponding to measurement uncertainty estimate from the Monte Carlo simulation. This hold primarily for the Folkwes Mallow score and adjusted rand score. The effect is still visible for the mutual information based scores but not as strong.
|
||||
|
||||
\subsubsection{Four-parameter combinations}
|
||||
The parameter combinations with the highest similarities to the reference clustering are different for the mutual information scores and the other two scores. For the mutual information scores, the highest similarity is denoted for the parameter combination $\{\n,\vsw, \B, \mcsFe\}$. The Folkwes-Mallow and the adjusted rand scores denote the highest scores for the parameter combination $\{\n,\colage,\nO,\mcsFe\}$. A similar effect is observed for the respective lowest scores. The lowest scores for the mutual information scores are realised for $\{\T, \colage, \B, \mcsFe\}$. For the other two scores, the lowest scores are denoted for $\{\n, \T, \colage, \mcsFe\}$.
|
||||
|
||||
Substituting $\vsw$ with $\colage$ leads to a similar result in similarity to the reference clustering in most of the combinations. This does not hold if $\colage$ is substituted with $\n$. Using $\B$ instead of $\T$ leads to similar but slightly increased similarity scores.
|
||||
|
||||
Considering the parameter combinations containing four input parameters, the size of the error bars indicating the model stability is increasing further compared to the previous regimes. The combinations with the most striking error bars are $\{\n,\vsw,\nO,\mcsFe\}$, $\{\n,\colage,\nO,\mcsFe\}$, $\{\vsw,\B,\nO,\mcsFe\}$ and $\{\colage, \B,\nO,\vsw\}$.
|
||||
The broadness of the percentile range that correspond to the Monte Carlo-based measurement uncertainty estimate is particularly large for $\{\n, \vsw, \T, \mcsFe\}$ and $\{\n, \vsw,\T,\colage\}$. Deviations of the Monte Carlo simulations are visible for parameter combinations that contain either $\nO$ or $\T$. For the mutual information scores, the deviation is less visible than for the other two scores.
|
||||
|
||||
|
||||
\subsubsection{Five-parameter combinations}
|
||||
In the regime of five parameters the variation within the regime is higher than in all previous regimes. Leaving out $\n$ leads to a decreased similarity in all four similarity scores. The combinations with the highest similarity scores are $\{\n,\vsw, \T, \B, \nO \}$, $\{\n, \T,\colage \B, \nO\}$ and $\{\n, \vsw, \B, \nO, \mcsFe \}$, $\{\n,\colage, \B, \nO, \mcsFe\}$. Leaving out $\n$ leads to a lower similarity even if $\colage$ is present. This effect is also visible if $\colage$ is replaced with one of the other parameters used to calculate $\colage$ but not as striking as for $\n$ and not for all combinations. Adding $\nO$ leads to a slightly higher similarity than adding $\mcsFe$. Interchanging $\T$ with $\B$ leads to an increased similarity to the reference parameter combination.
|
||||
|
||||
The error bars due to the different starting points of $k$-means have again increased. We see huge deviation in the Monte-Carlo based measurement uncertainty estimate for combinations that contain either $\T$ or $\nO$. The combination with $\{ \n, \vsw , \T, \nO , \mcsFe \}$ has a broad interval that corresponds to the $1\sigma$ equivalent interval.
|
||||
%The smallest effect is seen for combinations substituting $\vsw$ for $\colage$.
|
||||
|
||||
\subsubsection{Six-parameter combinations}
|
||||
All similarity scores are below $0.8$. Thus, none of the parameters is completely redundant. The most similar results compared to the reference clustering are obtained by leaving out $\vsw$ or $\T$. Leaving out $\n$ or $\nO$ delivers a less similar result compared to the reference clustering.
|
||||
|
||||
The model stability error bars are large for the leading parameter combinations (in which $\mcsFe$, $\colage$, $\vsw$ are absent, respectively) and the parameter combination missing $\T$. Leaving out $\B$, $\mcsFe$ or $\colage$ deliver similar scores.
|
||||
|
||||
Considering only one missing parameter, the most striking visual feature is a deviation from the Monte Carlo simulation for the combination missing $\vsw$ or $\T$. The only combination that fits in the error Monte- Carlo based error margins is the combination without $\colage$.
|
||||
|
||||
\subsubsection{Summary of seven cluster results}
|
||||
In conclusion, for seven cluster, all parameter combinations without $\n$ tend to have a lower similarity compared to the reference clustering than those including $\n$. The charge states, in particular $\nO$, have increased in importance for the clustering compared to the three cluster case. The clusterings are not as stable against the choice of the starting points as the ones for three clusters. For a detailed clustering and therefore classification of the solar wind into seven clusters leaving out parameters results in a significantly lower similarity than doing the same for a less detailed clustering (represented by three clusters in this study). In comparison to the three cluster case, for the seven cluster case the different types of similarity scores matter more since slightly deviating results are obtained by the mutual information based scores and the scores based on counting matching and non-matching cluster assignments (that is, the Folkwes-Mallow score and the adjusted rand score).
|
||||
|
||||
%For the Monte Carlo noise according to the data is added and a classification based on the data is performed
|
||||
|
||||
%The higher the scores the more similar the results with an limit of 1.
|
||||
158
paper/introduction_agu.tex
Normal file
158
paper/introduction_agu.tex
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
\section{Introduction}
|
||||
The solar wind, a stream of charged particles continuously emitted
|
||||
from the Sun, carries tracers of its solar origin. The electron
|
||||
temperature in the solar corona at the solar source region of the
|
||||
solar wind determines the charge states observed in the solar wind
|
||||
which then remain frozen-in during the expansion. Outside the solar
|
||||
atmosphere, the magnetic field lines is frozen-in and is
|
||||
carried by the radially flowing solar wind. Protons constitute
|
||||
the majority of the solar wind and their basic properties, the proton
|
||||
speed, proton density, proton temperature, and the magnetic field
|
||||
strength, also depend on the respective properties of the solar source
|
||||
region. However, during the travel time of the solar wind, the
|
||||
properties of the solar wind are modulated by transport
|
||||
effects. For example, the proton plasma properties are all
|
||||
subject to expansion, and therefore represent a mixture of properties
|
||||
of the solar source region and transport effects. Additional transport
|
||||
effects, e.g. stream interaction regions, collisions and wave-particle
|
||||
interactions, further affect the properties of the solar wind.
|
||||
Traditionally, solar wind classification methods aim to identify the
|
||||
solar source region of a respective solar wind parcel. Historically,
|
||||
the solar wind type was identified by the proton speed, which gave
|
||||
rise to the categories of slow and fast solar wind
|
||||
\cite{neugebauer1966mariner,mccomas1998solar}. However, the charge
|
||||
state composition turned out to be a better tracer for the solar wind
|
||||
origin \cite{zurbuchen2002solar,
|
||||
zhao2009global,zhao2010comparison}. Since the charge states in
|
||||
the solar wind are not affected by transport effects, the charge state ratios for O$^{7+}$ to O$^{6+}$ and C$^{6+}$ to C$^{5+}$, $\nO$ and $\nC$, respectively \footnote{Based in the observed densities of the relevant O
|
||||
and C charge states which we refer to as $\nOsix$, $\nOseven$,
|
||||
$\nCsix$, and $\nCfive$.} have been frequently
|
||||
used to differentiate between coronal hole wind (which originates in
|
||||
coronal regions with a comparatively low electron temperature) and
|
||||
slow solar wind (which matches the composition of regions with a
|
||||
higher electron temperature) \cite{zurbuchen2002solar,
|
||||
zhao2009global,zhao2010comparison}. In the absence of charge state
|
||||
composition measurements at L1 after 2011, \citeA{xu2014new} derived a
|
||||
source driven solar wind classification method that requires only
|
||||
proton properties (proton density, proton speed, proton temperature
|
||||
and the magnetic field strength) as input. Although these parameters
|
||||
are all affected by transport effects,
|
||||
\citeA{neugebauer2016comparison} show that the resulting
|
||||
classification is similar to the charge state based classification
|
||||
\cite{zurbuchen2002solar, zhao2009global,zhao2010comparison} for low
|
||||
and high solar wind speeds. For intermediate solar wind speeds,
|
||||
however, these two approaches differ frequently in their assignment.
|
||||
This illustrates on the one hand that no ground truth for solar wind
|
||||
classification has been established yet. On the other hand this result emphasises that
|
||||
transport affected parameters (as in the case of the
|
||||
\citeA{xu2014new} scheme) and purely source-determined quantities (as
|
||||
in the charge state composition based approaches to solar wind
|
||||
classification) are both suitable to identify different solar source
|
||||
regions. However, identifying the likely solar source region is not
|
||||
the only use case for solar wind classification. In the context of the
|
||||
interaction of the solar wind with the Earth's magnetosphere
|
||||
\cite{song2001space, schwenn2006space, pulkkinen2007space} a
|
||||
characterisation of the in situ plasma conditions is more useful than
|
||||
the corresponding solar origin of an evolved solar wind parcel.
|
||||
Therefore, the effect of expansion, wave-particle interactions,
|
||||
collisions and stream interactions on the solar wind plasma need to be
|
||||
considered. Conveniently, at 1 AU, wave activity is typically
|
||||
confined to coronal hole wind, and only slow solar wind is noticeably
|
||||
affected by collisions. The strongest changes in the plasma properties
|
||||
are observed in interface regions between slow and fast solar wind
|
||||
\cite{smith1976observations,richardson2018solar}. If a faster solar
|
||||
wind stream runs into a slower solar wind stream a stream interaction
|
||||
region (SIR) forms. Compression regions emerge around the interface in
|
||||
both involved plasma streams. This manifests as an increased proton
|
||||
density, increased proton temperature and as a peak in the magnetic
|
||||
field strength at the stream interface. The plasma discontinuity at
|
||||
the stream interface serves as an acceleration region
|
||||
\cite{fisk1980shock,giacalone2002particle,richardson2004energetic,yu2017suprathermal}
|
||||
and shocks can travel in both the slower and the faster solar wind
|
||||
stream
|
||||
\cite{rankine1870xv,hugoniot1889propagation,colburn1966discontinuities,szabo2005multi,zhou2022psp}.
|
||||
|
||||
A majority of the solar wind classifications only aim to classify to
|
||||
identify and understand the solar source. In this work - as in
|
||||
\citeA{amaya2020visualizing,heidrich2018solar,bloch2020data} - we also
|
||||
aimed to identify solar wind plasma that have undergone significant
|
||||
changes after leaving the solar source region. However, unlike
|
||||
\citeA{amaya2020visualizing,heidrich2018solar,bloch2020data} the
|
||||
purpose of our study does not lie in understanding the solar wind
|
||||
types defined by a (chosen) solar wind classification. Instead our
|
||||
aim is to investigate which solar wind properties are important for
|
||||
solar wind classification. Including transport affected plasma into
|
||||
solar wind classification naturally increases the expected number of
|
||||
solar wind types. For example, compressed (fast) coronal hole wind in
|
||||
an SIR has different properties than undisturbed coronal hole wind as
|
||||
nicely illustrated in \cite{hofmeister2022area}. Therefore, in a
|
||||
detailed solar wind classification which takes both the solar source
|
||||
and transport effects into account a higher number of solar wind types
|
||||
needs to be considered. Even without considering transport effects,
|
||||
the number of solar wind types from different solar sources remains an
|
||||
open question. Slow solar wind is known to be highly variable and
|
||||
different release mechanisms have been suggested
|
||||
\cite{Schwadron2005,Sakao2007,rouillard2010intermittent,Antiochos2011,stakhiv2015origin,
|
||||
d2015origin}. Since the solar source of slow solar wind is still not
|
||||
identified, and observations hint at different types of slow solar
|
||||
wind
|
||||
\cite{Schwadron2005,Sakao2007,rouillard2010intermittent,Antiochos2011,stakhiv2015origin,
|
||||
d2015origin} with potentially different properties, we chose a machine-learning based solar wind classification approach that allows
|
||||
several subtypes of slow solar wind to be identified in the
|
||||
available observations. Even for the well-understood coronal hole wind
|
||||
at least two subtypes can be identified: coronal hole wind from
|
||||
equatorial or polar coronal holes differ systematically in the
|
||||
properties \cite{zhao2014polar}. Neither
|
||||
for the identification, or even the number of solar wind types
|
||||
\cite{neugebauer2016comparison,amaya2020visualizing,bloch2020data,heidrich2018solar},
|
||||
there is an established ground truth available for solar wind
|
||||
classification. Therefore, while \citeA{camporeale2017classification}
|
||||
treated solar wind classification as a supervised machine learning
|
||||
problem, from our perspective (and in accordance with \citeA{amaya2020visualizing,bloch2020data,heidrich2018solar}) an unsupervised learning approach is
|
||||
necessary to capture all information encoded in the available solar
|
||||
wind observations and to provide an unbiased data driven perspective
|
||||
on solar wind classification.
|
||||
|
||||
However, in this study, our focus does not lie on identifying the most
|
||||
likely number of solar wind types nor on discussing and
|
||||
interpreting the properties of these solar wind types. Instead we aim
|
||||
to identify which solar wind parameters are most important for
|
||||
identifying solar wind types. For this purpose, we consider seven
|
||||
solar wind parameters (see Sec.~\ref{sec:ace}), which include
|
||||
strongly transport affected properties like, for example, the proton
|
||||
temperature, and purely solar source determined parameters like, for
|
||||
example the $\nOseven$ to $\nOsix$ charge state ratio. We then
|
||||
evaluate how much the assignment to a fixed number of solar wind types
|
||||
made by the same unsupervised learning algorithm changes if
|
||||
different subsets of our seven considered solar wind properties are
|
||||
available to an unsupervised machine learning method. These
|
||||
seven solar wind parameters already lead to 127 different parameter
|
||||
combinations that need to be analysed and compared. We restricted
|
||||
this study to this selection of solar wind parameters, to keep the
|
||||
computational cost manageable and - more importantly - to allow for
|
||||
a detailed and concise discussion of the results. As in
|
||||
\citeA{heidrich2018solar, bloch2020data} we chose $k$-means as our
|
||||
unsupervised machine learning method. Our approach allows to address
|
||||
several aspects: (1) Investigate whether transport affected solar wind
|
||||
properties are sufficient to identify the solar source region or
|
||||
whether this requires charge state information, (2) provide guidelines
|
||||
from a solar wind classification perspective which of the considered
|
||||
solar wind properties are most important to be measured with high
|
||||
accuracy.
|
||||
|
||||
The article is organised as follows: Sec.~\ref{sec:method} first
|
||||
describes the solar wind data set used in this work and the different
|
||||
methods we employed to obtain the results such as the algorithm and
|
||||
several quality and similarity measures. Sec.~\ref{sec:elbow}
|
||||
discusses the different number of solar wind types chosen for this
|
||||
work (three and seven) and the data driven approach on how to obtain
|
||||
these numbers. In addition, results for the reference points for the
|
||||
comparison are discussed. Sec.~\ref{sec:feature} provides an extensive
|
||||
overview on the results for the feature selection for three and seven
|
||||
clusters. In Sec.~\ref{sec:discussion} we interpret and discuss the
|
||||
results of our $k$-means driven feature selection approach. Finally,
|
||||
we summarise our main results and present our conclusions in
|
||||
Sec.~\ref{sec:conclusion}.
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
BIN
paper/kmeans.tex
BIN
paper/kmeans.tex
Binary file not shown.
120
paper/methods_agu.tex
Normal file
120
paper/methods_agu.tex
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
\section{Data and methods}\label{sec:method} %
|
||||
|
||||
|
||||
|
||||
% plot 1: schema
|
||||
% old version sklearn 0.23.2
|
||||
The solar wind data used throughout this work is measured with three instruments on-board the Advanced Composition Explorer (ACE). The data selection and preprocessing is described in Sec.~\ref{sec:ace}. Subsequently, we apply an unsupervised clustering algorithm, $k$-means, to the resulting data set. $k$-means, described in more detail in Sec.~\ref{sec:kmeans}, is a simple unsupervised clustering method which finds cluster centers for each of $k$ clusters and assigns each data point to the closest respective cluster center. $k$ is here the pre-chosen number of clusters.
|
||||
|
||||
We select seven solar wind parameters wherein some are strongly effected by transport processes and others are not. We call the result of $k$-means a \emph{clustering} which consists of the assignment of all data points (N = 226471) to the $k$ clusters. To each combination of subsets of the selected solar wind parameters (that is a total of 127 combinations) we apply $k$-means and compare the resulting clusterings. The considered solar wind parameters are the proton density, proton speed, proton temperature as proton properties, calculated from those properties the proton-proton collisional age (also called Coulomb number), the absolute magnetic field strength, the ratio between the densities of the $O^{7+}$ and the $O^{6+}$ and the mean charge state of Fe. To estimate the effect of the measurement uncertainty of these seven solar wind parameters, a Monte Carlo approach is applied where noise is added to the each data point and the clusterings are computed again. The complete experimental set-up is described in Sec.~\ref{sec:setup}.
|
||||
|
||||
|
||||
\subsection{ACE data}\label{sec:ace}
|
||||
This work is based on data obtained by three instruments on-board ACE
|
||||
from 2001 to 2011. The proton features proton speed ($\vsw$), proton density ($\n$), and proton temperature ($\T$) were measured by the
|
||||
Solar Wind Electron Proton and Alpha Monitor (SWEPAM,
|
||||
\citeA{mccomas1998solar}). The proton properties, $\vsw$, $\n$, and $\T,$ where chosen
|
||||
because the data is widely available, comparatively easy to measure, and protons constitute the bulk of the solar wind. The
|
||||
absolute magnetic field ($\B$) was obtained by the Magnetometer (MAG,
|
||||
\citeA{smith1998ace}). The magnetic field strength and the proton
|
||||
plasma properties are subject to several transport
|
||||
effects. The same four parameters are also used in the
|
||||
\citeA{xu2014new} solar wind classification scheme. For heavier ions
|
||||
the ratio of the O charge state densities $\nOseven$ to $\nOsix$
|
||||
($\nO$) and the mean Fe charge ($\mcsFe$) measured by the Solar
|
||||
Wind Ion Composition Spectrometer (SWICS, \citeA{gloeckler-etal-1998})
|
||||
were considered. The respective ion densities are derived from the raw
|
||||
pulse height analysis (PHA) data as described in
|
||||
\citeA{berger2008velocity}. The charge state composition remains
|
||||
unchanged after the solar wind leaves the hot corona
|
||||
\cite{geiss1995,aellig1997} and are not affected by any (known) transport
|
||||
effect since the ion charge states are 'frozen in' in the plasma. Thus, the O
|
||||
charge state ratio ($\nO$) and the mean Fe charge state ($\mcsFe$) can be considered as direct
|
||||
tracers of the coronal history of a solar wind stream
|
||||
\cite{zurbuchen2002solar,zhao2009global,heidrich2017evolution}. Since both charge state data products are determined
|
||||
in different parts of the corona they contain different information
|
||||
about the solar wind. The $\nO$ is chosen because
|
||||
it is a well known tracer to distinguish between coronal hole wind and
|
||||
other types of solar wind
|
||||
\citeA{zurbuchen2002solar,zhao2009global,zhao2010comparison} and
|
||||
contains with the $\nOsix$ the most frequent solar wind ion (heavier than He).
|
||||
|
||||
Furthermore, we also consider the proton-proton collisional age ($\colage$, also called Coulomb number) which estimated the number of $90^{\degree}$-equivalent proton-proton collisions in the plasma as an additional parameter. As shown in \citeA{kasper2012evolution,heidrich2020proton}, the proton-proton collisional age (in the following also referred to as collisional age) is a suitable ordering parameter that summarises the collisional transport history of the solar wind. We compute the collisional age in the same way as in \citeA{heidrich2020proton}:
|
||||
\begin{equation}
|
||||
\colage = \frac{6.4 \times 10^{8} K^{3/2} s^2}{{cm}^{-3} km}\frac{\n}{\vsw \T^{3/2}}
|
||||
\label{eq:colage}
|
||||
\end{equation}
|
||||
|
||||
Since the SWICS time resolution is limited to twelve minutes the SWEPAM and MAG data are binned to the same time resolution (as for example described in \citeA{heidrich2016observations}). In addition to this binning, only time stamps with valid data entries for all seven input parameters are considered. Since $a_{col}$ and $n_{O^{7+}}/ n_{O^{6+}}$ show a large dynamic range, a (decadic) logarithm is applied to these two parameters.
|
||||
|
||||
ICMEs are explicitly excluded from the data set. Since the data set is presented to $k$-means point-wise, and no temporal context information is included in the data set, a clustering method cannot be expected to correctly identify complete ICME periods. The properties of ICMEs are variable (over time and between ICMEs). %% and sometimes are combined properties e.g. low $v_{sw}$ for the prevalent temperature
|
||||
Therefore, the data points that are identified as ICMEs based on predefined ICMEs list \cite{jian2006properties,jian2011comparing,kilpua2012observations,cane2003interplanetary} are also removed from our data set. In addition, a buffer of six hours before and after the listed ICME start and stop times is removed as well to account for the difficult identification of the start and stop times of ICMEs.
|
||||
|
||||
All considered solar wind parameters have different measurement uncertainties. To estimate their impact on our results, we apply a Monte Carlo simulation to test the stability of the clusterings determined by $k$-means.
|
||||
The respective distributions used in the Monte Carlo simulation for each input parameter are normal distribution with the respective measurement uncertainty as the standard deviation. For the rebinned/ averaged data products, we assume that the real physical variability in the data is on the same scale as the measurement uncertainty. Therefore, we take the same measurement uncertainty for the 12-minute time resolution as for the respective native time resolutions of SWEPAM and MAG. For $\n$ the error is $15$\% \cite{mccomas1998unusual}, for $\vsw$ $1.5$\% \cite{mccomas1998unusual}, for $\T$ $20$\% \cite{mccomas1998unusual}, for $\B$ $0.1$nT \cite{smith1998ace}. % for $n_{O^{7+}}/ n_{O^{6+}}$ $10$\% \citep{berger2008velocity}.
|
||||
For $q_{Fe}$ and $\nO$ the error is calculated using error propagation for the individual densities of the charge states. The error of the individual densities are also estimated as $10$\% . In case of the $\log\nO$ charge state the relative error is limited to the $84.9$th percentile that corresponds to the upper bound of a 1$\sigma$ equivalent of the overall error. The resulting upper limit of $\log\nO$ lies at 44.3~$\%$. This limitation is necessary due to very low counting statistics in parts of the data set which result in substantial and unrealistic errors. We decided against omitting these data points with very high statistical uncertainty, since they systematically occur in very dilute coronal hole wind which is most frequently observed during the solar activity minimum. Therefore, excluding these data points would introduce a bias into the data set by removing this specific type of coronal hole wind. The $\colage$ is recalculated for each Monte Carlo trial from the respective randomised values of $\n$, $\vsw$, and $\T$.
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width = 0.5\textwidth]{figs/elbow_plot__12.pdf}
|
||||
\caption{Convergence and cluster quality scores for different numbers of clusters. From top to bottom: the median of the mean inner cluster distance (MICD), the difference of the MICD to the next number of clusters, the Calinski-Harabasz score and the Davies-Bouldin score over the 100 trials of the full parameter combination for $k=2, \dots,12$. The error bars are based on percentiles corresponding to a $1\sigma$ interval. The last panel shows the maximum number of iterations used by $k$-means for the respective number of clusters.
|
||||
}
|
||||
\label{fig:elbow}
|
||||
\end{figure}
|
||||
As a reference point, we also consider the \citeA{xu2014new} solar wind classification. This solar wind classification scheme distinguishes between coronal hole wind, two types of slow solar wind, and ejecta. The two types of slow solar wind were defined to distinguish between helmet-streamer and pseudo-streamer plasma. Sector reversal (or helmet-streamer) plasma includes a change in the magnetic field polarity and therefore consists of slow and dense slow solar wind in the vicinity of stream interaction regions, and streamer belt (or pseudo-streamer) plasma contains the remaining slow solar wind plasma. The fourth category from the \citeA[]{xu2014new} scheme, the ejecta category which is designed to detect ICMEs, is disregarded since it tends to misidentify particularly cold and dense slow solar wind \cite{sanchez2016very} as ejecta. From our point of view, no available solar wind classification (including the \citeA{xu2014new} scheme) represents the ground truth.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width = 0.45\textwidth]{figs/kmeans_new_colours.pdf}
|
||||
\caption{Schematic overview of the experimental set-up. All possible input parameter combinations without considering the order starting with parameter combinations containing only one parameter up to the full seven-parameter input set are determined. Here (and in all other figures) the different parameters are colour-coded. $\n$ is light blue, $\T$ is orange, $\B$ is dark blue, $\nO$ is magenta, $\vsw$ is red, $\colage$ is brown and $\mcsFe$ is green. For every parameter combination, 100 trials of $k$-means are conducted (with $k=$3 and $k=7$). The results from the different parameter combinations are compared using four similarity scores. }
|
||||
\label{fig:schema}
|
||||
\end{figure}
|
||||
|
||||
%plot 2: time series plots: add Zhao und Xu Borovsky ( outdated version change the cpation int he plot)
|
||||
\begin{figure*}
|
||||
\centering
|
||||
\includegraphics[width = 1.0\textwidth]{figs/zeitreihen/timeseriespaper_plot_trial0_2002.6-2002.9_2.pdf}
|
||||
\caption{This plot shows a time series of all seven considered solar wind parameters from day of year 219 to day of year 329 in 2002. From top to bottom the solar wind parameters are : $\n,\vsw, \T, \colage, \B, \nO $ and $\mcsFe$. $\nO$ and $\colage$ are shown in logarithmic scale. The cluster affiliation for the different data points has been determined using $k$-means. We used the first trial of the clusterings trained on the dataset containing all seven parameters. ICMEs are indicated with grey shading.}
|
||||
\label{fig:timeseries}
|
||||
\end{figure*}
|
||||
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width =0.5\textwidth]{figs/pre_plot_test_3.pdf}
|
||||
\caption{This figure illustrates how the results for the similarity scores are processed to be a data point in Fig.~\ref{fig:big_3_mc}. First, the clustering obtained by the application of $k$-means trained on the parameter-combination-of-interest, in this case $\{\T\}$, is compared trial by trial to the clustering obtained from the full parameter combination which is always used as the reference point. The median and 15.1th and 84.9th percentiles of the distribution of the similarities computed for all trials is calculated. This process is repeated for every parameter combination. Here, it is only illustrated for one parameter combinations containing one input parameter.}
|
||||
\label{fig:pre_plot_3}
|
||||
\end{figure}
|
||||
|
||||
|
||||
|
||||
\subsection{$k$-means}\label{sec:kmeans}
|
||||
$k$-means \cite{lloyd1982least} is a simple algorithm to perform clustering, which is, unsupervised classification. The $k$-means algorithm starts by choosing an initial guess as the first cluster centres. In the next step, every point in the dataset is assigned to one of the $k$ clusters by computing the Euclidean distance to all cluster centres. The closest cluster centre determines the cluster assignment. After this step, new cluster centres are obtained by calculating the mean over each current cluster. The last two steps are iterated until the cluster centres converge. The algorithm was implemented using python version 3.9.2 and scikit-learn version 1.0.2 \cite{scikit-learn}. To determine the initial cluster centres, \texttt{kmeans++} was used. \texttt{kmeans++} is an extension to $k$-means wherein the starting points are not randomly chosen but determined with an underlying algorithm to improve the convergence speed of $k$-means. A similar analysis as presented in this study applied to other clustering methods could lead to different, potentially complementing results. $k$-means implicitly makes the assumption that clusters are normal distributed - and therefore convex - and well separated. Since solar wind times sometimes show a continuous transition in the solar wind properties from one type solar wind type to another, these solar wind types cannot be expected to be very well separated and, as discussed Sec.~\ref{sec:elbow}, cluster cannot be assumed to be convex. Nevertheless, previous work \cite{heidrich2018solar,bloch2020data,amaya2020visualizing} has shown that $k$-means is a reasonable choice for the classification of solar wind. We chose $k$-means as our test case for solar wind classification for several reasons: $k$-means is a simple purely data driven method that is reasonably robust even if the underlying assumptions are stretched. Many well-tested implementations are available, which simplifies to reproduce our approach. We can build on available previous studies \cite{heidrich2018solar,bloch2020data,amaya2020visualizing} that have already explored the resulting clusterings which allows us to focus on our research question, that is, how relevant different solar wind parameters are for solar wind classification.
|
||||
|
||||
To mitigate the sensitivity of $k$-means to outliers, the dataset is scaled using \texttt{scikit-learn}'s \texttt{RobustScaler}. After an initial study which showed that - for solar wind classification - the resulting clusterings are very stable against changes in the hyperparameter settings, $k$-means is initialised with the following hyperparameters \texttt{n\_ init}: $10$, \texttt{tol}: $0.001$, \texttt{algorithm}: \emph{auto}, and \texttt{max\_iter}: $1000$.
|
||||
|
||||
The maximum of number of iterations in each the trials is set to 1000 to ensure that k-means converges. In the bottom panel of Fig.~\ref{fig:elbow}), the maximum number of iterations used by $k$-means for the different number of clusters are displayed. This shows that 100 iterations are never exceeded and we can conclude that $k$-means always converged in our experiments.
|
||||
|
||||
|
||||
\subsection{Evaluation and comparison criteria}\label{sec:scores}
|
||||
Our study requires two types of performance measures: (1) Measures to estimate the quality of a clustering and (2) measures to quantify the similarity between two clusterings. For both, several options are available in the literature and are already implemented in \texttt{scikit-learn}. From a $k$-means perspective, the natural choice of a clustering quality measure is the mean inner cluster distance (MICD). In addition, the Davies-Bouldin score \cite{dav1979} and Calinsiki-Harabasz score \cite{hara1974} are applied. Both express that the inner cluster distances are to be minimised in an ideal clustering while the intra cluster distances are to be maximised, but they differ in how these two distances are determined. The Davies-Bouldin score is minimised with increasing 'quality' and the Calinski-Harabasz score is maximised. Both favour convex clusterings.
|
||||
|
||||
We quantify the comparison of two clusterings with similarity measures. We chose four similarity scores that are implemented in \texttt{scikit-learn}. All four of them take the label vectors, which assign each data point to one of the $k$ clusters, of two clusterings and calculate a value where one indicates equality of the two clusterings. The Folkwes-Mallow score \cite{fowlkes1983} takes the number of correctly labelled data points and weighs them with the number of falsely labelled data points. The Adjusted Rand Score \cite{hubert1985} divides the number of correctly labelled data points by the sample size but also takes accidentally correctly labelled data points into account. The Mutual Information Score \cite{strehl2002,yang2016} considers the shared information between the two clusterings by comparing the entropy (uncertainty of the label) of the two clusterings. The mutual information needs to be be normalised to make the scores obtained on different data sets comparable. Here, the normalised mutual information score and the adjusted mutual information score are employed. All four similarity measures are independent of the order in which labels are assigned to clusters (that is whether a specific cluster as referred to as ``Cluster 0'' or ``Cluster 1'', for example).
|
||||
|
||||
We note that the exact values of the similarities scores are difficult to interpret without additional information. For example, the score values do not indicate in which parts of the input space two clusterings differ or whether this difference is relevant for a particular research question. Also, (with a few exception in Sect.~\ref{sec:discussion}) we always compare to the same fixed reference clustering instead of comparing different sub-sets of input parameters directly to each other. Thus, the same similarity score (lower than one) for two different input parameter combinations does not indicate that the corresponding clusterings are the same, but only that their difference to the reference clustering is on the same scale. Where these differences occur might be different. Therefore, in the following section we focus on the comparison of similarity score instead of on the absolute score values. Therein, the relative change of the similarity to the reference clustering allows us to draw conclusions on the information content of each considered input parameter combination.
|
||||
|
||||
\subsection{Experimental setup}\label{sec:setup}
|
||||
|
||||
Fig.~\ref{fig:schema} provides an overview of our experimental set-up.
|
||||
|
||||
We consider all combinations of the seven input parameters regardless of the order\footnote{k-means is not sensitive to the order of input dimensions.}. This gives us: seven single-parameters cases, followed by $21$ two-parameter combinations, $35$ three-parameter combinations, again $35$ combinations of four out of seven parameters, $21$ combinations of five out of seven parameters, seven six-parameter combinations and finally one combination of all seven input parameters. This leads to $127$ different input parameter combinations.
|
||||
|
||||
To reduce the sensitivity of $k$-means to the internal choice of starting points of \texttt{kmeans++}, 100 independent $k$-means trials were conducted for each of the $127$ parameter combinations (indicated with different colours in Fig~\ref{fig:schema}). For each $k$-means trial, the respective input data set is shuffled. The results of a single trial are illustrated in a time series of the seven solar wind parameters in Fig.~\ref{fig:timeseries}.
|
||||
|
||||
For each of the 100 trials for each parameter combination, the Calinski-Harabasz score, the Davies-Bouldin score and the MICD are calculated to evaluate the quality of the clustering. All three scores are shown in Fig.~\ref{fig:elbow} for different numbers of clusters.
|
||||
|
||||
In addition to the quality scores, the clustering from each trial is compared with the corresponding trial of the full parameter combination (also called the reference parameter combination in the following) using the four similarity scores listed in Sec.~\ref{sec:scores}. The compared clusterings have the same starting point in \texttt{kmeans++} and the data is shuffled with the same random seed. As illustrated in Fig.~\ref{fig:pre_plot_3} for each score, the variability in the different trials is estimated by comparing all the trials of the current parameter combination to the first trial.
|
||||
|
||||
|
||||
To estimate the impact of the measurement uncertainty of each solar wind parameter, that is, the stability of the clustering towards noise in the data set, a Monte Carlo approach is employed. For each solar wind parameter, normal distributed noise with the respective measurement uncertainty (see Sec.~\ref{sec:ace}) is added to each data point. Then, each noisy data set is transformed with the same \texttt{RobustScaler} defined on the original measured data set and $k$-means is applied to it. Each trial for each parameter combination of the clustering based on the data with noise is compared with the corresponding trial of the clustering with the (full) reference parameter combination based on the data set without noise. Both of these clusterings are applied to the original data without noise. Comparing in this context always means to calculate the four similarity scores. All error bars in the following are given as confidence intervals defined by the $15.1$th- to $84.9$th-percentiles. These percentiles are chosen to correspond to a $1\sigma$ standard deviation.
|
||||
|
||||
All figures in this study are created with matplotlib version 3.3.4 and the respective median and percentiles over all trials are shown wherein the $14.9$th- and $85.1$th-percentile are chosen as corresponding to a $1\sigma$-interval.
|
||||
31
paper/n_solar_wind_agu.tex
Normal file
31
paper/n_solar_wind_agu.tex
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
|
||||
\begin{figure}[h!]
|
||||
\centering
|
||||
\includegraphics[width = 0.5\textwidth]{figs/distribution/distribution_paper_new.pdf}
|
||||
\caption{This figure demonstrates the clustering result of the first trial of the full parameter combination. For each panel, one 1d histogram per input parameter is shown. The distributions on the left side correspond to the $k=3$ and on the right side to the $k=7$ case. All histograms are normalised to their respective maximum. For $\n$ the display window has been limited to $60\ cm^{-3}$ whereas all other histograms are limited by the actual maximum. $134$ data points are not shown in the $\n$-histograms. The fractions each cluster occupies are denoted in the two top panels.
|
||||
The bins have the dimension of $0.793\ \textnormal{cm}^{-3}$, $8.353\ \textnormal{km/s}$, $9.140\times10^{-3}\ \textnormal{MK}$, $0.075$, $0.487\ \textnormal{nT}$, $0.781$ and $0.038\ \textnormal{e}$.}
|
||||
\label{fig:distribution}
|
||||
\end{figure}
|
||||
\section{Number of solar wind types}\label{sec:elbow}
|
||||
|
||||
|
||||
At the moment, there is no established ground truth for the number of solar wind types and what properties the different types have (beyond a distinction between coronal hole and non-coronal hole wind). Historically, solar wind was divided in slow and fast solar wind with proton speed as the dividing factor \cite{neugebauer1966mariner,mccomas1998solar}. \citeA{zurbuchen2002solar} proposed a classification based on the O charge state ratio ($\nO$) since the charge states are very well suited to identify the solar origin of the solar wind plasma. Since no charge state measurements were available at L1 after 2011, \citeA{xu2014new} developed a four-category solar wind classification scheme based on three derived plasma parameters. The parameters are the proton-specific entropy, the proton Alfv{\'e}n speed and the proton temperature compared with a velocity-dependent expected temperature. These three parameters are derived from the measurements of $\B$, $\n$, $\vsw$, and $\T$ which are all affected by transport effects. \citeA{amaya2020visualizing} used six solar wind clusters and applied self-organising maps as an unsupervised learning algorithm to classify the solar wind.
|
||||
|
||||
The simple solar wind speed based classification does not cover the complexity of the solar wind at 1 AU. Since some of the properties of the solar wind change with the distance to the Sun, transport effects should be taken into account. Also the solar wind properties change with a different origin on the Sun. From our selection of solar wind parameters, the properties that are only source-dependent are the charge states of the heavier ions. All other properties considered here are influenced by transport effects. Transport effects do not only include expansion of the plasma but also SIRs, collisions, and wave-particle interactions. In SIRs the strength of the magnetic field increases due to compression of magnetic field lines and the proton density and proton temperature increase in boundary regions of both participating streams. The solar wind speed of the slow solar wind can increase in the SIR and decrease in the compressed fast solar wind. To identify the compression regions as separate solar wind types more than the two types need to be considered for solar wind classification. There is no consensus on the exact boundaries between the two (or three) solar wind types \cite{neugebauer2016comparison} and there is observational evidence for more sub-types of coronal hole and slow solar wind \cite{zhao2010comparison,d2015origin,sanchez2016very}. Other relevant transport effects are, for example, wave-particle interactions and collisions. While wave-particle interactions are relevant mainly on coronal hole wind, collisions are just frequent enough to impact the plasma properties at L1 for slow solar wind.
|
||||
|
||||
In $k$-means applied to solar wind classification the pre-chosen number of clusters $k$ corresponds to the assumed number of solar wind types. Since the number of solar wind types is not known a priori, we employ here a data driven approach to choose $k$. To account for a balance between over- and underfitting the elbow method \cite{thorndike1953belongs} is chosen. The results are shown in Fig.~\ref{fig:elbow}. The quality scores (MICD, Calinski-Harabasz score and the Davies-Bouldin) are calculated for different numbers of clusters ($k=2, \dots, 12$) for each of the 100 trials. Subsequentially, the median is computed and the (very small) error bars again account for the uncertainty by the percentiles corresponding to a $1\sigma$ interval. Only for the mean inner cluster distance an elbow is visible. For clearer visualisation, the difference between the MICD for the current number of clusters and the previous one is also shown (Fig.~\ref{fig:elbow} Panel 2) to account for the change in the score by adding another cluster. We identify the comprising ``elbow'' between 7 and 9 clusters. The two other scores are more sensitive to the convexity or non-convexity of the resulting clusters and favour convex clusters. Since in our application the resulting clusters are not expected to be convex it is not surprising that the qualitative behaviour with $k$ is different for the Davies-Bouldin score and the Calinski-Harabasz score than for the MICD.
|
||||
|
||||
Even though the computations are performed for all the different number of clusters from two to twelve, in the following we focus on two cases: three and seven clusters. Based on Fig.~\ref{fig:elbow}, we chose $k=3$ clusters as an interesting case since this corresponds to the maximum of the Calinski-Harabasz score and a minimum of the Davies-Bouldin score. This indicates that the resulting clusters are convex. In addition, $k=3$ allows a direct comparison to the \citeA{xu2014new} classification. We chose $k=7$ as a representative for the elbow in the MICD in Fig.~\ref{fig:elbow}. We also analysed the results of all clusterings with $k=2,\dots,12$ to ensure that the qualitative results do not depend on the particular choice of $k$.
|
||||
|
||||
\subsection{Reference solar wind clustering based on all input parameters}\label{sec:all_para}
|
||||
The focus of this study lies not on analysing the solar wind types produced by $k$-means (for this question we refer to the literature \cite{amaya2020visualizing,heidrich2018solar,bloch2020data}). Nevertheless, in this section we provide a tentative interpretation of our reference clustering.
|
||||
Thereby and to ensure a meaningful comparison in the following section, we here describe the solar wind clustering obtained by $k$-means based on the full parameter combination for three and seven clusters. As described in Sect.~\ref{sec:method}, we estimate the stability of $k$-means by retraining 100 independent trials. We compute the similarity scores between the clustering from each trial and the arbitrarily chosen first trial. For three clusters, the respective median is for the adjusted rand score $0.994$ ($3\sigma$ corresponding confidence interval: $[0.981, 0.999]$), for adjusted mutual information score $0.985$ ($[0.963, 0.997$)], for normalised mutual information score $0.985$ ($[0.963, 0.997]$) and for the Folkwes Mallow score $0.996$ ($[0.989, 0.999]$). For seven clusters the similarities between the trials are: adjusted rand score $0.894$ ($3\sigma$ corresponding confidence interval: $[0.742, 0.995]$), adjusted mutual information score $0.888$ ($[0.772, 0.991]$), normalised mutual information score $0.888$ ($[0.772, 0.991]$) and Folkwes Mallow score $0.914$ ($[0.791, 0.996]$). As expected, the similarity for seven clusters between the individual trails is smaller compared to the three cluster case which is also reflected in the noticeable larger confidence intervals (depicted with error bars) in Fig.~\ref{fig:big_7_mc} than in Fig.~\ref{fig:big_3_mc}.
|
||||
|
||||
Since for the three cluster case, all trials are very similar to each other, in the following, we focus on the results of the first trial. We represent each cluster by one-dimensional projections to each input parameter, which results in one distribution per cluster and input parameter. The different distributions are shown in Fig.~\ref{fig:distribution}. For the case of three clusters, we can identify Cluster 1 as typical slow solar wind, Cluster 2 as typical coronal hole wind and Cluster 3 as plasma from compression regions. The compression region cluster is identified by a high proton density and a high collisional age and contains the smallest number of data points. As expected, the corona hole wind cluster exhibits high proton speed, low proton density and high proton temperature. The slow solar wind cluster contains the highest number of data points and is characterised by its high (but lower than in the compression region cluster) proton density, low proton temperature and a higher $\nO$ compared to the corona hole wind cluster.
|
||||
|
||||
The results for seven clusters are also visualised in Fig.~\ref{fig:distribution}. In addition, a time series of 120 days in 2002 is shown in Fig.~\ref{fig:timeseries}. The following represents our interpretation of the data. An additional, more comprehensive analysis would be required to support these interpretations which is outside the scope of this study. We do not claim completeness and we expect a certain amount of uncertainty.
|
||||
|
||||
We interpret the clustering for seven clusters as follows: Cluster 1 can be identified as compressed slow solar wind, Cluster 2 contains (comparatively slow) coronal hole wind probably from polar coronal holes, Cluster 3 can be considered as the bulk of slow solar wind, Cluster 4 contains highly compressed slow solar wind, Cluster 5 can be regarded as polar coronal hole wind, Cluster 6 is found in regions close to the stream interfaces in SIRs, and Cluster 7 fits the properties of coronal hole wind from equatorial coronal holes which likely includes Alfv{\'e}nic slow solar wind. This likely equatorial coronal hole wind with an overall percentage of 24.72\% is characterised with a collisional age overlapping the respective collisional age regime for slow solar wind (streamer belt plasma). The proton speed is consistent with coronal hole wind from equatorial coronal holes and the O charge state ratio in this cluster falls into the regime of coronal hole wind. The O charge state ratio in Cluster 7 is higher than in the other two coronal hole wind-related clusters, but its O charge state ratio is still below the threshold value for coronal hole wind used in, for example, \citeA{zhao2010comparison}. The probably highly compressed region (Cluster 4) contains all very high proton density observations and is with an overall percentage of 1.72\% the rarest type of the seven solar wind types determined by $k$-means clustering. The cluster that we interpret as stream interface wind (Cluster 6) occurs in SIRs (compare Fig.~\ref{fig:timeseries}) and appears to contain compressed coronal hole wind or compressed slow solar wind directly in the rising proton speed flank around the stream interface. The candidate for polar coronal hole wind (Cluster 5) is characterised with its low O charge state ratio, high proton speeds, high proton temperature and low proton density. The likely bulk of the slow solar wind (Cluster 4) contains the highest number of data points with 26.35\% whereas the second coronal hole wind Cluster 2 only contains 14.15\% of the data points. The cluster we consider as compressed slow solar wind (Cluster 1) is characterised by its higher proton densities and correspondingly high proton-proton collisional age. Although not shown here, the frequency of the different solar wind types also depends on the phase of the solar activity cycle. For example, in Fig.~\ref{fig:timeseries} the candidate for polar coronal hole (cluster 5) wind is underrepresented in this time interval which lies within the solar activity maximum phase.
|
||||
|
||||
Both for the three and the seven cluster cases, Fig.~\ref{fig:distribution} shows a different behaviour for the two charge state data products. While the O charge state ratio is low for all three coronal hole wind-related clusters, the mean Fe charge state is high for Cluster 2. This is consistent with the observations in \cite{heidrich2016observations,heidrich2017evolution} and indicates an influence of higher variations of the upper part of the solar corona on the solar wind classification.
|
||||
922
paper/trackchanges.sty
Normal file
922
paper/trackchanges.sty
Normal file
|
|
@ -0,0 +1,922 @@
|
|||
%%
|
||||
%% This file is part of TrackChanges
|
||||
%% Copyright 2006-2009
|
||||
%% Novimir Antoniuk Pablant <amicitas@users.sourceforge.net>
|
||||
%% Felix Salfner <salfner@informatik.hu-berlin.de>
|
||||
%%
|
||||
%% http://trackchanges.sourceforge.net/
|
||||
%%
|
||||
%% Portions of this code adapted from the 'soul' package.
|
||||
%% Copyright (C) 1998-2003 Melchior FRANZ
|
||||
%%
|
||||
%% TrackChanges is free software: you can redistribute it and/or modify
|
||||
%% it under the terms of the GNU General Public License as published by
|
||||
%% the Free Software Foundation, either version 2 of the License, or
|
||||
%% (at your option) any later version.
|
||||
%%
|
||||
%% TrackChanges is distributed in the hope that it will be useful,
|
||||
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
%% GNU General Public License for more details.
|
||||
%%
|
||||
%% You should have received a copy of the GNU General Public License
|
||||
%% along with TrackChanges. If not, see <http://www.gnu.org/licenses/>.
|
||||
%%
|
||||
%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% trackchanges.sty
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% A graphical interface has been written to allow the changes made
|
||||
%% using this style file to be interactively accepted, rejected
|
||||
%% or changed.
|
||||
%% trackchanges.py
|
||||
%%
|
||||
%% To find the latest versions this latex style file and the
|
||||
%% associated files file go to:
|
||||
%% http://trackchanges.sourceforge.net/
|
||||
%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Usage:
|
||||
%%
|
||||
%% Help files are included as part of this package:
|
||||
%% ./documentation/web/html_css/help.html
|
||||
%%
|
||||
%% TrackChanges adds the following 5 commands to allow for collaborative
|
||||
%% editing of LaTeX documents.
|
||||
%%
|
||||
%% \add[editor]{text to add}
|
||||
%% \remove[editor]{text to remove}
|
||||
%% \change[editor]{text to remove}{text to add}
|
||||
%% \annote[editor]{text to annotate}{note}
|
||||
%% \note[editor]{note}
|
||||
%%
|
||||
%% In all cases 'editor' is optional.
|
||||
%%
|
||||
%% In order to have comments color coded by editor, the editors must
|
||||
%% be added in the preamble.
|
||||
%%
|
||||
%% \addeditor{editor}
|
||||
%%
|
||||
%%
|
||||
%% Options
|
||||
%%
|
||||
%% There are 5 display options. These are specified with the
|
||||
%% \usepackage[options]{trackchanges)
|
||||
%%
|
||||
%% finalold
|
||||
%% Ignore all of the edits.
|
||||
%% The document will look as if the edits had not been added.
|
||||
%% finalnew
|
||||
%% Accept all of the edits.
|
||||
%% Notes will not be shown in the final output.
|
||||
%% footnotes
|
||||
%% Added text will be shown inline. Removed text and notes
|
||||
%% will be shown as footnotes.
|
||||
%% This is the default option.
|
||||
%% margins
|
||||
%% Added text will be shown inline. Removed text and notes
|
||||
%% will be shown in the margin.
|
||||
%% Margin notes will be aligned with the edits when possible.
|
||||
%% inline
|
||||
%% All edits will be shown inline.
|
||||
%%
|
||||
%% The following two options are to be used with the 'margins'
|
||||
%% display style. They are used to make more space for the margin
|
||||
%% notes. By default the margins are left as in the original
|
||||
%% document.
|
||||
%%
|
||||
%% movemargins
|
||||
%% Move the text over to the left hand side.
|
||||
%% The textwidth will stay the same.
|
||||
%% adjustmargins
|
||||
%% Reduce the textwidth and move the text over to the left
|
||||
%% hand side.This option will produced the most space for
|
||||
%% the margin notes.
|
||||
%%
|
||||
%%
|
||||
%% Advanced Usage
|
||||
%%
|
||||
%% Certain types of commands cannot be used inside of the TrackChanges
|
||||
%% edit commands without special handling. For more details see
|
||||
%% the limitations section.
|
||||
%%
|
||||
%% This option can be used to deal with incompatible commands.
|
||||
%%
|
||||
%% ignoremode
|
||||
%%
|
||||
%% Additional commands can be added to the ignore list with the
|
||||
%% following command.
|
||||
%%
|
||||
%% \tcignore{<command name>}{<num args>}{<arg num to pass>}
|
||||
%%
|
||||
%% The last argument specifies which, if any, arguments to pass
|
||||
%% as plain text when the command is ignored. If the last
|
||||
%% argument is zero, then all of the arguments will be ignored.
|
||||
%% If \color and \textcolor were not already on the ignore
|
||||
%% list then the following commands could be used to add them:
|
||||
%%
|
||||
%% \tcignore{\textcolor}{2}{2}
|
||||
%% \tcignore{\color}{1}{0}
|
||||
%%
|
||||
%%
|
||||
%% TrackChanges also requires special handling for font changing
|
||||
%% commands. These type of commands may have to be registered
|
||||
%% with track changes to be dealt with properly. To register a
|
||||
%% new command use the following command.
|
||||
%%
|
||||
%% \tcregister{<command name>}{<num args>}
|
||||
%%
|
||||
%% All of the standard font switching command are registered by
|
||||
%% default. If \bf and \emph were not already registered then
|
||||
%% the following commands could be used to add them:
|
||||
%%
|
||||
%% \tcregister{\bf}{0}
|
||||
%% \tcregister{\emph}{1}
|
||||
%%
|
||||
%% While register commands is primarily for font changing it may
|
||||
%% work for other types of commands that are causing problems.
|
||||
%%
|
||||
%%
|
||||
%%
|
||||
%% Limitations
|
||||
%%
|
||||
%% - If another package is used that adjusts the margins, it
|
||||
%% can take precedence over the TrackChanges handling.
|
||||
%% To make sure TrackChanges has the last word, load it
|
||||
%% after all other margin related packages.
|
||||
%%
|
||||
%% - Incompatable with the package 'ulem'
|
||||
%% Use the package 'soul' instead for underlining/strikeout.
|
||||
%%
|
||||
%% - TrackChanges cannot handle certain kinds of commands inside
|
||||
%% the edit commands. In particular \color, \textcolor and
|
||||
%% any commands from the underlining package 'soul' will not work.
|
||||
%% There are two ways to get around these issues.
|
||||
%% 1. The 'ignoremode' option can be used.
|
||||
%% This will tell TrackChanges to ignore certain commands
|
||||
%% (Including the ones mentioned above).
|
||||
%% Additional commands can be added to the ignore list with
|
||||
%% the \tcignore command.
|
||||
%% 2. Sometimes the problematic commands can be preceded by
|
||||
%% \protect. This however can have strange behavior.
|
||||
%%
|
||||
%% - TrackChanges requires special handling for certain kinds of
|
||||
%% commands inside of edit commands. These problematic commands
|
||||
%% are generally font switching commands. All of the common
|
||||
%% font switching commands (such as \emph, \textbf, etc.)
|
||||
%% are already handled. If you run into an issue you can try
|
||||
%% using \tcregister to register the problematic command.
|
||||
%%
|
||||
%% - No easy way to tell TrackChanges not to split footnotes
|
||||
%% across multiple pages.
|
||||
%%
|
||||
%% - Some other packages that take over footnote handling may be
|
||||
%% incompatible with TrackChanges. Using a footnote package
|
||||
%% such as footmisc may fix these problems.
|
||||
%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% trackchanges version 0.6, 2007-06-13
|
||||
%% written by Felix Salfner
|
||||
%%
|
||||
%% trackchanges version 0.7, 2009-03-09
|
||||
%% rewritten by Novimir Pablant
|
||||
%%
|
||||
%% version 0.7.0, 2009-04-22 - Novimir Pablant
|
||||
%% Overhauled how the editors are set up. Now each editor can be
|
||||
%% added simply by using the /addeditor{name} command.
|
||||
%% Color system completely overhauled, now uses the 'soul' package.
|
||||
%% Added margin commands 'movemargins' and 'adjustmargins'.
|
||||
%% Added an option ignoremode and a reimplementation of portions
|
||||
%% of 'soul' to allow commands to be ignored inside edits.
|
||||
%% Commands \tcignore and \tcregister were added.
|
||||
%% Added depreciation warnings for TrackChanges v0.6 commands.
|
||||
%% Numerous other internal changes.
|
||||
%%
|
||||
%%
|
||||
%% ---------------------------------------------------------------------
|
||||
%% To do:
|
||||
%% - Add ability to set custom colors.
|
||||
%%
|
||||
%% - Create a better way of adding editors that does not have a
|
||||
%% five editor limit.
|
||||
%%
|
||||
%% - Check if the package 'ulem' is loaded, and issue an error.
|
||||
%% Right now I am checking if the \ulem command exists.
|
||||
%% and issuing a warning.
|
||||
%%
|
||||
%% - Better error handling, error messages.
|
||||
%%
|
||||
%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
\ProvidesPackage{trackchanges}
|
||||
[2009/04/22 v0.7.0 TrackChanges file ]
|
||||
|
||||
% Setup the required packages.
|
||||
\RequirePackage{color}
|
||||
\RequirePackage{ifthen}
|
||||
\RequirePackage{calc}
|
||||
\RequirePackage{soul}
|
||||
\RequirePackage{morefloats}
|
||||
|
||||
% I ran into some conflicts with other packages that deal
|
||||
% with footnotes. Adding footmisc solved those problems for me.
|
||||
%\RequirePackage{footmisc}
|
||||
%\RequirePackage{manyfoot}
|
||||
|
||||
%%
|
||||
%% -------------- Setup the options
|
||||
\newif\if@trackchanges
|
||||
\@trackchangestrue
|
||||
\newif\if@trackinmargins
|
||||
\@trackinmarginsfalse
|
||||
\newif\if@trackinline
|
||||
\@trackinlinefalse
|
||||
\newif\if@keepnew
|
||||
\@keepnewfalse
|
||||
\newif\if@movemargins
|
||||
\@movemarginsfalse
|
||||
\newif\if@adjustmargins
|
||||
\@adjustmarginsfalse
|
||||
\newif\if@TCignoremode
|
||||
\@TCignoremodefalse
|
||||
|
||||
\DeclareOption{finalold}{\@trackchangesfalse\@keepnewfalse}
|
||||
\DeclareOption{finalnew}{\@trackchangesfalse\@keepnewtrue}
|
||||
\DeclareOption{margins}{\@trackchangestrue\@trackinmarginstrue\@trackinlinefalse}
|
||||
\DeclareOption{inline}{\@trackchangestrue\@trackinlinetrue\@trackinmarginsfalse}
|
||||
\DeclareOption{footnotes}{\@trackchangestrue\@trackinmarginsfalse\@trackinlinefalse}
|
||||
|
||||
\DeclareOption{movemargins}{\@movemarginstrue\@adjustmarginsfalse}
|
||||
\DeclareOption{adjustmargins}{\@adjustmarginstrue\@movemarginstrue}
|
||||
|
||||
\DeclareOption{ignoremode}{\@TCignoremodetrue}
|
||||
\DeclareOption{ignoremodeoff}{\@TCignoremodefalse}
|
||||
|
||||
%% This option exists for backwards compatibility with v0.6.
|
||||
%% A depreciated warning will be displayed.
|
||||
\DeclareOption{final}{\@trackchangesfalse\@keepnewfalse
|
||||
\PackageWarningNoLine{trackchanges}{%
|
||||
Option 'final' is depreciated.\MessageBreak%
|
||||
Use 'finalold' instead%
|
||||
}%
|
||||
}
|
||||
|
||||
\ProcessOptions
|
||||
|
||||
|
||||
%%
|
||||
%% -------------- Inhibit footnotes getting split across pages
|
||||
%% This will inhibit splitting completely.
|
||||
%% LaTeX will complain about `Underfull \vbox' unless
|
||||
%% \raggedbottom is also used.
|
||||
%
|
||||
%\interfootnotelinepenalty=10000
|
||||
%
|
||||
%% Default value is 100.
|
||||
|
||||
|
||||
%%
|
||||
%% -------------- Set options for the soul package
|
||||
\setstcolor{red}
|
||||
\setuloverlap{0pt}
|
||||
|
||||
%%
|
||||
%% -------------- Make an alias to the 'soulregister' command.
|
||||
\let\tcregister\soulregister
|
||||
|
||||
%% -------------- Setup new macros for the soul package.
|
||||
%% Here we setup two new commands using soul package macros.
|
||||
%% These will allow strikeout, and underline with colored
|
||||
%% text. These are important as they ensure that color is
|
||||
%% maintained even in situations such as a footnote getting
|
||||
%% split across pages.
|
||||
|
||||
%% This is where the color is actually added.
|
||||
\def\SOUL@coloreverysyllable{%
|
||||
\SOUL@textcolor{\the\SOUL@syllable%
|
||||
\SOUL@setkern\SOUL@charkern%
|
||||
}%
|
||||
}
|
||||
|
||||
%% This is where the color is actually added.
|
||||
\def\SOUL@ulcoloreverysyllable{%
|
||||
\SOUL@textcolor{\SOUL@uleverysyllable}%
|
||||
}
|
||||
|
||||
%% Here we define a new command with the text color.
|
||||
\def\SOUL@settextcolor#1{%
|
||||
\def\SOUL@textcolor{\textcolor{#1}}%
|
||||
}
|
||||
|
||||
%% This is the setup command for colored text.
|
||||
\def\SOUL@colorsetup#1{%
|
||||
\SOUL@settextcolor{#1}%
|
||||
\SOUL@setup%
|
||||
\let\SOUL@everysyllable\SOUL@coloreverysyllable%
|
||||
}
|
||||
|
||||
%% This is the setup command for strikeout with colored text.
|
||||
\def\SOUL@stcolorsetup#1{%
|
||||
\SOUL@settextcolor{#1}%
|
||||
\SOUL@stsetup%
|
||||
\let\SOUL@everysyllable\SOUL@ulcoloreverysyllable%
|
||||
}
|
||||
|
||||
%% This is the setup command for underline with colored text.
|
||||
\def\SOUL@ulcolorsetup#1{%
|
||||
\SOUL@settextcolor{#1}%
|
||||
\SOUL@ulsetup%
|
||||
\let\SOUL@everysyllable\SOUL@ulcoloreverysyllable%
|
||||
}
|
||||
|
||||
%% Here I define the new callables.
|
||||
|
||||
%% Color with strikeout
|
||||
\DeclareRobustCommand*{\stcolor}[1]{%
|
||||
\SOUL@stcolorsetup{#1}%
|
||||
\SOUL@%
|
||||
}
|
||||
|
||||
%% Color with underline
|
||||
\DeclareRobustCommand*{\ulcolor}[1]{%
|
||||
\SOUL@ulcolorsetup{#1}%
|
||||
\SOUL@%
|
||||
}
|
||||
|
||||
%% Colored text
|
||||
\DeclareRobustCommand*{\soulcolor}[1]{%
|
||||
\SOUL@colorsetup{#1}%
|
||||
\SOUL@%
|
||||
}
|
||||
|
||||
%%
|
||||
%% -------------- Setup counters
|
||||
\newcounter{userid}
|
||||
\setcounter{userid}{-1}
|
||||
\newcounter{changenumber}[page]
|
||||
\setcounter{changenumber}{0}
|
||||
\newcounter{storefootnote}
|
||||
\newcounter{numeditors}
|
||||
\setcounter{numeditors}{0}
|
||||
\newcounter{maxeditors}
|
||||
\setcounter{maxeditors}{5}
|
||||
|
||||
|
||||
%%
|
||||
%% ----------- Create commands for five users
|
||||
\newcommand{\TC@editorOne}{n/n}
|
||||
\newcommand{\TC@editorTwo}{n/n}
|
||||
\newcommand{\TC@editorThree}{n/n}
|
||||
\newcommand{\TC@editorFour}{n/n}
|
||||
\newcommand{\TC@editorFive}{n/n}
|
||||
|
||||
|
||||
%%
|
||||
%% ----------- create commands to add an editor.
|
||||
\newcommand{\addeditor}[1]{
|
||||
\matchuser{#1}
|
||||
\ifthenelse{\value{userid} = -1}
|
||||
{\addNewEditor{#1}}{}
|
||||
}
|
||||
\newcommand{\addNewEditor}[1]{
|
||||
\stepcounter{numeditors}
|
||||
\setcounter{userid}{\value{numeditors}}
|
||||
% Check the number of authors.
|
||||
\ifthenelse{\value{numeditors} > \value{maxeditors}}
|
||||
{\TC@WarningTooManyEditors}
|
||||
{}
|
||||
\ifthenelse{\value{userid} = 1}
|
||||
{\renewcommand{\TC@editorOne}{#1}}
|
||||
{\ifthenelse{\value{userid} = 2}
|
||||
{\renewcommand{\TC@editorTwo}{#1}}
|
||||
{\ifthenelse{\value{userid} = 3}
|
||||
{\renewcommand{\TC@editorThree}{#1}}
|
||||
{\ifthenelse{\value{userid} = 4}
|
||||
{\renewcommand{\TC@editorFour}{#1}}
|
||||
{\ifthenelse{\value{userid} = 5}%
|
||||
{\renewcommand{\TC@editorFive}{#1}}
|
||||
{}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- define text colors for different users
|
||||
\newcommand{\usercolor}{%
|
||||
\ifthenelse{\value{userid} = 0}%
|
||||
{\definecolor{UserColor}{rgb}{0.33,0.11,0.46}}% Purple
|
||||
{\ifthenelse{\value{userid} = 1}%
|
||||
{\definecolor{UserColor}{rgb}{0.1,0.1,0.8}}% Blue
|
||||
{\ifthenelse{\value{userid} = 2}%
|
||||
{\definecolor{UserColor}{rgb}{0.0,0.6,0.0}}% Green
|
||||
{\ifthenelse{\value{userid} = 3}%
|
||||
{\definecolor{UserColor}{rgb}{0.68,0.17,0.5}}% Magenta
|
||||
{\ifthenelse{\value{userid} = 4}%
|
||||
{\definecolor{UserColor}{rgb}{0.13,0.60,0.65}}% Cyan
|
||||
{\ifthenelse{\value{userid} = 5}%
|
||||
{\definecolor{UserColor}{rgb}{0.86,0.50,0.12}}% Orange
|
||||
{\definecolor{UserColor}{rgb}{0.13,0.70,0.50}}% Teal
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% -------------- set counter userid according to editor
|
||||
\newcommand{\matchuser}[1]{%
|
||||
\ifthenelse{\equal{#1}{}}%
|
||||
{\setcounter{userid}{0}}%
|
||||
{\ifthenelse{\equal{#1}{\TC@editorOne}}%
|
||||
{\setcounter{userid}{1}}%
|
||||
{\ifthenelse{\equal{#1}{\TC@editorTwo}}%
|
||||
{\setcounter{userid}{2}}%
|
||||
{\ifthenelse{\equal{#1}{\TC@editorThree}}%
|
||||
{\setcounter{userid}{3}}%
|
||||
{\ifthenelse{\equal{#1}{\TC@editorFour}}%
|
||||
{\setcounter{userid}{4}}%
|
||||
{\ifthenelse{\equal{#1}{\TC@editorFive}}%
|
||||
{\setcounter{userid}{5}}%
|
||||
{\setcounter{userid}{-1}}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
\usercolor%
|
||||
}
|
||||
|
||||
%% --------------- Setup a command for the user label.
|
||||
\newcommand{\UserLabel}{}
|
||||
%%
|
||||
\newcommand{\GetUserLabel}[1]{%
|
||||
\ifthenelse{\equal{#1}{}}%
|
||||
{}%
|
||||
{\userco{\textit{#1}:}}%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- define commands to color text.
|
||||
%% The first command works properly across paragraphs.
|
||||
%% The second works well with the footnote.
|
||||
%%
|
||||
%% The last two use the soul package.
|
||||
\newcommand{\usertext}[1]{\color{UserColor}{#1}\normalcolor}
|
||||
\newcommand{\usertextfoot}[1]{\textcolor{UserColor}{#1}}
|
||||
\newcommand{\userco}[1]{\soulcolor{UserColor}{#1}}
|
||||
\newcommand{\userst}[1]{\stcolor{UserColor}{#1}}
|
||||
\newcommand{\userul}[1]{\ulcolor{UserColor}{#1}}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- define command for margin text.
|
||||
\newcommand{\marginText}[2]{%
|
||||
\renewcommand{\baselinestretch}{0.8}%
|
||||
\marginpar{\raggedright%
|
||||
\footnotesize%
|
||||
\textsuperscript{\thefootnote}%
|
||||
\UserLabel~#2%
|
||||
}%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- This need to be called at the beginning of every command.
|
||||
\newcommand{\trackingstart}[1]{%
|
||||
% Set the ignores if the 'ignore' option was set.
|
||||
\if@TCignoremode%
|
||||
\TC@SetIgnores%
|
||||
\fi%
|
||||
\setcounter{storefootnote}{\value{footnote}}%
|
||||
\refstepcounter{changenumber}%
|
||||
\matchuser{#1}%
|
||||
\ifthenelse{\value{userid} = -1}%
|
||||
{\TC@WarningUnknownEditor{#1}}%
|
||||
{}%
|
||||
\renewcommand{\thefootnote}{\usertextfoot{c\arabic{changenumber}}}%
|
||||
\setulcolor{UserColor}%
|
||||
\renewcommand{\UserLabel}{\GetUserLabel{#1}}%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- This need to be called at the end of every command.
|
||||
\newcommand{\trackingend}{%
|
||||
\setcounter{footnote}{\value{storefootnote}}%
|
||||
% Reset the ignores if the 'ignore' option was set.
|
||||
\if@TCignoremode%
|
||||
\TC@ResetIgnores%
|
||||
\fi%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- Define the frontend command: \add
|
||||
%% usage: \add[Editor]{new text}
|
||||
\newcommand{\add}[2][]{%
|
||||
\if@trackchanges%
|
||||
\trackingstart{#1}%
|
||||
\if@trackinmargins%
|
||||
\textsuperscript{\thefootnote}%
|
||||
\marginText{#1}{\userco{\textit{Text added.}}}%
|
||||
\else%
|
||||
\if@trackinline%
|
||||
{\footnotesize\textsuperscript{\UserLabel}}%
|
||||
\else%
|
||||
\footnote{\UserLabel~\userco{\textit{Text added.}}}%
|
||||
\fi%
|
||||
\fi%
|
||||
\usertext{\ul{#2}}%
|
||||
\trackingend%
|
||||
\else%
|
||||
%% if trackchanges is false ...
|
||||
\if@keepnew%
|
||||
%% Keep the new text.
|
||||
#2%
|
||||
\fi%
|
||||
%% if keepnew is false do nothing.
|
||||
\fi%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- Define the frontend command: \remove
|
||||
%% usage: \remove[Editor]{original text}
|
||||
\newcommand{\remove}[2][]{%
|
||||
\if@trackchanges%
|
||||
\trackingstart{#1}%
|
||||
\if@trackinmargins%
|
||||
\textsuperscript{\thefootnote}%
|
||||
\marginText{#1}{\userst{#2}}%
|
||||
\else%
|
||||
\if@trackinline%
|
||||
{\footnotesize\textsuperscript{\UserLabel}\usertext{\st{#2}}}%
|
||||
\else%
|
||||
\footnote{\UserLabel~\userst{#2}}%
|
||||
\fi%
|
||||
\fi%
|
||||
\trackingend%
|
||||
\else%
|
||||
%% if trackchanges is false ...
|
||||
\if@keepnew%
|
||||
%% Remove the old text.
|
||||
\else
|
||||
%% Keep the old text.
|
||||
#2%
|
||||
\fi%
|
||||
\fi%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- Define the frontend command: \change
|
||||
%% usage: \change[Editor]{original text}{new text}
|
||||
\newcommand{\change}[3][]{%
|
||||
\if@trackchanges%
|
||||
\trackingstart{#1}%
|
||||
\if@trackinmargins%
|
||||
\textsuperscript{\thefootnote}%
|
||||
\marginText{#1}{\userst{#2}}%
|
||||
\else%
|
||||
\if@trackinline%
|
||||
{\footnotesize\textsuperscript{\UserLabel}\usertext{\st{#2}}}%
|
||||
\else%
|
||||
\footnote{\UserLabel~\userst{#2}}%
|
||||
\fi%
|
||||
\fi%
|
||||
\usertext{\ul{#3}}%
|
||||
\trackingend%
|
||||
\else%
|
||||
%% if trackchanges is false ...
|
||||
\if@keepnew%
|
||||
%% Keep the new text.
|
||||
#3%
|
||||
\else
|
||||
%% Keep the old text.
|
||||
#2%
|
||||
\fi%
|
||||
\fi%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- Define frontend command: \annonte
|
||||
%% usage: \annote[Editor]{highlighted text}{note text}
|
||||
\newcommand{\annote}[3][]{%
|
||||
% Make the underlining thicker and higher.
|
||||
\setul{1pt}{0.3ex}%
|
||||
\if@trackchanges%
|
||||
\trackingstart{#1}%
|
||||
\if@trackinmargins%
|
||||
\textsuperscript{\thefootnote}%
|
||||
\marginText{#1}{\userco{#3}}%
|
||||
\ul{#2}%
|
||||
\else%
|
||||
\if@trackinline%
|
||||
{\footnotesize\textsuperscript{\UserLabel}}%
|
||||
\ul{#2}%
|
||||
{\footnotesize\usertext{~[#3]}}%
|
||||
\else%
|
||||
\footnote{\UserLabel~\userco{#3}}%
|
||||
\ul{#2}%
|
||||
\fi%
|
||||
\fi%
|
||||
\trackingend%
|
||||
\else%
|
||||
%% if trackchanges is false ... just print text.
|
||||
#2%
|
||||
\fi%
|
||||
% Reset the underlineing
|
||||
\resetul%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- Define frontend command: \note
|
||||
%% usage: \note[Editor]{note text}
|
||||
\newcommand{\note}[2][]{%
|
||||
\if@trackchanges%
|
||||
\trackingstart{#1}%
|
||||
\if@trackinmargins%
|
||||
\textsuperscript{\thefootnote}%
|
||||
\marginText{#1}{\userco{#2}}%
|
||||
\else%
|
||||
\if@trackinline%
|
||||
{\footnotesize\textsuperscript{\UserLabel}}%
|
||||
{\footnotesize\usertext{~[#2]}}%
|
||||
\else%
|
||||
\footnote{\UserLabel~\userco{#2}}%
|
||||
\fi%
|
||||
\fi%
|
||||
\trackingend%
|
||||
\else%
|
||||
%% if trackchanges is false ... do not print notes
|
||||
\fi%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% --------------- Define frontend command: \refneeded
|
||||
%% usage: \refneeded[Editor]{note text}
|
||||
\newcommand{\refneeded}[2][]{%
|
||||
\if@trackchanges%
|
||||
\trackingstart{#1}%
|
||||
\if@trackinmargins%
|
||||
\textsuperscript{\thefootnote}%
|
||||
\marginText{#1}{\userco{REFERENCE NEEDED #2}}%
|
||||
\else%
|
||||
\if@trackinline%
|
||||
{\footnotesize\textsuperscript{\UserLabel}}%
|
||||
\ifthenelse{\equal{#2}{}}%
|
||||
{{\footnotesize\usertext{~[REFERENCE NEEDED]}}}%
|
||||
{{\footnotesize\usertext{~[REFERENCE NEEDED #2]}}}%
|
||||
\else%
|
||||
\footnote{\UserLabel~\userco{REFERENCE NEEDED #2}}%
|
||||
\fi%
|
||||
\fi%
|
||||
\trackingend%
|
||||
\else%
|
||||
%% if trackchanges is false ... do not print notes
|
||||
\fi%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% -------------- Setup for margin notes.
|
||||
\newcommand{\setupMarginpar}{
|
||||
\setlength{\marginparwidth}{\paperwidth}
|
||||
\addtolength{\marginparwidth}{-1in}
|
||||
\addtolength{\marginparwidth}{-\oddsidemargin}
|
||||
\addtolength{\marginparwidth}{-\hoffset}
|
||||
\addtolength{\marginparwidth}{-\textwidth}
|
||||
\addtolength{\marginparwidth}{-\marginparsep}
|
||||
\addtolength{\marginparwidth}{-5mm}
|
||||
}
|
||||
\newcommand{\setupMoveMargins}{
|
||||
\setlength{\oddsidemargin}{-1in}
|
||||
\addtolength{\oddsidemargin}{0.5in}
|
||||
}
|
||||
\newcommand{\setupAdjustMargins}{
|
||||
\setlength{\textwidth}{0.5\paperwidth}
|
||||
}
|
||||
\newcommand{\setupMargins}{
|
||||
\if@movemargins
|
||||
\setupMoveMargins{}
|
||||
\fi
|
||||
\if@adjustmargins
|
||||
\setupAdjustMargins{}
|
||||
\fi
|
||||
% The Margins are setup using \AtBeginDocument.
|
||||
}
|
||||
|
||||
%% --------------- Check that conflicting packages are not loaded.
|
||||
\def\TC@checkCompatibility{
|
||||
\ifx\uline\undefined
|
||||
\else
|
||||
\TC@WarningUlem
|
||||
\fi
|
||||
}
|
||||
|
||||
%% ---------------- Setup for actions to be taken after the style file has been read.
|
||||
\AtEndOfPackage{
|
||||
\if@trackchanges
|
||||
\if@trackinmargins
|
||||
\setupMargins{}
|
||||
\else
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
|
||||
%% ---------------- Setup for actions to be taken after the preamble.
|
||||
\AtBeginDocument{
|
||||
\TC@checkCompatibility
|
||||
\TC@checkDepreciated
|
||||
\if@trackchanges
|
||||
\if@trackinmargins
|
||||
\setupMarginpar
|
||||
\else
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
|
||||
%%
|
||||
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% --------------- Setup for backwards compatibility with v0.6
|
||||
\newcommand{\initialsOne}{}
|
||||
\newcommand{\initialsTwo}{}
|
||||
\newcommand{\initialsThree}{}
|
||||
\newcommand{\initialsFour}{}
|
||||
\newcommand{\initialsFive}{}
|
||||
|
||||
%% --------------- Check for depreciated options
|
||||
\def\TC@checkDepreciated{
|
||||
\ifthenelse{\equal{\initialsOne}{}}
|
||||
{}{\TC@WarningDepreciatedInitials
|
||||
\addeditor{\initialsOne}}
|
||||
\ifthenelse{\equal{\initialsTwo}{}}
|
||||
{}{\TC@WarningDepreciatedInitials
|
||||
\addeditor{\initialsTwo}}
|
||||
\ifthenelse{\equal{\initialsThree}{}}
|
||||
{}{\TC@WarningDepreciatedInitials
|
||||
\addeditor{\initialsThree}}
|
||||
\ifthenelse{\equal{\initialsFour}{}}
|
||||
{}{\TC@WarningDepreciatedInitials
|
||||
\addeditor{\initialsFour}}
|
||||
\ifthenelse{\equal{\initialsFive}{}}
|
||||
{}{\TC@WarningDepreciatedInitials
|
||||
\addeditor{\initialsFive}}
|
||||
}
|
||||
|
||||
%%
|
||||
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% --------------- Setup warnings.
|
||||
\newcommand{\TC@WarningTooManyEditors}{%
|
||||
\PackageWarningNoLine{trackchanges}{%
|
||||
A maximum of \arabic{maxeditors} editors are supported.\MessageBreak%
|
||||
Changes made by additional editors will all have\MessageBreak%
|
||||
the same color coding%
|
||||
}%
|
||||
}
|
||||
\newcommand{\TC@WarningUnknownEditor}[1]{%
|
||||
\PackageWarning{trackchanges}{%
|
||||
Editor '#1' unknown.\MessageBreak%
|
||||
}%
|
||||
}
|
||||
\newcommand{\TC@WarningUlem}{%
|
||||
\PackageWarningNoLine{trackchanges}{%
|
||||
TrackChanges is not compatable with the \MessageBreak%
|
||||
'ulem' package.\MessageBreak%
|
||||
Use the 'soul' package instead%
|
||||
}%
|
||||
}
|
||||
\newcommand{\TC@WarningDepreciatedInitials}{%
|
||||
\PackageWarningNoLine{trackchanges}{%
|
||||
The '\noexpand\renewcommand{\noexpand\initialsNum}{name}' commands\MessageBreak%
|
||||
are depreciated.\MessageBreak%
|
||||
Use '\noexpand\addeditor{name}' instead.'%
|
||||
}%
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Below are a set of definitions to add an ignore list to the soul
|
||||
%% package.
|
||||
%%
|
||||
%% This is not a default as it reimplements some of the internals of
|
||||
%% the soul package. If a new version of soul were to come out
|
||||
%% this stuff might break.
|
||||
\if@TCignoremode
|
||||
|
||||
|
||||
%% These two function allow us to turn on and off the ignore list.
|
||||
%% This is so we don't mess up soul for anyone else.
|
||||
\def\TC@SetIgnores{%
|
||||
\let\SOUL@ignores\TC@ignores%
|
||||
}
|
||||
\def\TC@ResetIgnores{%
|
||||
\let\SOUL@ignores\TC@emptyignores%
|
||||
}
|
||||
|
||||
\newtoks\TC@ignores
|
||||
\newtoks\TC@emptyignores
|
||||
|
||||
%% The commands are separated by \\. The first number is the
|
||||
%% number of inputs for the command. The command name
|
||||
%% is given next. The last number specifies which input to
|
||||
%% pass through. If the last number is zero nothing will be
|
||||
%% passed.
|
||||
|
||||
\TC@ignores={%
|
||||
\\2\textcolor{2}%
|
||||
\\1\color{0}%
|
||||
\\1\ul{1}%
|
||||
\\1\st{1}%
|
||||
\\1\hl{1}%
|
||||
\\1\caps{1}%
|
||||
\\1\so{1}%
|
||||
}
|
||||
\TC@emptyignores={}
|
||||
|
||||
%% Initialize soul not to use the ignore list.
|
||||
\let\SOUL@ignores\TC@emptyignores
|
||||
|
||||
%% This is a way to register new ignores.
|
||||
\def\tcignore#1#2#3{{%
|
||||
\edef\x{\global\TC@ignores={\the\TC@ignores
|
||||
\noexpand\\#2\noexpand#1#3}}\x
|
||||
}}
|
||||
|
||||
|
||||
%% Here I redefine \SOUL@dotoken.
|
||||
%% The new version also checks for ignores.
|
||||
\def\SOUL@dotoken#1{%
|
||||
\def\SOUL@@{\SOUL@addtoken{#1}}%
|
||||
\def\\##1##2{%
|
||||
\edef\SOUL@x{\string#1}%
|
||||
\edef\SOUL@n{\string##2}%
|
||||
\ifx\SOUL@x\SOUL@n
|
||||
\def\SOUL@@{\SOUL@docmd{##1}{#1}}%
|
||||
\else
|
||||
\edef\SOUL@n{\string##2\space}%
|
||||
\ifx\SOUL@x\SOUL@n
|
||||
\def\SOUL@@{\SOUL@docmd{##1}{#1}}%
|
||||
\fi
|
||||
\fi
|
||||
}%
|
||||
\the\SOUL@cmds
|
||||
\def\\##1##2##3{%
|
||||
\edef\SOUL@x{\string#1}%
|
||||
\edef\SOUL@n{\string##2}%
|
||||
\ifx\SOUL@x\SOUL@n
|
||||
\def\SOUL@@{\SOUL@doignore{##1}{#1}{##3}}%
|
||||
\else
|
||||
\edef\SOUL@n{\string##2\space}%
|
||||
\ifx\SOUL@x\SOUL@n
|
||||
\def\SOUL@@{\SOUL@doignore{##1}{#1}{##3}}%
|
||||
\fi
|
||||
\fi
|
||||
}%
|
||||
\the\SOUL@ignores%
|
||||
\SOUL@@
|
||||
}
|
||||
|
||||
%% This is where the actual ignoring is done.
|
||||
\def\SOUL@doignore#1#2#3{%
|
||||
\ifx2#1%
|
||||
\SOUL@doword%
|
||||
\def\SOUL@@##1##2{%
|
||||
\ifx1#3%
|
||||
\SOUL@do{##1}%
|
||||
\else\ifx2#3%
|
||||
\SOUL@do{##2}%
|
||||
\fi\fi%
|
||||
\SOUL@scan%
|
||||
}%
|
||||
\else\ifx1#1%
|
||||
\SOUL@doword%
|
||||
\def\SOUL@@##1{%
|
||||
\ifx1#3%
|
||||
\SOUL@do{##1}%
|
||||
\fi%
|
||||
\SOUL@scan%
|
||||
}%
|
||||
\else
|
||||
\SOUL@doword
|
||||
\let\SOUL@@\SOUL@scan
|
||||
\fi\fi
|
||||
\SOUL@@
|
||||
}
|
||||
|
||||
\fi
|
||||
|
||||
%%
|
||||
%%
|
||||
%% End of file trackchanges.sty
|
||||
504
rc_icmes.dat
Normal file
504
rc_icmes.dat
Normal file
|
|
@ -0,0 +1,504 @@
|
|||
1996 05 27 15 00 1996 05 29 03 00
|
||||
1996 07 01 18 00 1996 07 02 11 00
|
||||
1996 08 07 12 00 1996 08 08 10 00
|
||||
1996 12 23 17 00 1996 12 25 11 00
|
||||
1997 01 10 04 00 1997 01 11 02 00
|
||||
1997 02 10 02 00 1997 02 10 19 00
|
||||
1997 04 11 06 00 1997 04 11 19 00
|
||||
1997 04 21 10 00 1997 04 23 04 00
|
||||
1997 05 15 09 00 1997 05 16 00 00
|
||||
1997 05 26 16 00 1997 05 27 10 00
|
||||
1997 06 08 18 00 1997 06 10 00 00
|
||||
1997 06 19 07 00 1997 06 20 23 00
|
||||
1997 07 15 08 00 1997 07 16 11 00
|
||||
1997 08 03 13 00 1997 08 04 03 00
|
||||
1997 08 17 06 00 1997 08 17 20 00
|
||||
1997 09 03 13 00 1997 09 03 21 00
|
||||
1997 09 21 21 00 1997 09 22 16 00
|
||||
1997 10 01 16 00 1997 10 02 23 00
|
||||
1997 10 10 11 00 1997 10 10 22 00
|
||||
1997 10 10 22 00 1997 10 12 00 00
|
||||
1997 10 27 00 00 1997 10 28 07 00
|
||||
1997 11 07 04 00 1997 11 09 12 00
|
||||
1997 11 22 19 00 1997 11 23 14 00
|
||||
1997 11 24 00 00 1997 11 25 00 00
|
||||
1997 12 10 18 00 1997 12 12 00 00
|
||||
1997 12 30 10 00 1997 12 31 11 00
|
||||
1998 01 07 01 00 1998 01 08 22 00
|
||||
1998 01 09 07 00 1998 01 10 08 00
|
||||
1998 01 20 17 00 1998 01 21 04 00
|
||||
1998 01 21 06 00 1998 01 22 13 00
|
||||
1998 01 29 20 00 1998 01 31 01 00
|
||||
1998 02 04 04 00 1998 02 05 23 00
|
||||
1998 02 17 10 00 1998 02 17 21 00
|
||||
1998 02 19 01 00 1998 02 20 00 00
|
||||
1998 03 04 13 00 1998 03 06 09 00
|
||||
1998 03 25 13 00 1998 03 26 10 00
|
||||
1998 03 31 11 00 1998 04 03 02 00
|
||||
1998 04 11 23 00 1998 04 13 18 00
|
||||
1998 05 02 05 00 1998 05 04 02 00
|
||||
1998 05 04 10 00 1998 05 07 23 00
|
||||
1998 06 02 10 00 1998 06 02 18 00
|
||||
1998 06 14 04 00 1998 06 15 06 00
|
||||
1998 06 24 16 00 1998 06 25 23 00
|
||||
1998 06 26 04 00 1998 06 26 19 00
|
||||
1998 07 06 06 00 1998 07 09 07 00
|
||||
1998 07 11 00 00 1998 07 13 15 00
|
||||
1998 08 01 04 00 1998 08 03 10 00
|
||||
1998 08 05 13 00 1998 08 06 12 00
|
||||
1998 08 07 23 00 1998 08 09 23 00
|
||||
1998 08 10 11 00 1998 08 10 22 00
|
||||
1998 08 12 01 00 1998 08 13 14 00
|
||||
1998 08 20 06 00 1998 08 21 20 00
|
||||
1998 08 26 22 00 1998 08 28 00 00
|
||||
1998 09 23 04 00 1998 09 23 18 00
|
||||
1998 09 25 06 00 1998 09 26 16 00
|
||||
1998 10 19 04 00 1998 10 20 07 00
|
||||
1998 10 23 15 00 1998 10 24 16 00
|
||||
1998 11 07 22 00 1998 11 09 01 00
|
||||
1998 11 09 01 00 1998 11 11 01 00
|
||||
1998 11 13 02 00 1998 11 14 12 00
|
||||
1998 11 30 21 00 1998 12 01 04 00
|
||||
1998 12 29 18 00 1998 12 31 02 00
|
||||
1999 01 04 04 00 1999 01 04 22 00
|
||||
1999 01 13 15 00 1999 01 13 23 00
|
||||
1999 01 23 09 00 1999 01 23 18 00
|
||||
1999 02 13 19 00 1999 02 14 15 00
|
||||
1999 02 16 15 00 1999 02 17 11 00
|
||||
1999 02 17 16 00 1999 02 18 10 00
|
||||
1999 02 18 10 00 1999 02 20 17 00
|
||||
1999 03 10 17 00 1999 03 12 02 00
|
||||
1999 03 19 11 00 1999 03 20 12 00
|
||||
1999 04 16 18 00 1999 04 17 19 00
|
||||
1999 04 21 04 00 1999 04 22 14 00
|
||||
1999 05 15 16 00 1999 05 18 00 00
|
||||
1999 06 02 23 00 1999 06 03 22 00
|
||||
1999 06 27 22 00 1999 06 29 04 00
|
||||
1999 07 03 05 00 1999 07 06 06 00
|
||||
1999 07 06 21 00 1999 07 07 02 00
|
||||
1999 07 07 07 00 1999 07 08 04 00
|
||||
1999 07 27 17 00 1999 07 29 12 00
|
||||
1999 07 30 20 00 1999 07 31 08 00
|
||||
1999 07 31 19 00 1999 08 02 06 00
|
||||
1999 08 02 15 00 1999 08 03 15 00
|
||||
1999 08 08 20 00 1999 08 10 17 00
|
||||
1999 08 12 03 00 1999 08 14 00 00
|
||||
1999 08 20 23 00 1999 08 23 11 00
|
||||
1999 09 21 12 00 1999 09 22 12 00
|
||||
1999 09 22 19 00 1999 09 24 03 00
|
||||
1999 10 21 08 00 1999 10 22 07 00
|
||||
1999 11 12 10 00 1999 11 13 18 00
|
||||
1999 11 13 20 00 1999 11 15 00 00
|
||||
1999 11 22 00 00 1999 11 24 03 00
|
||||
1999 12 12 19 00 1999 12 13 16 00
|
||||
1999 12 14 04 00 1999 12 14 20 00
|
||||
1999 12 27 11 00 1999 12 28 04 00
|
||||
2000 01 22 17 00 2000 01 23 02 00
|
||||
2000 02 11 16 00 2000 02 11 20 00
|
||||
2000 02 12 12 00 2000 02 13 00 00
|
||||
2000 02 14 12 00 2000 02 16 08 00
|
||||
2000 02 21 05 00 2000 02 22 12 00
|
||||
2000 03 01 03 00 2000 03 02 03 00
|
||||
2000 03 19 02 00 2000 03 19 12 00
|
||||
2000 03 29 19 00 2000 04 01 00 00
|
||||
2000 04 07 06 00 2000 04 08 06 00
|
||||
2000 04 18 20 00 2000 04 19 14 00
|
||||
2000 04 24 04 00 2000 04 24 13 00
|
||||
2000 05 02 20 00 2000 05 05 10 00
|
||||
2000 05 07 00 00 2000 05 08 00 00
|
||||
2000 05 13 17 00 2000 05 14 18 00
|
||||
2000 05 15 19 00 2000 05 16 14 00
|
||||
2000 05 16 23 00 2000 05 17 07 00
|
||||
2000 05 23 09 00 2000 05 23 21 00
|
||||
2000 05 24 12 00 2000 05 27 10 00
|
||||
2000 06 04 22 00 2000 06 06 22 00
|
||||
2000 06 08 12 00 2000 06 10 17 00
|
||||
2000 06 11 09 00 2000 06 11 18 00
|
||||
2000 06 13 12 00 2000 06 14 06 00
|
||||
2000 06 18 09 00 2000 06 18 17 00
|
||||
2000 06 24 00 00 2000 06 26 08 00
|
||||
2000 06 26 10 00 2000 06 27 00 00
|
||||
2000 07 01 09 00 2000 07 03 17 00
|
||||
2000 07 11 02 00 2000 07 11 14 00
|
||||
2000 07 11 22 00 2000 07 13 03 00
|
||||
2000 07 13 13 00 2000 07 14 15 00
|
||||
2000 07 14 17 00 2000 07 15 14 00
|
||||
2000 07 15 19 00 2000 07 17 08 00
|
||||
2000 07 20 01 00 2000 07 21 08 00
|
||||
2000 07 23 15 00 2000 07 26 05 00
|
||||
2000 07 27 02 00 2000 07 28 02 00
|
||||
2000 07 28 12 00 2000 07 30 13 00
|
||||
2000 08 10 19 00 2000 08 11 21 00
|
||||
2000 08 12 05 00 2000 08 13 22 00
|
||||
2000 09 02 22 00 2000 09 03 13 00
|
||||
2000 09 08 12 00 2000 09 10 10 00
|
||||
2000 09 17 21 00 2000 09 21 00 00
|
||||
2000 10 03 10 00 2000 10 05 03 00
|
||||
2000 10 05 13 00 2000 10 07 11 00
|
||||
2000 10 13 16 00 2000 10 14 17 00
|
||||
2000 10 28 21 00 2000 10 29 22 00
|
||||
2000 11 06 17 00 2000 11 08 03 00
|
||||
2000 11 08 13 00 2000 11 09 15 00
|
||||
2000 11 11 08 00 2000 11 12 00 00
|
||||
2000 11 27 08 00 2000 11 28 03 00
|
||||
2000 11 28 11 00 2000 11 29 22 00
|
||||
2000 12 22 03 00 2000 12 22 20 00
|
||||
2000 12 23 00 00 2000 12 23 12 00
|
||||
2001 01 24 09 00 2001 01 26 07 00
|
||||
2001 03 04 04 00 2001 03 05 02 00
|
||||
2001 03 19 17 00 2001 03 22 00 00
|
||||
2001 03 27 20 00 2001 03 28 17 00
|
||||
2001 03 28 17 00 2001 03 30 18 00
|
||||
2001 03 31 05 00 2001 03 31 22 00
|
||||
2001 04 01 04 00 2001 04 03 15 00
|
||||
2001 04 04 18 00 2001 04 05 12 00
|
||||
2001 04 08 14 00 2001 04 09 04 00
|
||||
2001 04 11 22 00 2001 04 13 07 00
|
||||
2001 04 13 09 00 2001 04 14 12 00
|
||||
2001 04 15 17 00 2001 04 16 01 00
|
||||
2001 04 18 12 00 2001 04 20 11 00
|
||||
2001 04 21 23 00 2001 04 23 03 00
|
||||
2001 04 28 14 00 2001 05 01 02 00
|
||||
2001 05 03 11 00 2001 05 04 10 00
|
||||
2001 05 07 19 00 2001 05 08 07 00
|
||||
2001 05 09 12 00 2001 05 10 22 00
|
||||
2001 05 11 13 00 2001 05 12 00 00
|
||||
2001 05 28 03 00 2001 05 31 14 00
|
||||
2001 06 07 18 00 2001 06 08 07 00
|
||||
2001 06 27 03 00 2001 06 28 17 00
|
||||
2001 07 09 02 00 2001 07 11 04 00
|
||||
2001 07 13 17 00 2001 07 14 01 00
|
||||
2001 08 03 11 00 2001 08 03 14 00
|
||||
2001 08 15 05 00 2001 08 16 14 00
|
||||
2001 08 17 20 00 2001 08 19 16 00
|
||||
2001 08 30 17 00 2001 08 31 10 00
|
||||
2001 09 01 13 00 2001 09 02 22 00
|
||||
2001 09 13 18 00 2001 09 14 22 00
|
||||
2001 09 24 00 00 2001 09 24 22 00
|
||||
2001 09 25 06 00 2001 09 25 20 00
|
||||
2001 09 29 11 00 2001 10 01 00 00
|
||||
2001 10 01 08 00 2001 10 02 00 00
|
||||
2001 10 02 04 00 2001 10 02 12 00
|
||||
2001 10 02 14 00 2001 10 03 16 00
|
||||
2001 10 04 14 00 2001 10 05 19 00
|
||||
2001 10 12 04 00 2001 10 12 09 00
|
||||
2001 10 21 20 00 2001 10 25 10 00
|
||||
2001 10 27 03 00 2001 10 28 12 00
|
||||
2001 10 29 22 00 2001 10 31 13 00
|
||||
2001 10 31 20 00 2001 11 02 12 00
|
||||
2001 11 05 19 00 2001 11 06 06 00
|
||||
2001 11 06 12 00 2001 11 09 03 00
|
||||
2001 11 19 22 00 2001 11 21 13 00
|
||||
2001 11 24 14 00 2001 11 25 20 00
|
||||
2001 12 28 00 00 2001 12 29 12 00
|
||||
2001 12 30 00 00 2001 12 30 18 00
|
||||
2002 02 28 17 00 2002 03 02 00 00
|
||||
2002 03 19 05 00 2002 03 20 16 00
|
||||
2002 03 21 14 00 2002 03 22 06 00
|
||||
2002 03 24 12 00 2002 03 25 20 00
|
||||
2002 04 12 01 00 2002 04 13 13 00
|
||||
2002 04 17 16 00 2002 04 19 15 00
|
||||
2002 04 20 00 00 2002 04 21 18 00
|
||||
2002 05 11 15 00 2002 05 12 00 00
|
||||
2002 05 20 10 00 2002 05 21 22 00
|
||||
2002 05 23 20 00 2002 05 25 18 00
|
||||
2002 07 18 12 00 2002 07 19 09 00
|
||||
2002 07 20 02 00 2002 07 22 06 00
|
||||
2002 07 31 22 00 2002 08 01 09 00
|
||||
2002 08 01 09 00 2002 08 01 23 00
|
||||
2002 08 02 06 00 2002 08 04 02 00
|
||||
2002 08 19 12 00 2002 08 21 14 00
|
||||
2002 08 29 21 00 2002 08 30 06 00
|
||||
2002 09 07 12 00 2002 09 08 04 00
|
||||
2002 09 08 04 00 2002 09 08 20 00
|
||||
2002 09 08 22 00 2002 09 10 21 00
|
||||
2002 09 19 20 00 2002 09 20 21 00
|
||||
2002 09 30 20 00 2002 10 01 15 00
|
||||
2002 10 03 01 00 2002 10 04 18 00
|
||||
2002 11 17 10 00 2002 11 19 12 00
|
||||
2002 12 17 18 00 2002 12 19 12 00
|
||||
2002 12 21 03 00 2002 12 22 19 00
|
||||
2003 01 27 01 00 2003 01 28 14 00
|
||||
2003 02 01 19 00 2003 02 03 07 00
|
||||
2003 02 18 04 00 2003 02 19 16 00
|
||||
2003 03 20 12 00 2003 03 20 22 00
|
||||
2003 05 09 07 00 2003 05 11 00 00
|
||||
2003 05 29 13 00 2003 05 29 18 00
|
||||
2003 05 30 02 00 2003 05 30 16 00
|
||||
2003 05 30 22 00 2003 06 01 01 00
|
||||
2003 06 15 20 00 2003 06 16 21 00
|
||||
2003 06 17 10 00 2003 06 18 08 00
|
||||
2003 07 23 14 00 2003 07 24 16 00
|
||||
2003 08 04 22 00 2003 08 06 02 00
|
||||
2003 08 16 02 00 2003 08 17 16 00
|
||||
2003 08 18 01 00 2003 08 19 15 00
|
||||
2003 10 22 02 00 2003 10 24 15 00
|
||||
2003 10 24 21 00 2003 10 25 12 00
|
||||
2003 10 25 14 00 2003 10 26 04 00
|
||||
2003 10 26 22 00 2003 10 28 00 00
|
||||
2003 10 28 02 30 2003 10 28 09 00
|
||||
2003 10 29 11 00 2003 10 30 03 00
|
||||
2003 10 31 02 00 2003 11 02 00 00
|
||||
2003 11 20 10 00 2003 11 21 08 00
|
||||
2004 01 10 06 00 2004 01 11 05 00
|
||||
2004 01 22 08 00 2004 01 23 17 00
|
||||
2004 01 23 23 00 2004 01 25 04 00
|
||||
2004 02 17 18 00 2004 02 18 16 00
|
||||
2004 04 03 14 00 2004 04 05 18 00
|
||||
2004 04 26 17 00 2004 04 27 20 00
|
||||
2004 05 01 00 00 2004 05 01 12 00
|
||||
2004 05 01 15 00 2004 05 02 21 00
|
||||
2004 07 22 18 00 2004 07 24 08 00
|
||||
2004 07 24 14 00 2004 07 25 15 00
|
||||
2004 07 25 20 00 2004 07 26 22 00
|
||||
2004 07 27 02 00 2004 07 27 22 00
|
||||
2004 08 01 09 00 2004 08 02 04 00
|
||||
2004 08 29 19 00 2004 08 30 22 00
|
||||
2004 09 14 15 00 2004 09 16 12 00
|
||||
2004 09 18 12 00 2004 09 20 00 00
|
||||
2004 11 07 22 00 2004 11 09 10 00
|
||||
2004 11 09 20 00 2004 11 11 23 00
|
||||
2004 11 12 08 00 2004 11 13 23 00
|
||||
2004 12 12 22 00 2004 12 13 19 00
|
||||
2004 12 27 16 00 2004 12 29 02 00
|
||||
2005 01 07 15 00 2005 01 08 12 00
|
||||
2005 01 08 21 00 2005 01 09 18 00
|
||||
2005 01 16 14 00 2005 01 17 07 00
|
||||
2005 01 18 23 00 2005 01 20 03 00
|
||||
2005 01 21 19 00 2005 01 22 17 00
|
||||
2005 01 31 14 00 2005 02 02 09 00
|
||||
2005 02 18 14 00 2005 02 19 06 00
|
||||
2005 02 20 12 00 2005 02 22 07 00
|
||||
2005 02 22 14 00 2005 02 23 19 00
|
||||
2005 05 15 06 00 2005 05 19 00 00
|
||||
2005 05 20 03 00 2005 05 22 02 00
|
||||
2005 05 29 03 00 2005 05 29 15 00
|
||||
2005 05 30 01 00 2005 05 30 23 00
|
||||
2005 05 31 04 00 2005 06 01 03 00
|
||||
2005 06 12 15 00 2005 06 13 13 00
|
||||
2005 06 15 05 00 2005 06 16 09 00
|
||||
2005 06 16 17 00 2005 06 17 19 00
|
||||
2005 07 10 10 00 2005 07 12 04 00
|
||||
2005 07 17 14 00 2005 07 18 23 00
|
||||
2005 08 09 00 00 2005 08 09 19 00
|
||||
2005 08 10 06 00 2005 08 10 11 00
|
||||
2005 08 24 00 00 2005 08 24 11 00
|
||||
2005 08 24 14 00 2005 08 24 23 00
|
||||
2005 09 02 18 00 2005 09 03 04 00
|
||||
2005 09 11 05 00 2005 09 12 07 00
|
||||
2005 09 12 20 00 2005 09 13 13 00
|
||||
2005 09 13 16 00 2005 09 14 08 00
|
||||
2005 09 15 06 00 2005 09 16 18 00
|
||||
2005 09 20 18 00 2005 09 21 18 00
|
||||
2005 10 31 02 00 2005 10 31 19 00
|
||||
2005 12 31 04 00 2006 01 01 17 00
|
||||
2006 02 05 20 00 2006 02 06 12 00
|
||||
2006 04 13 15 00 2006 04 14 07 00
|
||||
2006 04 14 13 00 2006 04 14 21 00
|
||||
2006 07 10 21 00 2006 07 11 19 00
|
||||
2006 08 20 13 00 2006 08 21 16 00
|
||||
2006 08 30 20 00 2006 09 01 07 00
|
||||
2006 09 30 08 00 2006 09 30 20 00
|
||||
2006 11 01 17 00 2006 11 02 14 00
|
||||
2006 11 18 10 00 2006 11 20 02 00
|
||||
2006 11 29 05 00 2006 11 30 10 00
|
||||
2006 12 14 22 00 2006 12 15 13 00
|
||||
2006 12 15 20 00 2006 12 16 19 00
|
||||
2006 12 17 00 00 2006 12 17 17 00
|
||||
2007 01 14 12 00 2007 01 15 07 00
|
||||
2007 11 19 23 00 2007 11 20 12 00
|
||||
2008 09 17 04 00 2008 09 18 08 00
|
||||
2008 12 04 12 00 2008 12 05 11 00
|
||||
2008 12 17 03 00 2008 12 17 14 00
|
||||
2009 01 19 02 00 2009 01 19 05 00
|
||||
2009 01 26 10 00 2009 01 26 15 00
|
||||
2009 02 04 00 00 2009 02 04 16 00
|
||||
2009 06 04 02 00 2009 06 05 16 00
|
||||
2009 06 27 16 00 2009 06 28 16 00
|
||||
2009 07 21 01 00 2009 07 22 04 00
|
||||
2009 09 30 06 00 2009 10 01 00 00
|
||||
2009 10 29 05 00 2009 10 29 23 00
|
||||
2009 11 14 10 00 2009 11 15 00 00
|
||||
2009 12 12 20 00 2009 12 13 22 00
|
||||
2009 12 19 13 00 2009 12 20 17 00
|
||||
2010 01 01 22 00 2010 01 03 10 00
|
||||
2010 02 07 18 00 2010 02 08 22 00
|
||||
2010 02 11 08 00 2010 02 12 03 00
|
||||
2010 02 19 15 00 2010 02 20 18 00
|
||||
2010 02 21 00 00 2010 02 22 00 00
|
||||
2010 02 22 13 00 2010 02 22 22 00
|
||||
2010 04 05 12 00 2010 04 06 14 00
|
||||
2010 04 09 18 00 2010 04 10 16 00
|
||||
2010 04 12 01 00 2010 04 12 15 00
|
||||
2010 04 30 06 00 2010 05 01 12 00
|
||||
2010 05 28 19 00 2010 05 29 17 00
|
||||
2010 06 21 06 00 2010 06 22 14 00
|
||||
2010 08 04 10 00 2010 08 05 00 00
|
||||
2010 10 31 05 00 2010 11 01 21 00
|
||||
2010 12 28 03 00 2010 12 28 15 00
|
||||
2011 01 24 10 00 2011 01 25 12 00
|
||||
2011 02 04 13 00 2011 02 04 20 00
|
||||
2011 02 18 19 00 2011 02 20 08 00
|
||||
2011 03 06 09 00 2011 03 08 06 00
|
||||
2011 03 29 23 00 2011 03 31 04 00
|
||||
2011 05 28 05 00 2011 05 28 21 00
|
||||
2011 06 05 02 00 2011 06 05 19 00
|
||||
2011 06 17 05 00 2011 06 17 13 00
|
||||
2011 07 06 17 00 2011 07 07 12 00
|
||||
2011 07 15 04 00 2011 07 16 15 00
|
||||
2011 08 05 05 00 2011 08 05 14 00
|
||||
2011 08 06 22 00 2011 08 07 22 00
|
||||
2011 09 08 10 00 2011 09 09 12 00
|
||||
2011 09 10 03 00 2011 09 10 15 00
|
||||
2011 09 16 19 00 2011 09 17 05 00
|
||||
2011 09 17 14 00 2011 09 18 06 00
|
||||
2011 09 18 12 00 2011 09 18 21 00
|
||||
2011 09 22 15 00 2011 09 23 03 00
|
||||
2011 09 26 20 00 2011 09 28 15 00
|
||||
2011 10 05 10 00 2011 10 05 22 00
|
||||
2011 10 06 12 00 2011 10 06 23 00
|
||||
2011 10 07 02 00 2011 10 07 17 00
|
||||
2011 10 22 21 00 2011 10 23 16 00
|
||||
2011 10 24 22 00 2011 10 25 16 00
|
||||
2011 10 31 01 00 2011 10 31 15 00
|
||||
2011 11 02 01 00 2011 11 03 04 00
|
||||
2011 11 07 17 00 2011 11 07 23 00
|
||||
2011 11 13 10 00 2011 11 15 02 00
|
||||
2011 11 29 00 00 2011 11 29 08 00
|
||||
2011 12 02 18 00 2011 12 03 07 00
|
||||
2011 12 25 02 00 2011 12 25 17 00
|
||||
2011 12 29 22 00 2011 12 30 09 00
|
||||
2012 01 21 06 00 2012 01 22 08 00
|
||||
2012 01 22 23 00 2012 01 23 07 00
|
||||
2012 02 14 21 00 2012 02 16 06 00
|
||||
2012 02 16 14 00 2012 02 18 00 00
|
||||
2012 02 27 19 00 2012 02 28 16 00
|
||||
2012 02 29 05 00 2012 03 01 00 00
|
||||
2012 03 02 21 00 2012 03 04 02 00
|
||||
2012 03 06 08 00 2012 03 06 15 00
|
||||
2012 03 09 03 00 2012 03 11 07 00
|
||||
2012 03 15 17 00 2012 03 16 10 00
|
||||
2012 04 23 17 00 2012 04 24 05 00
|
||||
2012 04 26 00 00 2012 04 27 18 00
|
||||
2012 05 16 16 00 2012 05 17 22 00
|
||||
2012 06 08 10 00 2012 06 10 14 00
|
||||
2012 06 16 23 00 2012 06 17 12 00
|
||||
2012 07 05 00 00 2012 07 06 08 00
|
||||
2012 07 09 00 00 2012 07 09 14 00
|
||||
2012 07 15 06 00 2012 07 17 05 00
|
||||
2012 07 22 11 00 2012 07 23 16 00
|
||||
2012 09 01 07 00 2012 09 03 15 00
|
||||
2012 09 04 11 00 2012 09 05 02 00
|
||||
2012 09 05 06 00 2012 09 05 18 00
|
||||
2012 09 06 02 00 2012 09 06 15 00
|
||||
2012 09 30 14 00 2012 09 30 20 00
|
||||
2012 10 01 00 00 2012 10 02 00 00
|
||||
2012 10 02 22 00 2012 10 03 06 00
|
||||
2012 10 08 18 00 2012 10 09 12 00
|
||||
2012 10 12 22 00 2012 10 13 10 00
|
||||
2012 11 01 00 00 2012 11 02 03 00
|
||||
2012 11 09 03 00 2012 11 09 15 00
|
||||
2012 11 13 08 00 2012 11 14 03 00
|
||||
2012 11 24 12 00 2012 11 25 10 00
|
||||
2012 11 26 12 00 2012 11 28 05 00
|
||||
2012 11 28 18 00 2012 11 29 14 00
|
||||
2012 12 14 07 00 2012 12 14 17 00
|
||||
2013 01 17 16 00 2013 01 18 12 00
|
||||
2013 01 19 00 00 2013 01 19 17 00
|
||||
2013 02 14 08 00 2013 02 16 14 00
|
||||
2013 02 17 10 00 2013 02 17 19 00
|
||||
2013 03 17 15 00 2013 03 19 16 00
|
||||
2013 03 20 18 00 2013 03 20 22 00
|
||||
2013 04 14 17 00 2013 04 15 23 00
|
||||
2013 04 30 12 00 2013 05 01 07 00
|
||||
2013 05 01 11 00 2013 05 01 18 00
|
||||
2013 05 25 23 00 2013 05 26 22 00
|
||||
2013 06 06 14 00 2013 06 08 00 00
|
||||
2013 06 08 10 00 2013 06 08 20 00
|
||||
2013 06 28 02 00 2013 06 29 12 00
|
||||
2013 07 05 01 00 2013 07 07 16 00
|
||||
2013 07 13 05 00 2013 07 15 00 00
|
||||
2013 08 21 08 00 2013 08 21 14 00
|
||||
2013 08 23 20 00 2013 08 25 03 00
|
||||
2013 08 25 03 00 2013 08 26 03 00
|
||||
2013 10 02 23 00 2013 10 03 22 00
|
||||
2013 10 09 09 00 2013 10 11 00 00
|
||||
2013 11 08 22 00 2013 11 09 07 00
|
||||
2013 11 11 17 00 2013 11 12 03 00
|
||||
2013 12 01 11 00 2013 12 02 23 00
|
||||
2013 12 15 16 00 2013 12 16 05 00
|
||||
2013 12 25 05 00 2013 12 25 17 00
|
||||
2014 02 06 03 00 2014 02 07 17 00
|
||||
2014 02 08 01 00 2014 02 09 12 00
|
||||
2014 02 11 12 00 2014 02 13 10 00
|
||||
2014 02 16 05 00 2014 02 16 16 00
|
||||
2014 02 17 03 00 2014 02 17 16 00
|
||||
2014 02 18 15 00 2014 02 19 07 00
|
||||
2014 02 19 12 00 2014 02 20 03 00
|
||||
2014 02 21 02 00 2014 02 22 12 00
|
||||
2014 04 05 22 00 2014 04 07 05 00
|
||||
2014 04 11 06 00 2014 04 12 20 00
|
||||
2014 04 18 19 00 2014 04 20 00 00
|
||||
2014 04 20 01 00 2014 04 20 12 00
|
||||
2014 04 21 07 00 2014 04 22 09 00
|
||||
2014 04 29 20 00 2014 04 30 21 00
|
||||
2014 06 08 20 00 2014 06 10 17 00
|
||||
2014 08 19 16 00 2014 08 21 05 00
|
||||
2014 09 12 22 00 2014 09 14 02 00
|
||||
2014 09 17 02 00 2014 09 18 20 00
|
||||
2014 11 11 07 00 2014 11 11 20 00
|
||||
2014 12 22 04 00 2014 12 22 17 00
|
||||
2015 01 02 15 00 2015 01 02 22 00
|
||||
2015 01 03 14 00 2015 01 04 16 00
|
||||
2015 01 07 07 00 2015 01 07 20 00
|
||||
2015 03 16 14 00 2015 03 16 23 00
|
||||
2015 03 17 13 00 2015 03 18 05 00
|
||||
2015 03 22 02 00 2015 03 22 20 00
|
||||
2015 03 28 11 00 2015 03 29 11 00
|
||||
2015 03 29 19 00 2015 03 30 12 00
|
||||
2015 03 31 18 00 2015 04 01 10 00
|
||||
2015 04 09 11 00 2015 04 09 22 00
|
||||
2015 04 10 13 00 2015 04 11 09 00
|
||||
2015 05 06 12 00 2015 05 07 21 00
|
||||
2015 05 07 21 00 2015 05 09 04 00
|
||||
2015 05 10 12 00 2015 05 11 02 00
|
||||
2015 05 18 20 00 2015 05 19 02 00
|
||||
2015 06 23 02 00 2015 06 24 14 00
|
||||
2015 06 25 10 00 2015 06 26 06 00
|
||||
2015 06 26 12 00 2015 06 27 02 00
|
||||
2015 07 13 06 00 2015 07 14 15 00
|
||||
2015 08 07 16 00 2015 08 08 14 00
|
||||
2015 08 15 21 00 2015 08 16 08 00
|
||||
2015 08 26 08 00 2015 08 28 10 00
|
||||
2015 09 08 00 00 2015 09 09 15 00
|
||||
2015 09 13 07 00 2015 09 13 18 00
|
||||
2015 09 21 08 00 2015 09 22 01 00
|
||||
2015 10 25 14 00 2015 10 27 04 00
|
||||
2015 11 04 15 00 2015 11 04 19 00
|
||||
2015 11 07 06 00 2015 11 08 16 00
|
||||
2015 12 20 03 00 2015 12 21 20 00
|
||||
2015 12 31 17 00 2016 01 02 11 00
|
||||
2016 01 19 10 00 2016 01 21 00 00
|
||||
2016 01 24 18 00 2016 01 26 18 00
|
||||
2016 03 05 19 00 2016 03 06 15 00
|
||||
2016 03 20 14 00 2016 03 21 04 00
|
||||
2016 04 14 09 00 2016 04 15 04 00
|
||||
2016 04 17 03 00 2016 04 18 08 00
|
||||
2016 07 20 07 00 2016 07 22 15 00
|
||||
2016 07 24 21 00 2016 07 25 16 00
|
||||
2016 07 25 22 00 2016 07 26 10 00
|
||||
2016 08 02 14 00 2016 08 03 03 00
|
||||
2016 10 13 06 00 2016 10 14 16 00
|
||||
2016 11 04 18 00 2016 11 05 21 00
|
||||
2016 11 10 00 00 2016 11 10 16 00
|
||||
2017 04 04 04 00 2017 04 04 14 00
|
||||
2017 04 09 00 00 2017 04 10 08 00
|
||||
2017 04 14 00 00 2017 04 15 00 00
|
||||
2017 05 27 22 00 2017 05 29 14 00
|
||||
2017 07 16 15 00 2017 07 17 20 00
|
||||
2017 08 22 04 00 2017 08 23 18 00
|
||||
2017 09 07 20 00 2017 09 08 04 00
|
||||
2017 09 08 11 00 2017 09 10 09 00
|
||||
2017 12 25 00 00 2017 12 26 04 00
|
||||
2018 03 09 22 00 2018 03 11 00 00
|
||||
2018 05 13 06 00 2018 05 13 14 00
|
||||
Loading…
Add table
Add a link
Reference in a new issue