| Time Routines in Mice |
Table of ContentsTime Routines in Mice Abstract References Introduction Intended Audience Detection of Non-native Text Files Overview If You're in a Hurry The J2000 Epoch Leapseconds Converting Time Strings to Numeric Representations Converting Numeric Representations to Time Strings Initialization Leapseconds Kernel SPK and PCK kernels Input String Conversion Parsing Time Strings cspice_str2et Labels (A.M. and P.M.) For the Record Labels (Time Zones) For the Record Labels ( TDT, TDT, and UTC ) Changing Default Behavior Abbreviated Years Default Time Systems and Time Zone Changing the Time System Time Zones Calendars Output Conversion cspice_timout cspice_et2utc cspice_etcal Converting Between Uniform Time Scales Local Solar Time Utility Routines Example Appendix A. Background Material Coordinated Universal Time (UTC) International Atomic Time (TAI) Naming the seconds of TAI --- UTC Tying UTC to the Earth's Rotation Leapseconds The Leapseconds Kernel (LSK) Ephemeris Time (ET) Barycentric Dynamical Time (TDB) Terrestrial Dynamical Time (TDT) The Relationship between TDT and TDB In the Toolkit ET Means TDB Naming the Seconds of Ephemeris Time Some Consequences of Leapseconds Computing UTC from TDB (cspice_deltet) Problems With the Formulation of DeltaET Spacecraft Clock (SCLK) Julian Date The abbreviation JD Appendix B. Parsing Time Strings An Outline of the Parser Tokenizing the Input String Combining and Removing Tokens Initial Token Processing Julian Dates Calendar Dates ISO Formats Other Calendar Formats Built in Representations Last Resort Production Rules Conclusion Appendix C: Document Revision History September 9, 2015 April 9, 2009 December 23, 2004 22 July 1997 15 October 1996 2012 JUN 14, EDW (JPL) 2009 APR 09, BVS (JPL) 30 June 1994 13 April 1992 Time Routines in Mice
Abstract
References
For a general and very accessible discussion of time we recommend:
Introduction
In addition to the discussion of time software, there are two appendices to this document. The first provides basic background material on various time systems. The second discusses the details of how time strings are parsed in the Mice system. The Toolkit also supports conversion between spacecraft clock (SCLK) and Barycentric Dynamical Time (TDB). However, spacecraft clock conversion is mentioned only in the context of background information in Appendix A. Mice routines dealing with spacecraft clock are discussed in SCLK Required Reading (sclk.req). Intended Audience
Detection of Non-native Text Files
Overview
A brief description of the various time systems is given in Appendix A. If You're in a Hurry
Loading a Leapseconds Kernel
cspice_furnsh( file )Converting strings to ET
et = cspice_str2et( string )Converting ET to a string
output = cspice_timout( et, pictur ) utcstr = cspice_et2utc( et, format, prec ) string = cspice_etcal( et )Runtime modification of behavior
cspice_timdef_set ( item, value ) cspice_timdef_get ( item ) cspice_tsetyr( year )Formatting aid
[ pictur, ok, error ] = cspice_tpictr( sample )Converting ET to local solar time on the surface of an object.
[ hr, min, sec, time, ampm ] = ... cspice_et2lst( et, body, lon, type)Utilities
[ delta ] = cspice_deltet( epoch, eptype )Time constants
double = cspice_b1900 double = cspice_b1950 double = cspice_j1900 double = cspice_j1950 double = cspice_j2000 double = cspice_j2100 double = cspice_jyear double = cspice_spd double = cspice_tyear The J2000 Epoch
(As we've just seen ``J2000'' is used to name the fundamental inertial frame and a particular epoch. This can sometimes be confusing if you are not careful to distinguish the context in which the term ``J2000'' is used.) Leapseconds
cspice_furnsh( '<file name of leapseconds kernel>' )The leapseconds kernel is discussed in more detail later in this document. Converting Time Strings to Numeric Representations
et = cspice_str2et( string )cspice_str2et computes the ephemeris epoch corresponding to an input string. The ephemeris epoch is represented as seconds past the epoch of the J2000 reference frame in the time system known as Barycentric Dynamical Time (TDB). This time system is also referred to as Ephemeris Time (ET) throughout the Mice Toolkit. The variety of ways people have developed for representing times is enormous. It is unlikely that any single subroutine can accommodate all of the custom time formats that have arisen in various computing contexts. However, we believe that cspice_str2et correctly interprets most time formats used throughout the planetary science community. For example cspice_str2et supports ISO time formats, UNIX `date` output formats. VMS time formats, MS-DOS formats, epochs in both the A.D. and B.C. eras, time zones, etc. Converting Numeric Representations to Time Strings
[ output ] = cspice_timout( et, pictur )Given an epoch ET expressed as double precision seconds past J2000 and a format picture pictur that you would like to use as a model for the output time strings, cspice_timout produces a string representing the input ET in a format that matches the one specified by pictur with the length of the string lenout. Using cspice_timout you can produce a time string in almost any format you desire (including many that cannot be recognized by any of the Mice software). To assist in creating a format picture the routine cspice_tpictr is provided. cspice_tpictr takes a sample time string and produces the format picture that corresponds to the sample. By using cspice_tpictr and cspice_timout together you can easily produce strings in the format you are used to seeing. Less flexible, but slightly easier to use, cspice_et2utc has been the standard Mice time formatting routine for many years.
[ utcstr ] = cspice_et2utc(et, format, prec)This routine supports several fixed formats: calendar, Julian Date (UTC), day-of-year, ISO year/month/day, and ISO year/day-of-year. You may adjust the number of digits that follow the decimal point in the seconds component (or day in the Julian Date format). InitializationLeapseconds Kernel
cspice_furnsh( kernel )`kernel' is the name of a ``leapseconds kernel.'' Leapseconds kernels are text based kernels containing the epochs of leap seconds and other constants required by the time conversion routines. The leapseconds kernel needs to be loaded just once per program run; normally, the leapseconds kernel is loaded in a program's initialization section. The precise contents of the leapseconds kernel are discussed in the section ``Computing Delta ET'' below. Text kernels and the routine cspice_furnsh are discussed in more detail in KERNEL Required Reading, kernel.req. SPK and PCK kernels
SPK files are loaded using the routine cspice_furnsh.
cspice_furnsh( '<spk file name>' )PCK files are usually text based. Text based kernels are loaded by calling cspice_furnsh.
cspice_furnsh( kernel )Occasionally, PCK, files are binary (DAF based) files that contain the orientation of an object with respect to an inertial frame. Binary PCK files are loaded with the routine cspice_furnsh.
cspice_furnsh( '<binary pck file name>' )As with the leapseconds kernel, SPK and PCK files need to be loaded just once per program run---usually at program initialization. Input String Conversion
string = 'Oct 1, 1996 09:12:32';However, arithmetic is most easily performed with numeric representations of time. In Mice we represent epochs as some number of double precision seconds past the J2000 epoch. to assign meaning to the string. Below are a number of examples of strings and the interpretation assigned to the various components. Mice contains one routine for converting strings directly to ``seconds past 2000.'' It is cspice_str2et This routine takes a string as input and produces a double precision number that gives the number of seconds past the J2000 epoch corresponding to the input string. The method of analyzing the input string and assigning meaning to its various components is called ``parsing'' the string. Below are a number of examples of strings and the interpretation assigned to the various components. ISO (T) Formats.
String Year Mon DOY DOM HR Min Sec ---------------------------- ---- --- --- --- -- --- ------ 1996-12-18T12:28:28 1996 Dec na 18 12 28 28 1986-01-18T12 1986 Jan na 18 12 00 00 1986-01-18T12:19 1986 Jan na 18 12 19 00 1986-01-18T12:19:52.18 1986 Jan na 18 12 19 52.18 1995-08T18:28:12 1995 na 008 na 18 28 12 1995-18T 1995 na 018 na 00 00 00Calendar Formats.
String Year Mon DOM HR Min Sec ---------------------------- ---- --- --- -- --- ------ Tue Aug 6 11:10:57 1996 1996 Aug 06 11 10 57 1 DEC 1997 12:28:29.192 1997 Dec 01 12 28 29.192 2/3/1996 17:18:12.002 1996 Feb 03 17 18 12.002 Mar 2 12:18:17.287 1993 1993 Mar 02 12 18 17.287 1992 11:18:28 3 Jul 1992 Jul 03 11 18 28 June 12, 1989 01:21 1989 Jun 12 01 21 00 1978/3/12 23:28:59.29 1978 Mar 12 23 28 59.29 17JUN1982 18:28:28 1982 Jun 17 18 28 28 13:28:28.128 1992 27 Jun 1992 Jun 27 13 28 28.128 1972 27 jun 12:29 1972 Jun 27 12 29 00 '93 Jan 23 12:29:47.289 1993* Jan 23 12 29 47.289 27 Jan 3, 19:12:28.182 2027* Jan 03 19 12 28.182 23 A.D. APR 4, 18:28:29.29 0023 Apr 04 18 28 29.29 18 B.C. Jun 3, 12:29:28.291 -017 Jun 03 12 29 28.291 29 Jun 30 12:29:29.298 2029+ Jun 30 12 29 29.298 29 Jun '30 12:29:29.298 2030* Jun 29 12 29 29.298Day of Year Formats
String Year DOY HR Min Sec ---------------------------- ---- --- -- --- ------ 1997-162::12:18:28.827 1997 162 12 18 28.827 162-1996/12:28:28.287 1996 162 12 28 28.287 1993-321/12:28:28.287 1993 231 12 28 28.287 1992 183// 12 18 19 1992 183 12 18 19 17:28:01.287 1992-272// 1992 272 17 28 01.287 17:28:01.282 272-1994// 1994 272 17 28 01.282 '92-271/ 12:28:30.291 1992* 271 12 28 30.291 92-182/ 18:28:28.281 1992* 182 18 28 28.281 182-92/ 12:29:29.192 0182+ 092 12 29 29.192 182-'92/ 12:28:29.182 1992 182 12 28 29.182Julian Date Strings
jd 28272.291 Julian Date 28272.291 2451515.2981 (JD) Julian Date 2451515.2981 2451515.2981 JD Julian Date 2451515.2981Abbreviations Used in Tables
na --- Not Applicable Mon --- Month DOY --- Day of Year DOM --- Day of Month Wkday --- Weekday Hr --- Hour Min --- Minutes Sec --- Seconds
Parsing Time Strings
The following substrings are immediately recognizable.
The case of the letters in these substrings does not matter. For example all of the various ways of writing 'TDB' ( 'TDB', 'tDB', ... 'tdb') are recognized as 'TDB'. It is not necessary to leave space between the various substrings. For example JDTDT and JDUTC are recognized as 'JD' followed by 'TDT' and 'JD' followed by 'UTC' respectively. To determine the meaning of the numeric tokens in the input string, a set of transformation rules are applied to the full set of tokens in the string. These transformations are repeated until the meaning of every token has been determined or until further transformations yield no new clues into the meaning of the numeric tokens. Here is an overview of the rules that are applied to the various tokens in the string.
Year Month Day Month Day Year Year Day Month
cspice_str2et
1988 June 13, 3:29:48There is nothing in this string to indicate what time system the date and time belong to. Moreover, there is nothing to indicate whether the time is based on a 24-hour clock or twelve hour clock. In the absence of such indicators, the default interpretation of this string is to regard the time of day to be a time on a 24-hour clock in the UTC time system. The date is a date on the Gregorian Calendar (this is the calendar used in nearly all western societies). Labels (A.M. and P.M.)
1988 June 13, 3:29:48 P.M.is still regarded as a UTC epoch. However, with the addition of the ``P.M.'' label it is now interpreted as the same epoch as the unlabeled epoch 1988 June 13, 15:29:48. Similarly
1988 June 13, 12:29:48 A.M.is interpreted as
1988 June 13, 00:29:48on the 24-hour clock. For the Record
Labels (Time Zones)
1988 June 13, 3:29:48 P.M. PSTis interpreted as an epoch in the Pacific Standard Time system. This is equivalent to
1988 June 13, 23:29:48 UTCAll of the standard abbreviations for U.S. time zones are recognized by the time parser.
EST --- Eastern Standard Time ( UTC-5:00 ) CST --- Central Standard Time ( UTC-6:00 ) MST --- Mountain Standard Time ( UTC-7:00 ) PST --- Pacific Standard Time ( UTC-8:00 ) EDT --- Eastern Daylight Time ( UTC-4:00 ) CDT --- Central Daylight Time ( UTC-5:00 ) MDT --- Mountain Daylight Time ( UTC-6:00 ) PDT --- Pacific Daylight Time ( UTC-7:00 )In addition, any other time zone may be specified by representing its offset from UTC. To specify an offset from UTC you need to create an offset label. The label starts with the letters `UTC' followed by a `+' for time zones east of Greenwich and `-' for time zones west of Greenwich. This is followed by the number of hours to add or subtract from UTC. This is optionally followed by a colon `:' and the number of minutes to add or subtract to get the local time zone. Thus to specify the time zone of Calcutta (which is 5 and 1/2 hours ahead of UTC) you would specify the time zone to be UTC+5:30. To specify the time zone of Newfoundland (which is 3 and 1/2 hours behind UTC) use the offset notation UTC-3:30. For the Record
1995 December 31 23:59:60.5 (UTC) 1996 January 1, 05:29:60.5 (UTC+5:30 --- Calcutta Time) 1995 December 31, 20:29:60.5 (UTC-3:30 --- Newfoundland) 1995 December 31 18:59:60.5 (EST) 1995 December 31 17:59:60.5 (CST) 1995 December 31 16:59:60.5 (MST) 1995 December 31 15:59:60.5 (PST) Labels ( TDT, TDT, and UTC )
In these systems there are no leapseconds; every day has exactly 86400 seconds. TDB times are written as
1988 June 13, 12:29:48 TDBTDT times are written as:
1988 June 13, 12:29:48 TDTTo add clarity or to override any changes you happen to make to the default behavior of ET2STR (see below) you may add the label ``UTC'' to any time string.
1998 Jun 13, 12:29:48 UTCNote that the system label may be placed anywhere in the time string. All of the following will be understood by the time parsing software:
TDB 1988 June 13, 12:29:48 1988 June 13, 12:29:48 TDB 1988 June 13, TDB 12:29:48 Changing Default Behavior
Abbreviated Years
cspice_tsetyr( 1972 )Note that this change affects the behavior of all three string conversion routines. Default Time Systems and Time Zone
cspice_timdef_set cspice_timdef_getThese routines respectively enable the caller to set a default time system attribute or retrieve the current value of such an attribute. When a string is presented without a time system or time zone label cspice_str2et assumes that the string represents a time in a default time zone or time system. If you take no action, the default time system is UTC. (There is no time zone offset; UTC is the same as UTC+00:00) You can override the default by simply including the time zone or time system of interest in the input time string. However, under some circumstances you may find that you almost always use the TDB time system. In such a case you would normally need to include the TDB label in the time string every time you use cspice_str2et. Hence, the defaults used by cspice_str2et might be a hindrance rather than a convenience. With this possibility in mind, cspice_str2et has been designed so that you may alter its default behavior with regard to default time system or time zone. To change the default time system or time zone use the routine cspice_timdef_set. (Keep in mind that if you specify a time zone or time system label in the input time string the default time zone or system is not used. The label in the string is used to determine the time zone or time system.) Changing the Time System
cspice_timdef_set ( 'SYSTEM', 'UTC' ) cspice_timdef_set ( 'SYSTEM', 'TDB' ) cspice_timdef_set ( 'SYSTEM', 'TDT' )Note that setting a time system turns off any default time zone you may have set using cspice_timdef_set. Time Zones
cspice_timdef_set ( 'ZONE', 'PST' )Note that setting a time zone turns off any default time system you may have set via cspice_timdef_set. Calendars
Both the Gregorian and Julian calendars can be extended forward and backward in time indefinitely. The default behavior of cspice_str2et is to use the Gregorian calendar for all epochs. However, using cspice_timdef_set you can set the default calendar to one of three: GREGORIAN, JULIAN, or MIXED:
cspice_timdef_set ( 'CALENDAR', 'GREGORIAN' ) cspice_timdef_set ( 'CALENDAR', 'JULIAN' ) cspice_timdef_set ( 'CALENDAR', 'MIXED' )The ``MIXED'' calendar assumes that calendar strings for epochs prior to October 5, 1582 belong to the Julian Calendar; strings for later epochs are assumed to belong to the Gregorian Calendar. The specification of a calendar, does not affect a previous setting of a time system or time zone. You can change the calendar used by cspice_str2et only through the routine cspice_timdef_set; there are no labels recognized by cspice_str2et for the various calendars. Output Conversion
cspice_timout
[ output ] = cspice_timout( et, pictur )where
04:29:29.292 Jan 13, 1996The value of `pictur' to use to create time strings that are similar in appearance to the example string is:
pictur = 'HR:MN:SC.### Mon DD, YYYY ::RND';Most of this components in `pictur' are fairly obvious. The exception is the substring
'::RND'.This substring tells cspice_timout to round the seconds portion of the output string instead of simply truncating. (Note that the case of the letters is significant in pictur.) cspice_timout can produce strings representing epochs in the time systems (UTC, TDB, TDT) or any time zone, and on either the Julian, Gregorian Calendar or Mixed Calendar. You may round or truncate numeric components. The rules for constructing pictur are spelled out in the header to cspice_timout. However, you may very well never need to learn these rules. Mice contains the routine cspice_tpictr that can construct a time format picture for you from a sample time string. Returning to the example above, if the following block of code is executed, pictur will contain the format picture that will yield output strings similar to our example string.
exampl = '04:29:29.292 Jan 13, 1996'; [pictur, ok, errmsg] = cspice_tpictr( exampl )The arguments ok and error are outputs from cspice_tpictr. They are present because some strings are not recognized as time strings. cspice_tpictr recognizes the same set of time strings as does cspice_str2et. However, if you want your output string to be in a system other than UTC you must supply the label for that system in your example string. cspice_tpictr can construct format pictures for strings that are not accepted by the string conversion routines. For example, if you would like to suppress the year in a calendar output format, you could use the following example string:
exampl = 'Jan 12, 02:28:29.### A.M. (PDT)';Even though this string is ambiguous as an epoch (there's no year specified), it is sufficient for determining a picture that describes its format. If you decide to use cspice_tpictr with inputs like this, be sure to check the output flag OK. Even though you know what is intended, cspice_tpictr may have problems with some ambiguous time strings. cspice_et2utc
Format Name Example ------ ----------- -------------------------- 'C' Calendar '1979 JUL 04 14:19:57.184' 'D' Day of Year '1979-114 // 14:19:57.184' 'J' Julian Date 'JD 2433282.529' 'ISOC' ISO Calendar '1987-04-12T16:31:12.814' 'ISOD' ISO Day of Year '1987-102T16:31:12.814'In addition, you may specify the number of decimal places in the fractional part of the seconds token or the Julian Date (three, in the examples above). Note that Julian Dates are prefaced with the character string `JD' (and are UTC Julian Dates). This allows strings generated by cspice_et2utc to be used later as inputs to cspice_str2et. cspice_etcal
Converting Between Uniform Time Scales
We use the term uniform time scale to refer to those representations of time that are numeric (each epoch is represented by a number) and additive. A numeric time system is additive if given the representations E1 and E2 of any pair of successive epochs, the time elapsed between the epochs is given by the difference E2 - E1. Conversion between uniform time scales can be carried out via the double precision function cspice_unitim. The uniform time scales that are supported by this routine are:
'TAI' International Atomic Time. 'TDB' Barycentric Dynamical Time. 'TDT' Terrestrial Dynamical Time. 'ET' Ephemeris time 'JDTDB' Julian Date relative to TDB. 'JDTDT' Julian Date relative to TDT. 'JED' Julian Ephemeris date. * In the @SPICE system ET is synonymous to TDB. ** In the @SPICE system JED is synonymous to JDTDB. Local Solar Time
Formally, the local solar time at a site on a body is the difference between the planetocentric longitude of the site and the planetocentric longitude of the Sun as seen from the center of the body. The angular difference in these two longitudes is measured in hours, minutes, and seconds in the same sense that hours, minutes and seconds are used to measure right ascension--- 24 hours in 360 degrees; 60 minutes in an hour; 60 seconds in a minute. When the sun in on the zenith meridian the hour is defined to be 12. Finally, the hours increase from sunrise to sunset. Because of these conventions, an hour of local solar time will not be of the same duration as a UTC hour. In the case of a site on Mars, a solar hour will be approximately 62 UTC minutes. Local solar time for a specific site can be computed using the routine cspice_et2lst (ET to Local Solar Time). Utility Routines
Example
Note that the data necessary to convert between UTC and ET are loaded into the kernel pool just once---typically during program initialization--- after which the conversion may be performed at any level within the program.
function example() % % Convert between UTC and ET interactively, and convert ET % back to UTC in calendar format, DOY format, and as a % Julian date. % % Requires a leapseconds kernel. % SPICETRUE = logical(1); SPICEFALSE = logical(0); cont = SPICETRUE; % % Get the name of the leapseconds kernel file. % disp( 'We need to load a leapseconds kernel.' ) leap = input( 'Kernel Name: ', 's' ); % % Load the leapseconds kernel into the kernel pool. % cspice_furnsh( leap ); % % Create pictures for producing strings similar to % those below. % examp1 = 'Fri Oct 04, 08:57:28.000 (UTC) 1996'; examp2 = 'Fri Oct 04, 08:57:28.000 (PST) 1996'; [ pictr1, ok, error ] = cspice_tpictr( examp1 ); [ pictr2, ok, error ] = cspice_tpictr( examp2 ); % % Compute result for each new UTC epoch. % while ( cont == SPICETRUE ) disp( ' ' ) str = input( 'Enter a time: ', 's' ); et = cspice_str2et( str ); disp( ' ' ) txt = sprintf( ... 'Input time converts to ET (sec past J2000) %f', ... et ); disp( txt ) utc = cspice_timout( et, pictr1 ); pst = cspice_timout( et, pictr2 ); doy = cspice_et2utc( et, 'ISOC', 3 ); jdutc = cspice_et2utc( et, 'J', 7 ); disp( ' ' ) disp( 'ET converts back to' ) disp( ' ' ) disp( utc ) disp( pst ) disp( ' ' ) disp( doy ) disp( jdutc ) disp( ' ' ) cont = SPICEFALSE; answer = input( 'Do you wish to continue? ', 's'); if ( strcmp( 'Y', answer) || strcmp( 'y', answer) ) cont = SPICETRUE; end end Appendix A. Background Material
Coordinated Universal Time (UTC)International Atomic Time (TAI)
Naming the seconds of TAI --- UTC
'00:00:00'is midnight and is the first instant of the calendar day specified by the first three components of the UTC time. In the Mice system UTC times are represented by character strings. These strings contain: year, month, day, hour, minute and second separated by delimiters (spaces or punctuation marks). The various delimiters and substrings between the delimiters are called the tokens of the string. A typical time string looks like
'5 OCTOBER 1986 7:20:16.122 (UTC)'The tokens of the string and the associated UTC time components are
'5' --- day 'OCTOBER' --- month '1986' --- year '7' --- hours '20' --- minutes '16.122' --- secondsThe link between any token and its corresponding UTC component is determined by examining the values of the tokens and comparing them to the other tokens. The precise rules used are spelled out in great detail in Appendix B. For now, simply be assured that the following five strings all mean the same thing and are interpreted in the same way by Mice Toolkit software.
'5 OCTOBER 1986' '1986 OCTOBER 5' '1986 5 OCTOBER' '1986 10 5' '10 5 1986' Tying UTC to the Earth's Rotation
Leapseconds
... DECEMBER 31 23:59:57 ... DECEMBER 31 23:59:58 ... DECEMBER 31 23:59:59 ... DECEMBER 31 23:59:60 ... JANUARY 1 00:00:00instead of the usual progression
... DECEMBER 31 23:59:57 ... DECEMBER 31 23:59:58 ... DECEMBER 31 23:59:59 ... JANUARY 1 00:00:00Should Greenwich UT1 midnight run ahead of UTC midnight by more than 0.9 seconds the IERS will announce a negative leap second. In this case one of the usual UTC hours-minutes-seconds triples will be missing from the list of UTC names. In this case the progression will be:
... DECEMBER 31 23:59:57 ... DECEMBER 31 23:59:58 ... JANUARY 1 00:00:00Since 1972 when leap seconds and the UTC system were introduced, a negative leap second has not occurred. The Leapseconds Kernel (LSK)
LSK files conform to a flexible format called ``NAIF text kernel'' format. The SPICE file identification word provided by itself on the first line of an LSK file is ``KPL/LSK''. Both the NAIF text kernel format and SPICE file identification word are described in detail in the Kernel Required Reading document, kernel.req. Ephemeris Time (ET)
Barycentric Dynamical Time (TDB)
Terrestrial Dynamical Time (TDT)
The Relationship between TDT and TDB
At some times in the year the TDT clock appears to run fast when compared to the TDB clock, at other times of the year it appears to run slow. Let TDB0 be some fixed epoch on the TDB clock and TDT0 be a fixed epoch on the TDT clock (TDB0 and TDT0 do not necessarily have to be the same epoch). Any epoch, EPOCH, can be represented in the following ways: as the number of seconds TDB(EPOCH), that have elapsed since TDB0 on the TDB clock; or as the number of seconds, TDT(EPOCH), that have elapsed since TDT0 on the TDT clock. If we plot the differences TDB(EPOCH) - TDT(EPOCH) against TDB(EPOCH) over all epochs, we will find that the graph is very close to a periodic function. In Mice the difference between TDT and TDB is computed as follows:
[1] TDB - TDT = K * sin (E)where K is a constant, and E is the eccentric anomaly of the heliocentric orbit of the Earth-Moon barycenter. This difference, which ignores small-period fluctuations, is accurate to about 0.000030 seconds. Thus to five decimal places the difference between TDT and TDB is a periodic function with magnitude approximately 0.001658 seconds and period equal to one sidereal year. The eccentric anomaly E is given by
[2] E = M + EB sin (M)where EB and M are the eccentricity and mean anomaly of the heliocentric orbit of the Earth-Moon barycenter. The mean anomaly is in turn given by
[3] M = M0 + M1*twhere t is the epoch TDB expressed in barycentric dynamical seconds past the epoch of J2000. The values K, EB, M0, and M1 are retrieved from the kernel pool. These are part of the leapseconds kernel. They correspond to the ``kernel pool variables'' DELTET/K, DELTET/EB, and DELTET/M. The nominal values are:
DELTET/K = 1.657D-3 DELTET/EB = 1.671D-2 DELTET/M = ( 6.239996D0 1.99096871D-7 ) In the Toolkit ET Means TDB
Ephemeris time is given in terms of seconds past a reference epoch. The reference epoch used throughout the Toolkit is the epoch J2000 (roughly noon on January 1, 2000). Using the Toolkit software, you can find out how many seconds the J2000 epoch is from right now. Naming the Seconds of Ephemeris Time
However, ephemeris time is described as a count of ephemeris seconds past the ephemeris reference epoch (J2000). For most of us the expression
-312819349 seconds past the ephemeris epoch J2000bears little relationship to the time system we use to organize our lives. For this reason, it is common to give names to the various ephemeris seconds in a manner analogous to the UTC naming of the seconds of TAI---as a calendar date and time of day. The above string corresponds to
'1990 FEB 1 21:44:11 (TDB)'There is an important distinction between the names given to ephemeris seconds and the names used by the UTC system. The names assigned to ephemeris times never have leap seconds. The `seconds' component of the name is restricted to and includes all values from 0 to 59.999... . Thus the time string above does not represent the same moment in time as does ``1990 FEB 1 21:44:11 (UTC)'' There are two reasons. First, ephemeris time is ahead of atomic time by 32.184 seconds. Second, when a leap second occurs UTC strings fit an extra name into the sequence of valid UTC names. Thus it appears that UTC names fall behind ET names by a second after each leapsecond. At the present time UTC time strings appear to be 62.184 seconds behind ET time strings. This appearance is due to the fact that the two naming conventions are not the same. They simply have a lot of names in common. It is both fortunate and unfortunate that there is a huge set of common names between calendar dates ET and calendar dates UTC. Since there are relatively few leapseconds, a time given by an ET name is always close to the time in the UTC system having the same name. Thus for planning observations, you can know what day the observation will take place, whether or not you are likely to need a coat and how to arrange your daily activities around the observation. But for precise work you must pay attention to the difference between the two times systems. If in planning the observation of a stellar occultation by an asteroid the difference between the two naming systems is neglected, it is likely that the observation will be missed. The routine cspice_str2et will convert an ephemeris calendar date to seconds past the ephemeris epoch J2000. Some Consequences of Leapseconds
Any given Leapseconds Kernel will eventually become obsolete. Sometime after the creation of any Leapseconds Kernel there will be new leapseconds. When future leapseconds occur the old Leapseconds Kernel will no longer correctly describe the relationship between UTC, TDT and TDB for epochs that follow the new leapsecond. However, for epochs prior to the new leapsecond, the old kernel will always correctly describe the relationship between UTC, TDT and TDB. Computing UTC from TDB (cspice_deltet)
1996, Oct 11, 12:01:02.1840 (TDT) 1996, Oct 11, 12:00:00.0000 (UTC) 1996, Oct 12, 12:01:02.1840 (TDT) 1996, Oct 12, 12:00:00.0000 (UTC) 1996, Oct 13, 12:01:02.1840 (TDT) 1996, Oct 13, 12:00:00.0000 (UTC) 1996, Oct 14, 12:01:02.1840 (TDT) 1996, Oct 14, 12:00:00.0000 (UTC) 1996, Oct 15, 12:01:02.1840 (TDT) 1996, Oct 15, 12:00:00.0000 (UTC)At least in October 1996, it's clear that if you have either TDT or UTC you can construct the corresponding representation for the same epoch in the UTC or TDT system by simply subtracting or adding 62.184 seconds. If you don't worry about what happens during a leapsecond you can express the above idea as:
[4] DeltaTDT = TDT - UTCFor all epochs except during UTC leapseconds the above expression makes sense. DeltaTDT is simply a step function increasing by one after each leapsecond. Thus DeltaTDT can be viewed as a step function of either UTC or TDT. If you rearrange this expression, you can get
[5] UTC = TDT - DeltaTDTSince, TDT can be expressed as seconds past J2000 (TDT), the above expression indicates the UTC can be expressed as some count of seconds. This representation is referred to by the dubious name of ``UTC seconds past J2000.'' If you write down the UTC calendar time string corresponding to an epoch and count the number of seconds between that calendar expression and the UTC calendar expression ``January 1, 2000 12:00:00'' and ignore leapseconds, you get the value of UTC in the expression above. In practice this expression is broken down as follows:
[6] UTC = TDT - DeltaTA - DeltaATwhere
DeltaTA = (TDT - TAI)and
DeltaAT = DeltaTDT - DeltaTAThe value DeltaTA is a constant, its value is nominally 32.184 seconds. DeltaTA is a step function. These two variables appear in the leapseconds kernel. If we combine equation [6] above with equation [1] from the section ``The Relationship between TDT and TDB'' we get the following expression
[7] TDB - UTC = DeltaTA + DeltaAT + K*sin(E)This last value is called DeltaET and is computed by the Mice routine cspice_deltet. The various values that are used in the computation of DeltaET are contained in the Leapseconds Kernel. Indeed, a Leapseconds Kernel consists of precisely the information needed to compute DeltaET. Below is a sample Leapseconds kernel.
\begindata DELTET/DELTA_T_A = 32.184 DELTET/K = 1.657D-3 DELTET/EB = 1.671D-2 DELTET/M = ( 6.239996D0 1.99096871D-7 ) DELTET/DELTA_AT = ( 10, @1972-JAN-1 11, @1972-JUL-1 12, @1973-JAN-1 13, @1974-JAN-1 14, @1975-JAN-1 15, @1976-JAN-1 16, @1977-JAN-1 17, @1978-JAN-1 18, @1979-JAN-1 19, @1980-JAN-1 20, @1981-JUL-1 21, @1982-JUL-1 22, @1983-JUL-1 23, @1985-JUL-1 24, @1988-JAN-1 ) \begintext DELTET/DELTA_T_A corresponds to DeltaTA in equation [7]. DELTET/K corresponds to K in equation [7]. DELTET/EB corresponds to EB in equation [2]. DELTET/M corresponds to M0 and M1 of equation [3]. DELTET/DELTA_AT corresponds to DeltaAT of equation [7]. Note that this expression gives the points on the UTC scale at which DeltaAT changes.Although NAIF recommends against it, you could modify this file to alter the conversion. For example, until 1985 JPL's Orbit Determination Program (ODP) set used a value of 32.1843817 for DeltaTA, and some older CRS tapes were created using this value in the conversion from TAI to TDT. The value returned by cspice_deltet can be made compatible with these tapes by replacing the current value (32.184, exactly) with the older value. Also, JPL'S Optical Navigation Program (ONP) set does not use the periodic term (K sin E) of the difference TDB-TDT. Setting the value of K to zero eliminates this term. Problems With the Formulation of DeltaET
1996 Jan 01, 00:01:01.6840 (TDT) 1996 Dec 31, 23:59:60.5000 (UTC)Given these two epochs, it is no longer clear what we should assign to the value TDT - UTC. Thus although equation [7] above provides a simple expression for computing the ``difference between UTC and TDB'', the expression fails to tell us how to convert between TDB (or TDT) and UTC during leapseconds. For this reason the Mice system does not use DeltaET when converting between TDB (or TDT) and UTC. Instead, the table of offsets corresponding to DeltaAT in the leapseconds kernel is converted to an equivalent table as shown below.
Day Number of 1971-DEC-31 TAI seconds past 2000 at beginning of 1971-DEC-31 Day Number of 1972-JAN-01 TAI seconds past 2000 at beginning of 1972-JAN-01 Day Number of 1972-JUN-30 TAI seconds past 2000 at beginning of 1972-JUN-30 Day Number of 1972-JUL-01 TAI seconds past 2000 at beginning of 1972-JUL-01 Day Number of 1972-DEC-31 TAI seconds past 2000 at beginning of 1972-DEC-31 Day Number of 1973-JAN-01 TAI seconds past 2000 at beginning of 1973-JAN-01 Day Number of 1973-DEC-31 TAI seconds past 2000 at beginning of 1973-DEC-31 . . . . . .where the day number associated with a particular calendar date is the integer number of days that have passed since Jan 01, 0001 A.D. (on the extended Gregorian Calendar). Given an epoch to be converted between UTC and some other time system (call this other system `S'), we decompose the conversion problem into two parts:
Spacecraft Clock (SCLK)
Each spacecraft clock can be constructed differently. For Galileo the Mice spacecraft clock times looks like
p/rrrrrrrr:mm:t:e p - partition number r - rim counts m - minor frame t - real time interrupt e - mod eight countWhen asking for the matrix which describes the pointing for some structure or instrument used to perform an observation, you will usually request this information by supplying the spacecraft clock string that was used to tag the observation. This string must usually be related to UTC or ET. Consequently it is necessary to load a file of ``spacecraft clock coefficients'' that enables Mice software to transform the spacecraft clock string into one of the other time systems. This file of spacecraft clock coefficients is loaded with the routine cspice_furnsh. A more detailed discussion of Spacecraft Clock is contained in the Required Reading file sclk.req that is included with the Mice Toolkit. Julian Date
Julian Ephemeris Date is computed directly from ET via the formula
jed = cspice_j2000 + et/cspice_spd;where J2000 is a constant function that returns the Julian Ephemeris Date of the reference epoch for ET, and SPD is a constant function that gives the number or seconds per day. Julian Date UTC has an integer value whenever the corresponding UTC time is noon. We recommend against using the JDUTC system as it provides no mechanism for talking about events that might occur during a leapsecond. All of the other time systems discussed can be used to refer to events occurring during a leap second. The abbreviation JD
Appendix B. Parsing Time Strings
This appendix is not for everyone. Unless you need to understand in great detail how parsing of strings is performed, you can safely skip this appendix. The discussion below is quite technical and mirrors very closely the code in tpartv_ that handles the parsing of time strings. An Outline of the Parser
Having identified the components in the string as integers, months, weekdays, time systems, etc. An internal representation of the string is constructed. This representation is simply a list of the identified substrings in the order they are encountered. Each item in the list is called a token. Working with the list of tokens, various rules are applied to remove some tokens and combine others into new tokens. The process of combination and removal of tokens continues until all tokens belong to a special set of ``meaningful'' tokens or until no further combinations and removals can be performed. If processing stops before all tokens are meaningful, a diagnostic message is created and the string is regarded as un-parsable. If all of the tokens are meaningful, a compatibility check is performed on the tokens to make sure that they unambiguously specify an epoch. Once it is clear that an unambiguous epoch has been specified, the substrings corresponding to the meaningful tokens are converted into numeric representations or are noted so that the time conversion software can properly interpret the numeric components. Almost all of the work of manipulating tokens is carried out by Mice private routines. These routines are not considered part of the Mice public interface. Feel free to read and copy these routines. However, we strongly recommend that you not call these routines in your own code since we do not guarantee backward compatibility of these routines in future releases of the Toolkit. Tokenizing the Input String
Starting with the next unexamined character (on the first pass this is the first character in the string), scan from left to right looking for one of the following classes of substrings:
The steps above are then repeated until the entire substring has been tokenized or a failure to recognize some substring occurs. If a failure occurs the location in the string is noted and a diagnostic message is created indicating the failure in the attempt to parse the string. When the tokenization is finished, there will be a list of tokens from which a string can be constructed that lists the class of each token. Each class of token is represented by a single character. By placing these characters in a string a simple list of token classes is maintained. The characters used for the remainder of this discussion are listed below.
Q stands for the quote character [ stands for the left parenthesis character ] stands for the right parenthesis character , stands for the comma character - stands for the dash character . stands for the decimal point character / stands for the slash character : stands for the colon character N stands for one of the symbols A.M. or P.M. O stands for the symbol UTC+ Z stands for a time zone such as PDT, PSD, CDT, b stands for a block of white space (spaces or tabs) d stands for the day of year marker (// or ::) e stands for the era (B.C. or A.D.) j stands for Julian date m stands for a month o stands for the symbol UTC- s stands for a time system (UTC, TDT, TDB) t stands the ISO date-T-time separator w stands for the day of the week i stands for a sequence of digitsThus the list of token classifications corresponding to
'1995 Jan 12 12:28:28'will be
'ibmbibi:i:i' Combining and Removing Tokens
There are 3 basic operations that can be performed on the tokenized representation:
Initial Token Processing
Julian Dates
Calendar Dates
Any integer class tokens (`i') whose corresponding substrings represent integers greater than or equal to 1000 are reclassified as years (`Y'). ISO Formats
Y-i-iT ........ YmD Y-i-iTi ....... YmDH Y-i-iTi:i ..... YmDHM Y-i-iTi:i:i ... YmDHMS Y-i-iTi:i:n ... YmDHMS Y-i-iTi:n ..... YmDHM Y-i-iTn ....... YmDH Y-iT .......... Yy Y-iTi ......... YyH Y-iTi:i ....... YyHM Y-iTi:i:i ..... YyHMS Y-iTi:i:n ..... YyHMS Y-iTi:n ....... YyHM Y-iTn ......... YyH i-i-iT ........ YmD i-i-iTi ....... YmDH i-i-iTi:i ..... YmDHM i-i-iTi:i:i ... YmDHMS i-i-iTi:i:n ... YmDHMS i-i-iTi:n ..... YmDHM i-i-iTn ....... YmDH i-iT .......... Yy i-iTi ......... YyH i-iTi:i ....... YyHM i-iTi:i:i ..... YyHMS i-iTi:i:n ..... YyHMS i-iTi:n ....... YyHM i-iTn ......... YyH Y --- Year m --- Month D --- Day of Month y --- Day of Year H --- Hour M --- Minute S --- SecondIf the token list contains the ISO separator (`T') but the list does not match one of the patters shown above, the input string is regarded as erroneous. Other Calendar Formats
'[e]' ---> '*e*' (parenthesized era to era) '[w]' ---> '*w*' (parenthesized weekday to weekday) '[N]' ---> '*N*' (parenthesized AM/PM to AM/PM) '[Z]' ---> '*Z*' (parenthesized time zone to time zone) '[s]' ---> '*s*' (parenthesized time system to time system) 'ie', ---> 'Ye' (integer-era to Year-era)
Built in Representations
Y-i-it......... YmD i/i/ii:i:n..... mDYHMS Y-i-iti........ YmDH i/i/ii:n....... mDYHM Y-i-iti:i...... YmDHM i/i/ii:n....... mDYHM Y-i-iti:i:i.... YmDHMS i:i:ii-i-Y..... HMSmDY Y-i-iti:i:n.... YmDHMS i:i:ii/i/Y..... HMSmDY Y-i-iti:n...... YmDHM i:i:ii/i/i..... HMSmDY Y-i-itn........ YmDH i:i:iimY....... HMSDmY Y-i/........... Yy i:i:imiY....... HMSmDY Y-i/i:i........ YyHM i:i:ni-i-Y..... HMSmDY Y-i/i:i:i...... YyHMS i:i:ni/i/Y..... HMSmDY Y-i/i:i:n...... YyHMS i:i:ni/i/i..... HMSmDY Y-i/i:n........ YyHM i:i:nimY....... HMSDmY Y-id........... Yy i:i:nmiY....... HMSmDY Y-idi:i........ YyHM i:ii-i-Y....... HMmDY Y-idi:i:i...... YyHMS i:ii/i/Y....... HMmDY Y-idi:i:n...... YyHMS i:ii/i/i....... HMmDY Y-idi:n........ YyHM i:iimY......... HMDmY Y-it........... Yy i:imiY......... HMmDY Y-iti.......... YyH i:ni-i-Y....... HMmDY Y-iti:i........ YyHM i:ni/i/Y....... HMmDY Y-iti:i:i...... YyHMS i:ni/i/i....... HMmDY Y-iti:i:n...... YyHMS i:nimY......... HMDmY Y-iti:n........ YyHM i:nmiY......... HMmDY Y-itn.......... YyH iYd............ yY Yid............ Yy iYdi:i......... yYHM Yidi:i......... YyHM iYdi:i:i....... yYHMS Yidi:i:i....... YyHMS iYdi:i:n....... yYHMS Yidi:i:n....... YyHMS iYdi:n......... yYHM Yidi:n......... YyHM iiY............ mDY Yii............ YmD iiYi........... mDYH Yiii........... YmDH iiYi:i......... mDYHM Yiii:i......... YmDHM iiYi:i:i....... mDYHMS Yiii:i:i....... YmDHMS iiYi:i:n....... mDYHMS Yiii:i:n....... YmDHMS iiYi:n......... mDYHM Yiii:n......... YmDHM iiYn........... mDYH Yiiii.......... YmDHM iid............ Yy Yiiiii......... YmDHMS iidi:i......... YyHM Yiiiin......... YmDHMS iidi:i:i....... YyHMS Yiiin.......... YmDHM iidi:i:n....... YyHMS Yiin........... YmDH iidi:n......... YyHM Yim............ YDm iim............ YDm Yimi........... YDmH iimi........... YDmH Yimi:i......... YDmHM iimi:i......... YDmHM Yimi:i:i....... YDmHMS iimi:i:i....... YDmHMS Yimi:i:n....... YDmHMS iimi:i:n....... YDmHMS Yimi:n......... YDmHM iimi:n......... YDmHM Yimn........... YDmH iimii.......... YDmHM Yin............ YmD iimiii......... YDmHMS Ymi............ YmD iimiin......... YDmHMS Ymii........... YmDH iimin.......... YDmHM Ymii:i......... YmDHM iimn........... YDmH Ymii:i:i....... YmDHMS imY............ DmY Ymii:i:n....... YmDHMS imYi........... DmYH Ymii:n......... YmDHM imYi:i......... DmYHM Ymin........... YmDH imYi:i:i....... DmYHMS Ymn............ YmD imYi:i:n....... DmYHMS Ynm............ YDm imYi:n......... DmYHM i-Y/........... yY imYn........... DmYH i-Y/i:i........ yYHM imi............ YmD i-Y/i:i:i...... yYHMS imi:i:iY....... DmHMSY i-Y/i:i:n...... yYHMS imi:i:nY....... DmHMSY i-Y/i:n........ yYHM imi:iY......... DmHMY i-Yd........... yY imi:nY......... DmHMY i-Ydi:i........ yYHM imii........... YmDH i-Ydi:i:i...... yYHMS imii:i......... YmDHM i-Ydi:i:n...... yYHMS imii:i:i....... YmDHMS i-Ydi:n........ yYHM imii:i:n....... YmDHMS i-i-Y.......... mDY imii:n......... YmDHM i-i-Yi:i....... mDYHM imiii.......... YmDHM i-i-Yi:i:i..... mDYHMS imiiii......... YmDHMS i-i-Yi:i:n..... mDYHMS imiiin......... YmDHMS i-i-Yi:n....... mDYHM imiin.......... YmDHM i-i-it......... YmD imin........... YmDH i-i-iti........ YmDH imn............ YmD i-i-iti:i...... YmDHM inY............ mDY i-i-iti:i:i.... YmDHMS inm............ YDm i-i-iti:i:n.... YmDHMS miY............ mDY i-i-iti:n...... YmDHM miYi........... mDYH i-i-itn........ YmDH miYi:i......... mDYHM i-i/i:i........ YyHM miYi:i:i....... mDYHMS i-i/i:i:i...... YyHMS miYi:i:n....... mDYHMS i-i/i:i:n...... YyHMS miYi:n......... mDYHM i-i/i:n........ YyHM miYn........... mDYH i-idi:i........ YyHM mii............ mDY i-idi:i:i...... YyHMS mii:i:iY....... mDHMSY i-idi:i:n...... YyHMS mii:i:nY....... mDHMSY i-idi:n........ YyHM mii:iY......... mDHMY i-it........... Yy mii:nY......... mDHMY i-iti.......... YyH miii........... mDYH i-iti:i........ YyHM miii:i......... mDYHM i-iti:i:i...... YyHMS miii:i:i....... mDYHMS i-iti:i:n...... YyHMS miii:i:n....... mDYHMS i-iti:n........ YyHM miii:n......... mDYHM i-itn.......... YyH miiii.......... mDYHM i/i/Y.......... mDY miiiii......... mDYHMS i/i/Y/i:n...... mDYHM miiiin......... mDYHMS i/i/Yi:i....... mDYHM miiin.......... mDYHM i/i/Yi:i:i..... mDYHMS miin........... mDYH i/i/Yi:i:n..... mDYHMS mnY............ mDY i/i/i.......... mDY mni............ mDY i/i/ii:i....... mDYHM nmY............ DmY i/i/ii:i:i..... mDYHMSIf the token list agrees with one of the items in the above list, the double precision value corresponding to each token is computed and the parsing process halts with success. Last Resort Production Rules
Assuming that the error checks just discussed do not produce an error diagnosis, the string is processed according to the following rules:
'i:i:i:n' ---> 'D*H*M*S' (days, hours, minutes, seconds) 'i:i:i:i' ---> 'D*H*M*S' (days, hours, minutes, seconds) 'i:i:n' ---> 'H*M*S' (hours, minutes, seconds) 'i:i:i' ---> 'H*M*S' (hours, minutes, seconds) 'i:n' ---> 'H*M' (hours, minutes) 'i:i' ---> 'H*M' (hours, minutes)
'<miiH' ---> 'mDY' (month, day, year) '<mi' ---> 'mD' (month, day) 'Siim>' ---> 'SYDm' (seconds, year, day, month) 'im>' ---> 'Dm' (day, month) 'miY>' ---> 'mDY' (month, day, year) 'Ymi' ---> 'YmD' (year, month, day) 'Smi' ---> 'SmD' (seconds, month, day) 'Mmi' ---> 'MmD' (minutes, month, day) 'imY' ---> 'DmY' (day, month, year) 'imH' ---> 'DmH' (day, month, hour) 'Yid' ---> 'Yy*' (year, day-of-year) 'iYd' ---> 'yY*' (day-of-year, year) 'Ydi' ---> 'Y*y' (year, day-of-year) The characters '<' and '>' mean that the transformation is performed only if the token list occurs at the beginning or end respectively of the token list.
Conclusion
Appendix C: Document Revision HistorySeptember 9, 2015
Corrected typo in the start date for the applicable period of the Gregorian calendar when the MIXED calendar option is selected. The date was changed to October 5, 1582. Corrected formatting of the Utility Routines section: the ASCII versions of this document for Mice and Icy displayed function names truncated to 8 characters (the problem did not occur in the HTML versions). April 9, 2009
Added a note about the SPICE file identification word for LSK files. December 23, 2004
22 July 1997
In addition to the new routine cspice_et2lst, we document a slight extension of the set of time strings that are recognized by the Mice time software. This extension is documented in Appendix B. 15 October 1996
The following routines are new as of version N0046 of SPICELIB.
2012 JUN 14, EDW (JPL)
2009 APR 09, BVS (JPL)
30 June 1994
13 April 1992
|


The \bigskip command is equivalent to \vspace{\bigskipamount} where \bigskipamount is determined by the document style.
See also: Spaces and Boxes Back to the Table of Contents


Step-by-step instructions for praying the rosary:
- Make the Sign of the Cross.
- Holding the Crucifix, say the The Apostles' Creed.
- On the first bead, say an Our Father.
- Say one Hail Mary on each of the next three beads.
- Say the Glory Be (Doxology).
- For each of the five decades, announce the Mystery (optionally followed by a brief reading from Scripture) then say the Our Father.
- While fingering each of the ten beads of the decade, next say ten Hail Marys while meditating on the Mystery. Then say a Glory Be. This constitutes a chaplet.
- After finishing each decade, say the Fatima Prayer.
- After saying the five decades, say the Hail, Holy Queen (Salve Regina).
- Say the following dialogue:
- V. Pray for us, O holy Mother of God.
- R. That we may be made worthy of the promises of Christ.
- Say the Concluding Prayer(s).
- A Prayer to St. Joseph may also follow
- Conclude the Rosary with the Sign of the Cross.


|
|
|
koffiedwerg |
4,069 |
Dwarves
|
2,440,058 Gold |
1,661 |
|
|
Forces of Darkness |
Angel_Wrath |
483 |
Elves
|
1,286,197 Gold |
1,662 |
|
|
|
nodel44 |
297 |
Elves
|
1,177,847 Gold |
1,663 |
|
|
|
gliphid |
1,393 |
Dwarves
|
418,035 Gold |
1,664 |
|
|
|
migs4193 |
1,127 |
Dwarves
|
625,470 Gold |
1,665 |
|
|
|
Shalidar |
2,739 |
Orcs
|
2,091,824 Gold |
1,666 |
|
|
|
Raven_Nightshade |
235 |
Undead
|
??? Gold |
1,667 |
|
|
|
briroz1006 |
340 |
Dwarves
|
3,943,703 Gold |
1,668 |
|
|
|
MyAccount |
57 |
Humans
|
221,908 Gold |
1,669 |
|
|
|
costanza |
1,767 |
Humans
|
956,160 Gold |
1,670 |
|
|
La Cosa Nostra |
Garnet777 |
996 |
Elves
|
1,746,820 Gold |
1,671 |
|
|
The Shield |
Kill_them_all |
495 |
Humans
|
572,036 Gold |
1,672 |
|
|
|
reading1992 |
270 |
Dwarves
|
819,527 Gold |
1,673 |
|
|
Sweet Revenge |
kailaaaa |
5,398 |
Humans
|
??? Gold |
1,674 |
|
|
NextGenerationFighters |
alucard110 |
485 |
Orcs
|
462,348 Gold |
1,675 |
|
|
|
lilrock |
3,945 |
Undead
|
??? Gold |
1,676 |
|
|
|
ImBoots |
2,368 |
Humans
|
774,607 Gold |
1,677 |
|
|
|
rhid |
386 |
Orcs
|
384,076 Gold |
1,678 |
|
|
|
ProfessionalSeries |
511 |
Orcs
|
592,364 Gold |
1,679 |
|
|
|
Lord_Gubbo |
15 |
Orcs
|
790,106 Gold |
1,680 |
| << Back |
1,877 players total | page 84 of 94 |
Next >> |


SneaKEY
Image-based bitcoin private key and address derivation using
bitcore
Input image
Private key
Address
@maraoz
-
View source code


Motor Trend magazine at www.motortrend.com Automobile magazine at www.automobilemag.com Hot Cars (a collectors set of info on amazing cars) from International Masters Publishers at www.impsrl.it Supercars Past and Present at www.supercars.net Note: All unverified info from this source is followed by a question mark


Sixth SPLICE Workshop
Building an Infrastructure for Computer Science Education Research and Practice at Scale
The sixth SPLICE Project workshop will be held virually on Wednesday, August 12, 2020 from 9AM to 12PM in conjunction with ACM Learning at Scale conference L@S 2020. See http://learningatscale.acm.org/las2020/workshops/building-an-infrastructure-for-computer-science-education-research-and-practice-at-scale/
Workshop Agenda: The schedule for the workshop can be found here.
Workshop Proceedings: The proceedings for the workshop can be found here.
Workshop Attendees: Information about the attendees and their work can be found here.
The goal of this workshop is to bring together the existing community of researchers working on the Infrastructure Design for Data-Intensive Research in Computer Science Education and a community of L@S researchers focused on CS Education. While both communities share many similar goals and could greatly benefit from each other work, the interaction between the communities is small. We hope that the workshop will be instrumental in bringing together like-minded researchers from different communities, establishing collaboration, and expanding the scope of the infrastructure project to address critical scaling issues.
This workshop is organized by the SPLICE community (Standards, Protocols, and Learning Infrastructure for Computing Education) in association with NSF-supported project Community-Building and Infrastructure Design for Data-Intensive Research in Computer Science Education. It follows a sequence of the previous SPLICE and CSEDM workshops organized at SIGCSE, EDM, AIED, ICER, and LAK conferences. More information about SPLICE and past workshops can be found at https://cssplice.github.io
Important Dates
- Paper submission: July 24, 2020
- Notification of acceptance: August 3, 2020
- The final version of accepted papers: August 7, 2020
- The workshop: August 12, 2020
- L@S 2020 Conference: August 12-14, 2020
Call for Papers and Lightning Presentations
We are inviting prospective participants to submit 4-6-page short papers and 2-page “lightning” papers about their past and ongoing work related to CS Education Infrastructure. We are especially interested in papers focused on collaborations, integrations, and re-use in the spirit of the SPLICE project. So if you have a working collaboration where you are re-using and bringing together various software tools and/or smart content, or are sharing data sets or learner analytics data analysis tools, then we would like to hear about it. Most valuable in the context of the workshop would be papers focusing on the following topics, although all work related to the SPLICE goals will be considered.
- Descriptions of "smart" learning tools or programming environments, which interact with students and collect interaction/performance data
- Case studies of collaboration where reproducible practices were used to integrate two or more data-producing learning tools from different institutions
- Descriptions of infrastructures that could collect and integrate data from multiple learning tools (e.g. forum posts, LMS activity, and programming data)
- Descriptions of shareable Computer Science education datasets
- Descriptions of data mining/analytics approaches applied to specifically Computer Science datasets
The authors of accepted papers will be able to present their work in at the workshop as Short talks of 15-20 minutes and Lightning Talks of 10 minutes. The papers will be published online as a part of the Workshop Proceedings and will be publicized on the SPLICE project site.
If you have a contribution accepted to the mainstream L@K conference, which also matches the topic of the workshop, you are welcome to submit a 2-pages lightning paper for the workshop consideration. It will help to publicize and discuss your work within a broader community.
Format and Submission
Submissions should follow the ACM CHI format used by L@S. See https://chi2020.acm.org/authors/chi-proceedings-format/
for details.
Submission should be made in pdf through the EasyChair system: https://easychair.org/conferences/?conf=splice2020ls
Registration
To register for this workshop, please select this workshop when registering for Learning @ Scale 2020.
Registration Support for Workshop Attendees
The workshop is sponsored by NSF. Workshop participation is free of charge for all accepted participants.
Registration for L@S 2020 is not necessary for those who would like to attend only the workshop.
A limited number of registration grants for non-presenting attendees are also available. Please
contact the organizers if you need support.
Organizers
Peter Brusilovsky, University of Pittsburgh
Ken Koedinger, Carnegie Mellon University
David A. Joyner, Georgia Institute of Technology
Thomas W. Price, North Carolina State University


Cheesecake Order Form
Thank you! Your order has been placed
Quantity
Topping
1
2
3
Plain
Cherry
Chocolate
Notes:
Order
Total Orders for
Jan
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
11 cherry
17 chocolate
31 plain


The subject to be trusted
Trust ID:
Subject:
Subject hash:
Trust the subject
Trust
Neutral
Distrust
Timestamp
Claim
Activate
Expire


I have a system running very nicely that has one EmonTx V3 sending through a Nanode RF and a handful of Arduinos sending directly to emoncms.org. All the data is sent as json.
I now want to add another emonTx and a couple emonTH devices. Given the stability of my existing system, I want to send all their data through a separate Nanode. I have the second emonTx V3 and the emonTHs working nicely with a second NanodeRF, sending data to a test account. Incedentally, the second NanodeRF is also picking up the data transmitted by the "first" emonTX, but that isn't causing any problems. All the devices are assigned different node IDs, as they should be.
It seems now all I have to do is edit the APIkey in the second NanodeRF and all the data will start going to my "primary" account.
Here's my concern: Will the addition of new csv data to the old "primary" account alter my existing data structure in any way? I have about a year of historical data in the "primary" account. I understand I'll need to create feeds from the new inputs and manage the data, but will the inclusion of new csv data interfere with the structure of my existing json inputs? I don't want to risk losing all the work I've put into the system thus far, nor the loss of all the data collected to date.
Thanks in advance
VFN
Re: Mixing csv and json inputs in emoncms
The challenge comes in that if your second NanodeRF is also picking up data from your original system, when you have them both pointing at the same Emoncms account you will end up with duplicate values.
What NetworkGroup settings have you got?
Re: Mixing csv and json inputs in emoncms
Hi and thanks for the quick reply.
The network group for everything is 210.
I agree that the second Nanode is picking up duplicate data from the first emonTx, but I don't think this will be an issue because the "original" emonTX is sending json data that comes in "named" already (e.g. "power1", "power2" etc.), whereas the csv data from the "second" system is ordered but not named.
Just the same, I could change the network group ID for the "second" system very easily at this point. That's why I'm asking now, instead of later.


\vspace[*]{length}
The \vspace command adds vertical space. The length of the space can be expressed in any terms that LaTeX understands, i.e., points, inches, etc. You can add negative as well as positive space with an \vspace command.
If \vspace appears in the middle of a paragraph the space is added after the line containing it.
LaTeX removes vertical space that comes at the end of a page. If you don't want LaTeX to remove this space, include the optional * argument. Then the space is never removed.
See Spaces and Boxes,
Lengths
Back to the Table of Contents


| Keyword/Feature |
Description |
Python Equivalent |
| Array handling |
| IsArray |
Returns True if a variable
is an array |
hasattr(obj, 'len') ?? |
| Erase |
Reinitilizes a fixed-size array |
|
| LBound |
Returns the lower bound of an
array |
0 |
| UBound |
Returns the upper bound of an
array |
len(obj) |
| Assignments |
| = |
Assigns a value to
a variable |
= |
| Let |
Assigns a value to
a variable |
Not required |
| Set |
Assigns an object
to a variable |
Not required |
| Comments |
| ` |
Includes inline comments
in your script |
# |
| Rem |
Includes comments
in your script |
# |
| Constants/Literals |
| Empty |
Indicates an uninitialized
variable |
None |
| Nothing |
Disassociates a variable with
an object |
None |
| Null |
Indicates a variable with no data |
None |
| True |
Boolean True |
True (1 pre Python 2.3) |
| False |
Boolean False |
False (0 pre Python 2.3) |
| Control flow |
| Do...Loop |
Repeats a block of
statements |
while |
| For...Next |
Repeats
a block of statements |
for |
| For Each...Next |
Repeats a block of
statements |
for |
| If...Then...Else |
Conditionally executes
statements |
if: ... else: ... |
| Select Case |
Conditionally executes
statements |
if: ... else: ... |
| While...Wend |
Repeats a block of
statements |
while |
| Conversions |
| Abs |
Returns absolute
value of a number |
abs |
| Asc |
Returns the ASCII
code of a character |
ord |
| AscB |
Returns the ASCII
code of a character |
ord ?? |
| AscW |
Returns the ASCII
code of a character |
ord ?? |
| Chr |
Returns a character
from an ASCII code |
chr |
| ChrB |
Returns a character
from an ASCII code |
chr ?? |
| ChrW |
Returns a character
from an ASCII code |
chr ?? |
| CBool |
Converts a variant
to a boolean |
bool (Python 2.3) |
| CByte |
Converts a variant
to a byte |
int |
| CDate |
Converts a variant
to a date |
time.ctime ?? |
| CDbl |
Converts a variant
to a double |
float |
| Cint |
Converts a variant
to an integer |
int |
| CLng |
Converts a variant
to a long |
long |
| CSng |
Converts a variant
to a single |
float |
| CStr |
Converts a variant
to a string |
str |
| DateSerial |
Converts a variant
to a date |
time.ctime ?? |
| DateValue |
Converts a variant
to a date |
time.ctime ?? |
| Hex |
Converts a variant
to a hex string |
hex |
| Oct |
Converts a variant
to an octal string |
oct |
| Fix |
Converts a variant
to a fixed string |
"%x.yd"
% n |
| Int |
Converts a variant
to an integer string |
int |
| Sgn |
Converts a variant
to a single string |
?? |
| TimeSerial |
Converts a variant
to a time |
?? |
| TimeValue |
Converts a variant
to a time |
?? |
| Dates/Times |
| Date |
Returns the current
date |
time module |
| Time |
Returns the current
time |
time module |
| DateSerial |
Returns a date from
its parts |
time module |
| DateValue |
Returns a date from
its value |
time module |
| Day |
Returns day from
a date |
time module |
| Month |
Returns month from
a date |
time module |
| Weekday |
Returns weekday from
a date |
time module |
| Year |
Returns year from
a date |
time module |
| Hour |
Returns hour from
a time |
time module |
| Minute |
Returns minute from
a time |
time module |
| Second |
Returns seconds from
a time |
time module |
| Now |
Returns current date
and time |
time module |
| TimeSerial |
Returns a time from
its parts |
time module |
| TimeValue |
Returns a time from
its value |
time module |
| Declarations |
| Dim |
Declares a variable |
Not possible |
| Private |
Declares script-level
private variable |
__name |
| Public |
Declares public-level
public variable |
not __name |
| ReDim |
Reallocates an array |
array |
| Function |
Declares a function |
def |
| Sub |
Declares a subprocedure |
def |
| Error Handling |
| On Error |
Enables error handling |
try |
| Err |
Contains information
about last error |
except Exception,
err |
| Input/Output |
| InputBox |
Prompts the user
for input |
raw_input / depends
on GUI |
| MsgBox |
Displays a message
to the user |
depends on GUI |
| Math |
| Atn |
Returns the Arctangent
of a number |
math.atan |
| Cos |
Returns the cosine
of a number |
math.cos |
| Sin |
Returns the sine
of a number |
math.sin |
| Tan |
Returns the tangent
of a number |
math.tan |
| Exp |
Returns the exponent
of a number |
math.exp |
| Log |
Returns the logarithm
of a number |
math.log / math.log10 |
| Sqr |
Returns the square
root of a number |
math.sqrt |
| Randomize |
Reseeds the randomizer |
random.seed |
| Rnd |
Returns a random
number |
random.random |
| Operators |
| + |
Addition |
+ |
| - |
Subtraction |
- |
| ^ |
Exponentiation |
** |
| Mod |
Modulus arithmetic |
divmod(x, y)[1] |
| * |
Multiplication |
* |
| / |
Division |
/ |
| \ |
Integer Division |
divmod(x, y)[0] |
| - |
Negation |
- |
| & |
String concatenation |
+ |
| = |
Equality |
== |
| <> |
Inequality |
<> or != |
| < |
Less Than |
< |
| <= |
Less Than or Equal
To |
<= |
| > |
Greater Than |
> |
| >= |
Greater Than or Equal
To |
>= |
| Is |
Compares expressions |
is |
| And |
Compares expressions |
and |
| Or |
Compares expressions |
or |
| Xor |
Compares expressions |
No equivalent |
| Eqv |
Compares expressions |
?? |
| Imp |
Compares expressions |
?? |
| Objects |
| CreateObject |
Creates reference
to an OLE object |
win32com.client.dis-patch |
| IsObject |
Returns True
if object is valid |
?? |
| Options |
| Option Explicit |
Forces explicit variable
declaration |
No equivalent |
| Procedures |
| Call |
Invokes a subprocedure |
name() |
| Function |
Declares a function |
def |
| Sub |
Declares a subprocedure |
def |
| Strings |
| Instr |
Returns index of
a string in another |
s.find |
| InStrB |
Returns index of
a string in another |
s.find |
| Len |
Returns the length
of a string |
len |
| LenB |
Returns the length
of a string |
len |
| Lcase |
Converts a string
to lowercase |
s.lower |
| Ucase |
Converts a string
to uppercase |
s.upper |
| Left |
Returns the left
portion of a string |
s[:n] |
| LeftB |
Returns the left
portion of a string |
s[:n] |
| Mid |
Returns the mid portion
of a string |
s[n:m] |
| MidB |
Returns the mid portion
of a string |
s[n:m] |
| Right |
Returns the right
portion of a string |
s[m:] |
| RightB |
Returns the right
portion of a string |
s[m:] |
| Space |
Pads a string with
spaces |
s.ljust |
| StrComp |
Compares two strings |
== |
| String |
Pads a string with
a character |
s += char*n |
| Ltrim |
Removes leading spaces
from a string |
?? |
| Rtrim |
Removes trailing
spaces from a string |
?? |
| Trim |
Removes leading and
trailing spaces |
s.strip |
| Variants |
| IsArray |
Returns True
if variable is an array |
hasattr(obj, 'len')
?? |
| IsDate |
Returns True
if variable is a date |
?? |
| IsEmpty |
Returns True
if variable is empty |
is None |
| IsNull |
Returns True
if variable is null. |
is None |
| IsNumeric |
Returns True
if variable is a number |
try: float(x) ?? |
| IsObject |
Returns True
if variable is an object |
No equivalent |
| VarType |
Indicates a variable's
type |
No equivalent |


shawerma
shawerma is a dish in Middle Eastern cuisine consisting of meat cut into thin slices, stacked in a cone-like shape, and roasted on a slowly-turning Shawarma is an Arabic rendering of Turkish çevirme
shawerma is a dish in Middle Eastern cuisine consisting of meat cut into thin slices, stacked in a cone-like shape, and roasted on a slowly-turning Shawarma is an Arabic rendering of Turkish çevirme


SEARCH
If you need to find a free food location by date or time, just click the specific time in the calendar to get more information.
ORGANIZE
You can view by week, month or see a list for each day.
ADD EVENT
You can email us,
<EMAIL_ADDRESS>or send us a Google Calendar Invite to add an event to our calendar.
SAVE EVENT
If you have a google calendar
you can click on an event to
add it to your
personal calendar.
LEGEND FOR CALENDAR


SignUp Form
Name
1
Name
1
Name
1
Name
1
Basic Info:
First Name
Last Name
Next
Contact Info:
Email Address
Phone Number
Education Level
Previous
Next
Data of Birth:
Date
Gender
Male
Female
Other
Previous
Next
Login Details:
Username
Password
Previous
Submit


The video will be going over The Lion King’s commentary on sociology and social mobility. Throughout the movie,
the circle of life plays a large role in dictating how the animals in the Pride Lands live, and the video will
explore how it plays into message of social immobility. The video also analyzes the effects of breaking the
circle of life as shown through Scar’s reign and its implied message.
Lesson Plan
In order to understand sociology in relation to social mobility and the Lion King more in depth, here is a
lesson plan with resources and questions to gauge your understanding.
Have your students go over this information sheet and fully understand reasons and types of social mobility.
Information
Social mobility: movement of individuals or groups of people through a system of social hierarchy
Types of social mobility:
Horizontal mobility: when a person changes occupational position but not social class. Ex: a
software engineer at Yahoo changes jobs and becomes a software engineer at AOL
Vertical mobility: when a person changes social class. Ex: a villager in the Dark Ages barters his
way up and becomes a noble
Movement within Society
Upward mobility: person moves from a lower position to a higher position
Downward mobility: person moves from a higher position to a lower position
Closed society: a society in which there is little social mobility
Factors Leading to Social Mobility:
Education: the level of knowledge for each person dictates which jobs are suitable for him/her. A
higher education means that he can pursue more coveted jobs, leading to high social status.
Industrialization: whenever a country or region industrializes, a new social system usually arises
where ability and skill are the true determinants of social status
Legislation: new laws or rules can enforce social mobility
Influence of media on children: media influences a child’s social behavior as well as his/her attitude
towards race and gender
As children grow and develop, they start taking in more information from around them.
Have them answer these questions then proceed to have a group discussion.
Questions
Give a historical example of a closed society.
What is an example of legislation leading to enforced social mobility?
Would the hyena’s social mobility in The Lion King be horizontal mobility or vertical mobility and why?
Which factor led to the hyena’s mobility in The Lion King?
Would the “Circle of Life” and ingrained lessons on social mobility impact children? If so, how would
they impact them?


{% extends 'layout.html' %} {% set version = "v3" %} {% set heading = "Permission not given" %} {% block beforeMain %} {% endblock %} {% block content %}
You have not registered your interest to take part in the coronavirus clinical trials.
Because you did not give your permission, you have not registered your interest to take part in the coronavirus clinical trials.
You can register your interest to take part in the coronavirus clinical trials at any time.


--- layout: post title: ! 'RailsConf ''09: Accepting proposals for Vegas!' categories: [] author: David published: true date: 2008-10-15 09:35:00.000000000 +01:00 ---
RailsConf 2009 is going to Las Vegas, baby. It’s happening from May 4-7 at the Las Vegas Hilton. Last year was an astounding success with probably the best session line-up of any of the many RailsConfs we’ve had yet. We’re hell bent on repeating that for 2009, but we need your help.
The call for proposals has opened and will stay open until February 17th, 2009. That’s a really long call for proposals and we’re doing it to get even more timely information available for the conference. If Rails 3.0 magically appears in January, we want to make sure there are sessions covering it.
The registration for the conference will open in January of 2009.


| Zudha Information Technology |
| Product: |
ZIM (Zudha Instant Messenger) Pro
|
| Description: |
ZIM Pro is a next generation Instant Messenger [IM] developed
using JXTA technology. It is based on Peer-to-Peer (P2P) concepts. ZIM Pro
establishes a direct person-to-person connection. ZIM Pro avoids congested
public servers and your messages are delivered instantly across the Intranet/Internet.
It helps in internal communication within enterprise as other messengers
are blocked by the corporate firewall. With ZIM we endorse to prove Zudha's
deep Knowledge & commitment in P2P technology.
|
| System Requirements: |
Supported Platforms
- Solaris
- Microsoft Windows 2000 or later
- Red Hat Linux 8.0
Software Requirements
- JRE 1.4.0
Hardware Requirements
- Intel Pentium Processor 400 MHz or higher
- 128 MB RAM
- 100 MB available hard disk storage (with 10 MB additional space required
for your data)
- Display resolution 800 * 600, 15-bit (32,768)-color minimum
|
| Availability & Pricing: |
Available now for Windows, Linux and Solaris operating environments.
http://www.zudha.com/productDetail.php?product=zim
|
| Target Markets: |
Industry neutral
|
| Contact: |
Zudha Information Technology Private Limited
No. 227, 12th Cross
Wilson Garden
Bangalore 560027
INDIA
Phone: + 91-80-2225486
Fax: + 91-80-2214112
E-mail<EMAIL_ADDRESS>|
| Website: |
http://www.zudha.com |


@@include('components/settings.html')
@@include('components/navbar.html')
@@include('components/loading_overlay.html')
@@include('pages/dashboard.html')
@@include('pages/products.html')
@@include('pages/new_products.html')
@@include('pages/help.html')
@@include('pages/bins.html')
@@include('components/vendor.html')
@@include('components/scripts.html')


---
layout: post
title: Read Well
date: '2011-03-08T19:17:00.002-06:00'
author: Jabell
tags:
- Reading
- Quotes
modified_time: '2011-03-08T19:18:04.468-06:00'
blogger_id: tag:blogger.com,1999:blog-19739956.post-242275384339174414
blogger_orig_url: http://theabellsix.blogspot.com/2011/03/read-well.html
---
Alan Jacobs:
The other day a homeschooling parent, whose child is in the ninth grade, wrote to me to ask what books I thought are essential for a young person to have read before coming to college. My reply:For what it's worth, I don't think what a young person reads is nearly as important as how he or she reads. Young people who learn to read with patience and care and long-term concentration, with pencil in hand to make notes (including questions and disagreements), will be better prepared for college than students who read all the "right" books but read them carelessly or passively.


Police clash with Catalan independence activists on border with Spain
by EuronewsFrench riot police have clashed with Catalan pro-independence demonstrators who had blocked a major road link connecting France and Spain for nearly 24 hours.
Police on the French side of the border at La Jonquera pushed protesters to the Spanish side, removing debris from the AP-7 highway, a major route on the border that had been blocked in both directions.
Trucks and other traffic had been diverted to another smaller road as protesters installed concrete barriers on the highway and set up a stage to hold concerts.
Catalonia has been rocked by mass protests since long prison sentences were handed down in mid-October to nine separatist leaders who spearheaded a failed independence bid in 2017.
MORE: Catalonia protests turn violent as militants clash with police
Asked what Catalan police should do with the protesters sent back over the border from France, Catalan government leader Quim Torra said there was no reason for charges to be brought.
“We ask for this operation to be conducted with exquisite care, so that no one gets hurt,” he told Catalunya Radio.


Explosion in Chattogram house caused by gas leakage, says probe committee
by bdnews24.comThe fatal explosion that left seven people dead at a house in Chattogram’s Patharghata was caused by gas leakage, says an inquiry commissioned by the district administration.
The findings contradict a conclusion drawn by the Karnaphuli Gas Distribution Company Limited.
“The explosion was triggered by a leakage from a part of riser to the customer’s gas line,” said, Chattogram’s Additional District Magistrate AZM Shariful Islam, who led the probe committee.
The committee submitted a 13-page report on Sunday in which it made five recommendations to avert a similar disaster.
The explosion occurred on the ground floor of a building in Patharghata Brick Field Road on Nov 17, leaving 19 others injured s well.
The outer walls of the building collapsed on the street during the explosion. A shop just across from the building was also damaged in the blast.
The fire service personnel, police and officials of the Department of Explosives claimed the explosion occurred from a gas leakage.
But the government’s utility agency Karnaphuli Gas Distribution Company Limited or KGDCL denied the claim and said, ‘The explosion did not occur due to any leak or any other glitch in the gas line.”
The company later formed a four-strong committee headed by General Manager (Engineering and Services) Sarwar Hossain to investigate the explosion.
“We found that the gas line, riser and stove in the house were intact. There was no problem in the kitchen either. So, we’re certain that the accident was not caused by a gas leak,” KGDCL Managing Director Khair Ahmed Mozumder had told bdnews24.com.
The district administration set up the panel with officials from the city corporation, Department of Explosives, fire service and police.


Get Ceasuri Plasma Logan Background. A video that was uploaded on december 31st 2017 which was removed by logan paul after the controversy it recieved. Bazar auto ceasuri plasma ceasuri plasma dacia ceasuri plasma dacia logan.
.ceasuri logan de cumparat(diverse modele) si un site de unde pot cumpara faruri logan facelift un sfat. The structure of this tv stand is one of a kind with it's industrial design. Ahora que veo al team plasma me surgio una pregunta curiosa.
Ceasurile cu plasma sunt de fapt niste elemente de styling interior cu o lumina speciala, de obicei albastra.
Haras algun dia a acromo/colress.? The structure of this tv stand is one of a kind with it's industrial design. Bazar auto ceasuri plasma ceasuri plasma dacia ceasuri plasma dacia logan. Haras algun dia a acromo/colress.?


I'm A Celebrity new arrival Cliff Parisi joins main camp - but they're not happy
The I'm A Celebrity 2019 stars finally got to meet former EastEnders star Cliff Parisi, except they'd rather had been given a treat
by Irishmirror.ieI'm A Celebrity campmates including Ian Wright and James Haskell weren't exactly thrilled when they got to rescue new arrival Cliff Parisi from jungle jail.
Cliff was probably hoping that they'd be glad to see him, as he finally got to join the main camp.
He left behind fellow newcomer Andy Whyment, as well as Kate Garraway, Andrew Maxwell, and new prisoners Jacqueline Jossa and Myles Stephenson.
But if the campers back in the main camp had it their way, Cliff would have remained in jail in exchange for some goodies.
Caitlyn Jenner joined James in the latest Dingo Dollar Challenge, giving them the option to win something nice.
However, as they headed to Kiosk Kev's shack they were stunned to find out that instead of crisps, chocolate or another tasty snack, it was a person they could win.
They had the option of saving Cliff or Andy from prison, with it clear they would have preferred a snack.
James joked: "I tell you what, I’d rather a bag of crisps or chocolate bar if I’m completely honest with you."
Caitlyn responded: "I don’t know these Brits, how can I make a decision,” not clear on who either of the newbies were.
James made the decision, saying: "I don’t know these guys but I know Cliff played Minty in EastEnders and I’ve got a really good friend called Minty."
As they headed back to camp to announce the news, Cliff was informed of the decision back at the prison.
Ahead of his arrival, those waiting for him at Main Camp couldn't hide their slight disappointment as they'd hoped for chocolate.
It was a little while before they got over it, with Cliff soon arriving and receiving a warm welcome.
Nadine Coyle later confessed in the Bush Telegraph: "I felt sorry for Cliff as there was high hopes for a phone call and come chocolate and then Cliff came which was great but I think there was a ‘oh, they’re back and they’ve not got any chocolate’."
I'm A Celebrity airs nightly at 9pm on ITV.


ure
– regular expressions¶
This module implements regular expression operations. Regular expression
syntax supported is a subset of CPython re
module (and actually is
a subset of POSIX extended regular expressions).
Supported operators are:
'.'
- Match any character.
'[]'
- Match set of characters. Individual characters and ranges are supported.
'^'
'$'
'?'
'*'
'+'
'??'
'*?'
'+?'
Counted repetitions ({m,n}
), more advanced assertions, named groups,
etc. are not supported.
Functions¶
-
ure.
compile
(regex)¶ Compile regular expression, return
regex
object.
-
ure.
match
(regex, string)¶ Match
regex
againststring
. Match always happens from starting position in a string.
-
ure.
search
(regex, string)¶ Search
regex
in astring
. Unlikematch
, this will search string for first position which matches regex (which still may be 0 if regex is anchored).
-
ure.
DEBUG
¶ Flag value, display debug information about compiled expression.


In this section, you will demonstrate your ability to interact with the DOM.
DOM: Tables 🗓
The AlayaCare product line makes heavy use of tables to aggregate data in a digestible manner.
Using cypress, assert that the data in the table is correct and that the table itself can show up.
Problem steps:
Assert that the table is not visible
After clicking the "Show table" button, assert the table is visible
Assert that the table is 5 columns wide
Assert that the table is 10 rows long, excluding the first (header) row
Assert that an admin has the ID of 1
Assert that at least 5 entries have the role "user"
Assert there are exactly 3 people older than 60 years old
ID
First Name
Last Name
D.O.B
Role
1
John
Doe
1/1/1995
admin
2
Jane
Doe
1/17/1996
coordinator
3
John
Smith
5/5/1989
user
4
Tux
ThePenguin
8/2/1956
user
5
Alaya
Care
2/14/1978
user
6
Dennis
Ritchie
5/25/1952
coordinator
7
Example
LastName
9/29/1994
user
8
Caregiver
Mann
5/17/2001
user
9
Caregiver
Womann
4/21/1955
coordinator
10
DOM
Challenge
12/24/1981
user
DOM: Forms 📝
Forms are heavily used to submit user info, and users should be able to fill them out without stress.
Using Cypress, assert that the form can be filled out and submitted.
Problem steps:
Assert that the form is not visible
After clicking the "Show form" button, assert that the form is visible
Fill in the "Name" and "Age" inputs, and assert that both inputs are filled
Select "Female" from the select option, and assert that the value is "female"
Tick the "Nurse" checkbox and assert that the value "nurse" is true
Click on the "Submit" button and assert that there is an alert window showing with the text "Form submitted!"


Runtime monitoring utility classes
To track time for requests received and sent. start and end are guaranteed to be called.
interface RequestTimer
open class RequestTimerData


This component is used to exert a line force between the origin of frame_a and the origin of frame_b by attaching components of the 1-dimensional translational mechanical library of Modelica (Modelica.Mechanics.Translational) between the two flange connectors flange_a and flange_b. Optionally, there is a point mass on the line connecting the origin of frame_a and the origin of frame_b. This point mass approximates the mass of the force element. The distance of the point mass from frame_a as a fraction of the distance between frame_a and frame_b is defined via parameter lengthFraction (default is 0.5, i.e., the point mass is in the middle of the line).
In the translational library there is the implicit assumption that forces of components that have only one flange connector act with opposite sign on the bearings of the component. This assumption is also used in the LineForceWithMass component: If a connection is present to only one of the flange connectors, then the force in this flange connector acts implicitly with opposite sign also in the other flange connector.


--- title: LLNL Software Catalog layout: homepage --- {% raw %}
Welcome to the LLNL software portal—a hub for our open source projects. This catalog is updated regularly as repositories are added or modified.
{{category.description}}
{{repo.name}}


{% if not object.study.get_study_types %}
{% alert warning %}
This study currently has no type(s) selected. If you'd like to perform study evaluation for this study, you'll need to update the study and select at least one type (e.g., bioassay, epidemiology, etc.).
{% endalert %}
{% elif object.final and not object.study_reviews_complete %}
{% alert danger %}
All other {{assessment.get_rob_name_display|lower}} reviews for this study must be complete
in order to complete the final review.
{% endalert %}
{% else %}
{% endif %}
{% endblock %}
{% block extrajs %}
{{ config|json_script:"config" }}
{% endblock extrajs %}


com.innovaphone.events (App API)
This API provides an interface for sending logs and events to the Events App Service.
API model
Service info
The API doesn't define any service info.
Provider model
The API doesn't define a provider model.
API messages
All messages are JSON objects that have a mandatory attribute "mt" that specifies the message type.
Requests
- AddEvent
- Used to add a new event.
-
- type
- It should be "error" to add a new event
- severity
- It can be Minor (0), Indeterminate (1) or Major (2)
- code
- Unique code number for this event
- date
- The timestamp in seconds
- host
- The host
- serial
- The MAC address of the device
- source
- Indicates software module, which sent the corresponding event
- text
- A short description of the corresponding event
- xsl
- Name of the template to parse the details
- details
- XML data to be parsed using the xsl template
- Example:
{ mt: "AddEvent", type: "error", severity: 1, code: "0x0011005b", date: "1580559884", host: "IP0011-00-00-00", serial: "009033000000", source: "IP", text: "No route to destination", xsl: "fault_network.xsl", details: "<route src-addr=\"<IP_ADDRESS>\" src-port=\"24\" dst-addr=\"<IP_ADDRESS>\" dst-port=\"80\" prot=\"TCP\" cause=\"Destination interface down\"/>" }
- AddAlarm
- Used to add a new alarm or clear an existing one.
-
- type
- It could be "alarm" to set a new alarm or "clear" to clear an existing alarm
- severity
- It can be Minor (0), Indeterminate (1) or Major (2)
- active
- It should be true if the alarm is still active and false in other case
- code
- Unique code number for this alarm
- date
- The timestamp in seconds
- host
- The host
- serial
- The MAC address of the device
- source
- Indicates software module, which sent the corresponding alarm
- text
- A short description of the corresponding alarm
- xsl
- Name of the template to parse the details
- details
- XML data to be parsed using the xsl template
- Example:
{ mt: "AddAlarm", type: "alarm", severity: 1, active: true, code: "0x00010002", date: "1580559884", host: "IP0011-42-04-a7", serial: "009033000000", source: "RELAY/RECH", text: "Registration down", xsl: "fault_relay.xsl", details: "<relay prot=\"SH323\"/>" }
- AddLog
- Used to add a new log.
-
- time
- The timestamp in seconds
- date
- The date of the log with the format YYYYMMDD-HHmmss
- from
- The host
- serial
- The MAC address of the device
- msg
- The log message
- Example:
{ mt: "AddLog", time: "1580559884", date: "20200302-101125", from: "IP811-00-00-00", serial: "009033000000", msg: "This is the log info" }
Responses
- AddEventResult
- One single AddEventResult is returned for each AddEvent request
-
- result
- "ok" if the event could be added and "failed" in other case
- Example:
{ mt: "AddEventResult", result :"ok" }
- AddAlarmResult
- One single AddAlarmResult is returned for each AddAlarm request
-
- result
- "ok" if the alarm could be added and "failed" in other case
- Example:
{ mt: "AddAlarmResult", result :"ok" }
- AddLogResult
- One single AddLogResult is returned for each AddLog request
-
- result
- "ok" if the log could be added and "failed" in other case
- Example:
{ mt: "AddLogResult", result :"ok" }


- Introduction
- Executive summary
Connecting your software - and having fun too!
- Executive summary
- Getting Started
- Writing a TCP server
Basic network servers with Twisted. - Writing a TCP client
And basic clients. - Test-driven development with
Twisted
Code without tests is broken by definition; Twisted makes it easy to test your network code. -
Tutorial: Twisted From
Scratch
- The Evolution of Finger: building a simple finger service
- The Evolution of Finger: adding features to the finger service
- The Evolution of Finger: cleaning up the finger code
- The Evolution of Finger: moving to a component based architecture
- The Evolution of Finger: pluggable backends
- The Evolution of Finger: a clean web frontend
- The Evolution of Finger: Twisted client support using Perspective Broker
- The Evolution of Finger: using a single factory for multiple protocols
- The Evolution of Finger: a Twisted finger client
- The Evolution of Finger: making a finger library
- The Evolution of Finger: configuration and packaging of the finger service
- Setting up the TwistedQuotes application
- Designing a Twisted application
- Writing a TCP server
- Networking and Other Event Sources
- Twisted
Internet
A brief overview of thetwisted.internet
package. - Reactor basics
The event loop at the core of your program. - Using SSL in Twisted
Add some security to your network transport. - UDP Networking
Multicast too! - Using processes
Launching sub-processes, the correct way. - Using Deferreds
Like callback functions, only a lot better. - Generating deferreds
More about Deferreds. - Scheduling
Timeouts, repeated events, and more: when you want things to happen later. - Using threads
Running code in threads, and interacting with Twisted in a thread-safe manner. - Producers and Consumers: Efficient High-Volume Streaming
How to pause when buffers fill up. - Choosing a reactor and
GUI toolkit integration
GTK+, Windows, epoll() and more: use your GUI of choice, or a faster event loop.
- Twisted
Internet
- High-Level Infrastructure
- Getting Connected with Endpoints
Create configurable applications that support multiple transports (e.g. TCP and SSL). - Interfaces and Adapters
(Component Architecture)
When inheritance isn't enough. - Cred: Pluggable
Authentication
Implementing authentication and authorization that is configurable, pluggable and re-usable. - Twisted's plugin architecture
A generic plugin system for extendable programs.
- Getting Connected with Endpoints
- Deploying Twisted Applications
- Helper programs and scripts
(twistd, ..)
twistd
lets you daemonize and run your application. - Using the Twisted Application
Framework
Writing code thattwistd
can run. - Writing Twisted Application Plugins
for twistd
More powerfultwistd
deployment method.
- Helper programs and scripts
(twistd, ..)
- Utilities
- Logging
Keep a record of what your application is up to. - Symbolic constants
enum-like constants. - Twisted RDBMS support with
adbapi
Using SQL with your relational database via DB-API adapters. - Parsing command-line arguments
The command-line argument parsing used bytwistd
. - Using Dirdbm: Directory-based Storage
A simplistic way to store data on your filesystem. - Tips for writing tests for Twisted
code using Trial
More information on writing tests. - Extremely Low-Level Socket Operations
Using wrappers for sendmsg(2) and recvmsg(2).
- Logging
- Asynchronous Messaging Protocol (AMP)
- Asynchronous Messaging Protocol Overview
A two-way asynchronous message passing protocol, for when HTTP isn't good enough.
- Asynchronous Messaging Protocol Overview
- Perspective Broker
- Twisted Spread
A remote method invocation (RMI) protocol: call methods on remote objects. - Introduction to Perspective Broker
- Using Perspective Broker
- Managing Clients of Perspectives
- Passing Complex Types
- Authentication with Perspective Broker
- PB Limits
- Twisted Spread
- Appendix


NANO100_BSP
V3.04.001
The Board Support Package for Nano100BN Series
Modules
NANO100 Device Driver
Collaboration diagram for NANO100 Device Driver:
Modules
ADC Driver
CLK Driver
CRC Driver
DAC Driver
EBI Driver
FMC Driver
GPIO Driver
I2C Driver
I2S Driver
LCD Driver
PDMA Driver
PWM Driver
RTC Driver
SC Driver
SCUART Driver
SPI Driver
SYS Driver
TIMER Driver
UART Driver
USBD Driver
WDT Driver
WWDT Driver
Detailed Description
Generated on Tue Mar 7 2023 14:27:46 for NANO100_BSP by
1.9.3


CSS Flexible Box Layout, commonly known as Flexbox, is a CSS3 web layout model. The flex layout allows
responsive elements within a container to be
automatically
arranged depending upon screen size (or device).
CSS Flexible Box Layout, commonly known as Flexbox, is a CSS3 web layout model. It is in the W3C's
candidate
recommendation (CR) stage.The flex layout allows responsive elements within a container to be
automatically arranged depending upon screen size (or device).


Police question two men after gang smash way into north Belfast house
by SUZANNE MCGONAGLETWO men are being questioned by police after an armed gang smashed their way into a house in north Belfast.
Police said they received a report shortly after 7.30pm yesterday that "a number of men had arrived at a house in the Alexandra Park Avenue area and were smashing their way into the property and were armed with weapons including a suspected firearm and a hammer".
"There were three males in the house at the time - two teenagers and a man aged in his fifties.
"Police subsequently arrested two men, aged 30 and 33, on suspicion of aggravated burglary.
"They both remain in custody this morning assisting us with our enquiries.
"This was a frightening ordeal, and it's fortunate none of the occupants were injured.
"However, they have been left shaken.
"As we continue with our enquiries, I want to appeal to anyone who was in the area last night around this time and who saw a number of males acting suspiciously, or any vehicles being driven in a suspicious manner, to get in touch with our detectives."


Devil’s Den campground was a welcome change of pace from Sunset Isle RV Park in Cedar Key for multiple reasons. We really enjoyed it here despite a few negatives, and we were super excited we got SCUBA certified during our stay. Major bucket list item checked off!
The Good
The first thing that excited us about Devil’s Den's camground (particularly coming from Cedar Key) was the number of sites they had available. In Florida this time of year, open campgrounds are a tough thing to come by. We chose one of the sites without full hookups (just water and electric) because the sites were much larger. We were happy with this decision to not be stacked next to other campers. We had the whole area to ourselves for most of the time, which meant we could let the dogs run around a little bit. It was nice to have a bit more space to ourselves after being so close to our neighbors while in Cedar Key.
We were pleasantly surprised by the beauty of the drive into Devil’s Den. There is a long road going through a Thoroughbred farm with some of the prettiest horses. There are huge trees dotting expanses of pastures. We took sunset walks down this road as often as we could! Once we got to Devil’s Den, we were surprised to find a farm-like area with Emus and goats. Our dogs particularly loved walking past this area haha. The Emus had laid huge dark teal eggs which were neat to see as well.
Devil’s Den was also only a thirty minute drive to Gainesville. In this city, Swamphead brewery became one of our favorites. It’s dog-friendly and has a really cool spot with a lot of outdoor lawn area to hang out. The inside has neat wooden tables which we loved, and they have food trucks and events frequently. This is where we went for a beer to celebrate after getting SCUBA certified!
Before we were SCUBA certified, we went snorkeling in Devil’s Den which was really neat! I’m working on putting together all of our video footage of diving in the springs. There were fish and turtles in the crystal clear water which has a hole in the rocks above it where sunlight comes through to hit the water. It was a bit chilly in the water (72 degrees is much cooler in water than air temperature), but we rented wetsuits so were able to stay in for about an hour.
Getting SCUBA certified was a big moment for us! We had tried to get certified before, but we were both alternating being sick. But finally we both got healthy and were able to go to Scuba Monkey in Alachua, FL for our course. We highly recommend them if you are in the area! Our open water portion was in Troy Springs, which was more crystal clear water and we got to a depth of 65 feet on our last fun dive! Here, we could see where the water was actually entering the spring from the underground aquifer and you could feel the current it created too. We surfaced so pumped to dive again!
For us, dog parks are such a saving grace so we were disappointed to not find any nearby during our stay. However, a really nice guy recognized we had GSPs and let us know about some land near Blue Springs Park that was absolutely perfect for letting our dogs run off leash. We could walk down the roads with them for miles with their e-collars on and get them completely exercised. This made our stay in the area much more enjoyable!
The Bad
The dirt road in Devil’s Den to our campground was terrible! We had to add about 5 minutes to our ETA whenever we left because we had to drive so slow over them so as to not destroy our alignment. Not to mention the stress of driving our Airstream into and out of these roads… they definitely need some maintenance there!
The facilities were ok. The showers were hot, but did not stay that way for too long if someone else was showering at the same time. Also, the showers in the pool area which are closest to the campground do not stay on. So you have to hold a lever near the shower head in order to keep the water coming out. You can jerry-rig it with a twist tie or wire, which is what we did when we used those showers (since we didn’t have full hookups, we tried to use them often so we didn’t have to dump our grey tank so much). However, if you walk down to where the main area of Devil’s Den is, the showers seem to have a greater supply of hot water and they have a normal nozzle that stays on when you turn it :).
Conclusion
We loved Devil’s Den! We loved our site, we loved snorkeling the spring itself, and would definitely be back. Williston is a cute little town with very nice people and a lot of horse and cattle farms. Seems to be a hidden gem!