text:
The Disappearance of MH370
Helping to Solve the World's Greatest Aviation Mystery
Radiant Physics Inc.
Possible MH370 Paths Along Great Circles
by Victor Iannello Posted: Sunday, 10/22/2017
Figure 1. Great circle paths that match the satellite data after 19:41. (Click on image to enlarge.)
In the last post, I presented how the simulation data found on the home computer of Captain Zaharie Shah suggests that the recovered data were from a single flight session on Feb 2, 2014, in which the aircraft takes off from Kuala Lumpur International Airport (KLIA), flies northwest over the Malacca Strait, flies past the Andaman and Nicobar Islands, turns to the south, and exhausts its fuel in the Southern Indian Ocean. The simulated flight could have represented a diversion of flight MH150 from KLIA to Jeddah, Saudi Arabia, which the captain commanded two days later on Feb 4, 2014.
The alignment of data set 10N (the northernmost), 45S1 (just after fuel exhaustion in the SIO), and Pegasus Field (NZPG) at McMurdo Station, Antarctica, suggests that the simulation user might have selected autopilot and used LNAV mode. If LNAV mode is selected, the aircraft follows a great circle path between the starting and ending waypoints of the active leg. This raises the possibility that McMurdo was used as a final waypoint for navigation with the expectation that fuel would be exhausted in the SIO, well before reaching Antarctica.
In this article, I reconstruct flight paths with the assumption that MH370 was flown in automated flight in a similar way as in the simulation session. In particular, I reconstructed flight paths using the following two criteria:
After 19:41, MH370 was flown in under autopilot, and was following a great circle path in LNAV mode and speed was controlled using the autothrottle.
In addition to (1), after 19:41, MH370 was following a great circle path that leads to an airport in Antarctica.
What this article does not consider is how drift analyses based on the location and timing of recovered debris from MH370 affects the impact probabilities along the 7th arc. A review of the available drift analyses needs to be considered along with any path reconstruction studies before a new search area can be recommended with any level of confidence.
Flight Paths Along Great Circles after 19:41
Figure 1 shows the path (green) of MH370 as captured by Malaysian civil and military radar. After the last radar capture at 18:22, all we have to help us reconstruct possible paths are the Burst Timing Offsets (BTOs) and Burst Frequency Offsets (BFOs) from communication between the aircraft, Inmarsat's F1 satellite above the Indian Ocean, and Inmarsat's Ground Earth Station (GES) at Perth. The BTO values indicate how far the aircraft was from the satellite, and therefore possible locations that satisfy the BTO values form an arc when plotted. Shown in Figure 1 are the arcs at 19:41 (the 2nd arc) and 00:19 (the 7th arc). While the BTO values are indicative of position, the BFO values are indicative of the speed (horizontal and vertical) and track of the aircraft. The BFO nvalues tell us, for instance, that MH370 was traveling south after 19:41, and also tell us the aircraft was in an increasingly steep descent at 00:19.
The radar path ends as MH370 was traveling northwest in the Malacca Strait. Yet we know from the satellite data that the flight ended in the SIO, and the satellite data after 19:41 shows a progression of values consistent with automated flight. The details of how MH370 might have been flown between 18:22 and 19:41 is still the subject of much debate, and it is possible that multiple maneuvers occurred in this time period. (I'll be presenting some thoughts on this in the next article, benefiting from some new insights.) For now, we start our analysis at 19:41 and don't consider the time period between 18:22 and 19:41, but also recognize that some of the paths presented below may be eliminated by constraints imposed when the time period 18:22 – 19:41 is considered.
The reconstructed paths starting at 19:41 and ending at 00:19 are shown in white in Figure 1 for paths at a constant pressure altitude of 35,000 ft. Wind and temperature data from GDAS were used to relate Mach number to ground speed. Each path corresponds to a specific track angle at 19:41. (The track angle will in general vary along each path as would be expected along a great circle.) Initial track angles between 162°T and 192°T were considered, and these paths cross the 7th arc over a range of latitudes between 22S and 40S. For each initial track angle, the position at 19:41 was found that minimized the RMS error for the BTO at the times 19:41, 20:41, 21:41, 22:41, and 00:11. (The position at 19:41 was not constrained to fall exactly on the 2nd arc.) The corresponding RMS error for the BFO values at times 19:41, 20:41, 21:41, 22:41, 23:14, and 00:11 was also recorded.
For automated control of speed, two autothrottle modes were considered for the time period between 19:41 and 00:11: constant Mach number, and Long Range Cruise (LRC), in which the Mach number decreases as fuel is burned and the weight decreases. For the time period between 19:41 and 00:11, a speed is chosen so that the aircraft exactly crosses the 7th arc at 00:19 .
The LRC speed schedule also serves as a proxy for ECON speed, for which the speed also varies with aircraft weight. ECON offers better cost efficiency than LRC because the relative value of time and fuel can be adjusted through a Cost Index (CI) parameter, and because the Mach number is adjusted for wind. However, I chose to not consider ECON speed here because the speed profile would be similar to LRC (depending on the CI), and the exact methodology is not generally available to the public for calculating Mach number as a function of weight, altitude, Cost Index, and wind. (Bobby Ulich has just published a model that makes excellent progress in this regard.) If ECON speed had been considered, it is possible that the BTO values for the same of the paths would have marginally improved.
Figure 2 shows the BTO and BFO errors across a range of latitudes for crossing the 7th arc. Some observations are:
Figure 2. Match to satellite data after 19:41 for great circle paths. (Click on image to enlarge.)
For latitudes south of 34S, the LRC speed is too slow, and constant Mach number results in a better BTO fit.
For latitudes north of 34S, the speed reduction offered by LRC speed results in a better BTO fit than for constant Mach number.
For the paths at constant Mach number, the Mach number varies between 0.801 for a crossing at 22S, to 0.842 for a crossing at 40S.
Constraining the BTO error to less than 32 μs eliminates paths crossing the 7th arc north of around 26.6S.
Constraining the BFO error to less than 7 Hz eliminates paths crossing the 7th arc south of 39S latitude and north of 28S latitude.
The minimum BTO error for LRC speed occurs for a crossing of the 7th arc around 33S latitude
The minimum BFO error occurs for a crossing of the 7th arc of around 35S latitude.
Flight Paths Leading to Waypoints Past 7th Arc
From among the family of reconstructed paths that follow great circles between 19:41 and 00:19, we consider three paths that align with three airports in Antarctica: South Pole (NZSP), Pegasus Field-McMurdo (NZPG), and Wilkins Runway (YWKS). In August 2014, I first considered a path towards the South Pole that might have occurred after a possible landing at Banda Aceh airport (WITT). Although I have long abandoned the possibility of a landing, the scenario of a holding pattern near Banda Aceh followed by a cruise on a due south course remains an interesting possibility. More recently, the path towards NZPG was investigated in a paper I co-authored with Richard Godfrey, and subsequently Richard proposed the YWKS destination in a separate paper.
The three paths to airports in Antarctica are shown in Figure 1 as black lines that extend past the 7th arc. The coordinates as the paths cross the 7th arc are also shown.
Added Nov 10, 2017: Additionally, a fourth path is shown which aligns with 45S, 104E, which are the coordinates from the final data set found on the captain's home computer. This case is included to represent the scenario where MH370 was flown towards the location where fuel exhaustion was simulated on the captain's home computer.
The match of the four paths to the satellite data is shown in Figure 2. Of the four, the path to NZSP crosses the 7th arc closest to the latitude where the BFO and LRC BTO errors are at their minimum values. (Lower BTO errors occur for constant Mach paths crossing at more southern latitudes. However, any path requiring Mach numbers faster than LRC is unlikely to have enough fuel.)
More on the Path Towards the South Pole
The flight towards the South Pole is interesting because there are several ways that the autopilot might be used to create this flight. In LNAV mode, a pilot could enter a custom waypoint with a latitude of 90S and any longitude. Or, he could enter the built-in waypoint for the South Pole, which is SPOLE. Or, if it's available in his waypoint database, he could enter the waypoint for the runway serving the South Pole, which is NZSP. Any of these methods would cause the aircraft to follow a path that closely follows a great circle to the South Pole. Also, if a pilot wanted to reach as far south as possible, a path towards the South Pole using LNAV would be an obvious selection.
Another procedure would be to use TRK SEL mode, with a value of 180° and the NORM/TRUE switch set to TRUE. Although this would produce similar results as the method using LNAV, it is possible that the aircraft could at times deviate from the required track, and the path could deviate from a great circle. For instance, a wind gust or turbulence could momentarily cause the track to deviate. Although the autopilot would correct for the deviation and bring the track back to the target value of 180°T, the error in path that accumulated during the track deviation would not be corrected. By contrast, in LNAV mode, deviations from the great circle path are continuously corrected so path errors don't accumulate.
There is also close alignment between this path towards the South Pole and waypoint BEDAX. I'll discuss this more in a future article.
Figure 3 shows an exploded view of the search area, showing the boundary of what was previously searched (yellow), and where CSIRO proposes to search next (green). The new search area extends about 25 NM to the northeast of the 7th arc at 35,000 ft (blue), and about 27.5 NM to the southwest. The three impact sites proposed by CSIRO are also shown, ordered by their priority. In this part of the arc, the width of the searched area is about 19 NM to either side of the 7th arc. The highest priority impact site is 23 NM to the southeast of the 7th arc, and falls within the proposed search area, which extends between 19 NM and 27.5 NM from the 7th arc.
Figure 3. Exploded view of search area proposed by CSIRO. (Click on image to enlarge.)
The path that extends to NZSP (white) is also shown in Figure 3, which runs along 93.7E longitude. At the point of crossing the arc, the width searched was only about 6.5 NM to the northwest and 15.6 NM to the southeast. The fact that this part of the arc was only narrowly searched presents an interesting opportunity to search in the future.
In the future articles, I'll present more thoughts on how the MH370 aircraft might have been flown between 18:22 and 19:41, and the implications for possible impact sites along the 7th arc.
Update on November 10, 2017
Here is a CSV file with data for the great circle paths, including the position and track at 19:41, position at 00:19, and speed mode. Included are the data for four paths that align with waypoints past the 7th arc. The four waypoints are the South Pole (NZSP), Wilkins Runway (YWKS), Pegasus Field-McMurdo (NZPG), and the fuel exhaustion position from the simulator data (45S, 104E).
In Figure 4 below, I have plotted the paths to the four waypoints (NZSP, YWKS, NZPG, 45S) on the same plot that was generated by CSIRO to show the cumulative probability of detection of low-windage debris by the surface search for various impact points along the arc. The calculated probabilities include the drift that might have occurred between the time and location of the impact and the time and location of the search. It can be seen that there are impact points along the 7th arc and north of 33S where the probability of detection is significantly less than 100%, especially if the impact was to the northwest of the arc.
Figure 4. Efficiency of surface search shown with selected great circle paths. (Adapted from CSIRO.) (Click on image to enlarge.)
IG Member Brian Anderson has reminded us that "There are a number of RNZAF photos of interesting flotsam (debris), in areas that may now be much more significant. Unfortunately none was ever recovered." Two of the more interesting photographs are found below. The first photo (Figure 5) is an unknown object that could be part of an aircraft. The second photo (Figure 6) is a field of floating debris.
Figure 5. Aerial photograph (5849) of unknown object on March 29, 2014, at 28.8866S, 96.0844E. (Click on image to enlarge.)
Figure 6. Aerial photograph (5832) of debris field on March 29, 2014, at 28.3927S, 97.7750E. (Click on image to enlarge.)
Both photographs were taken on March 29, 2014, at coordinates not far from where the great circle path to 45S,104E crosses the 7th arc near latitude 28.3S.
In order to determine if these objects are consistent with the expected drift of debris from an impact near 28.3S on March 8, 2014, I used the CSIRO-generated drift results for an impact on the arc near 28S latitude, where the drift model was seeded with objects within an approximate +/- 0.5 deg square area. The drift model results are shown in Figure 7 for the calculated position of debris on March 29, 2014.
Figure 7. Drift results from CSIRO for an impact along the 7th arc near 28S latitude. (Click on image to enlarge.)
The results are shown for low windage debris (red) and high windage debris (green), and should be representative of a range of objects produced by the impact. Both the unknown object and the debris field are found in the general vicinity of where the model predicts objects would drift for the modeled impact location. This makes the possible impact site of 28.3S even more interesting.
Posted in Aviation | 1,239 Comments »
Simulator Data from Computer of MH370 Captain: Part 1
by Victor Iannello Posted: Thursday, 10/12/2017
Simulator path (red) and recent MH150 flights (colored circles). (Click on image to enlarge.)
Within weeks after MH370's disappearance on March 8, 2014, news stories revealed that Captain Zaharie Shah deleted data from his home flight simulator in the weeks prior to the disappearance, and FBI investigators at Quantico, Virginia, were assisting in recovering the data. Months later, new reports surfaced stating that the captain had used his home simulator to practice flights to the Southern Indian Ocean, and then deleted those flights from his home computer. Despite these reports, there was no official confirmation from Malaysia that suspicious data was found on the captain's home computer.
We now know that the recovered data sets from the captain's computer were included in a report compiled by the Royal Malaysian Police (RMP). The report was eventually obtained by several French media organizations, and large portions of the report were later made public.
On August 14, 2016, the MH370 Independent Group (IG) released a preliminary assessment of the simulator data contained in the RMP report. The data sets were created by Microsoft Flight Simulator (MSFS) software, and are in the form of fragments of "flight files", which a user may create during a simulation session to record the state of the session for future reference or to resume the session at a future time. The particular flight files of interest were among hundreds of others found on the computer on several drives; however, the files of interest were deleted and recovered by investigators from a "volume shadow" on a single drive that was found disconnected from the computer. The grouping of the files in the volume shadow makes the set unique among the all flight files that were found.
The recovered flight files include flight and navigation parameters that are "snapshots in time", and are associated with six unique coordinates. If these coordinates were all from a single simulation, it suggests that a user simulated a flight of a B777-200LR aircraft with a departure from Kuala Lumpur International Airport (KLIA), a climb and cruise over the Malacca Strait and then the Andaman Sea, followed by a turn to the south, and a termination from fuel exhaustion in the Southern Indian Ocean (SIO) near 45S 104E. The IG found that if a great circle path that connects the final points is extended past the final point, the great circle would cross McMurdo Station, Antarctica. (McMurdo is the largest and most populated research station in Antarctica.) This raises the possibility that McMurdo was used as a final waypoint for navigation with the expectation that fuel would be exhausted in the SIO, well before reaching Antarctica.
The simulator data was found on what the Malaysian investigators refer to as drive MK25, where Microsoft Flight Simulator (MSFS) 2004, also known as FS9, was installed. (The main drive of the computer is referred to as MK26, where Microsoft Flight Simulator X, also known as FSX, was installed.)
The fragments of the flight files were found in a volume shadow dated February 3, 2014. A volume shadow is periodically created by the Windows operating system so that files can be restored to a particular date. This means that the file fragments found in the volume shadow were created on or before February 3, and then over-written on or after February 3.
Of the eight total flight file fragments that were recovered, three were for an aircraft on the ground at Kuala Lumpur International Airport (KLIA), and five were for an aircraft flying. Based on fuel levels and other indicators, the data sets in which the aircraft is flying can be related to one of the data sets for the aircraft at KLIA, i.e., six data sets appeared to be related to a single flight. The remaining two data sets at KLIA show fuel levels that are not consistent with the other data sets. These fuel levels may reflect intermediate values before the final takeoff fuel levels were selected.
There has been much discussion as to whether the six data sets are from a single simulation session, and whether the simulator was functioning normally when the data sets were saved. On November 29, 2016, I co-authored a paper with MSFS expert Yves Guillaume that investigated these and other aspects. To replicate the software used by the captain, Yves and I independently installed FS9 with the B777-LR model upgrade from Phoenix Simulation Software (PSS). After substantial testing, we discovered that:
The data points in the Andaman Sea share some of the same unique values as the data points in the SIO, suggesting the flight files came from the same simulated flight.
The parameters related to fuel and flight dynamics show that the position of the aircraft was manually changed along the flight path.
The data files were manually created and saved after certain parameters were manually changed.
The simulator appears to have been fully functional, and the rates of climb and other flight parameters after fuel exhaustion can be explained and repeated.
After this paper was published, I created a simulation that was initialized using the recovered values from the data set just after fuel exhaustion. I was able to show that it was possible to manually fly the plane for about 27 seconds and achieve the position, altitude, heading, pitch, and bank that were close to the values contained in the subsequent, final data set. This was further confirmation that the captain's simulator was properly functioning when the data sets were created. Here's a video of this short flight.
With the recent release of the ATSB's report on the operational search, we have learned more about the simulator data found on the captain's computer. Now three years and seven months after the disappearance, for the first time, the existence of the simulator data has been officially acknowledged in a public document. Although the ATSB does not speculate about whether the captain was responsible for the diversion, the report does reveal that in April 2014, the ATSB considered the simulator data as relevant evidence in defining the search area.
Date and Duration of the Simulator Session
From the ATSB's report, we learned that on April 19, 2014, the Australian Federal Police provided the ATSB with the recovered simulator data. The report states that The simulator data was a partial reconstruction of a flight simulator session from 2 February 2014. Based on the February 3 date of the volume shadow, we already knew that the simulation was created on or before February 3. However, I was curious to know how the ATSB determined that the exact date of the simulation session was February 2 since the information about date and time was not included in the file fragments that were provided in the RMP report.
After some email exchanges with the ATSB, I was surprised to learn that the ATSB has additional data values from the recovered flight files that were omitted from the data sets that were provided in the RMP report. In particular, there is a section of the flight files in which the date and time of the simulation session are stored. These data values tie the date of the simulation to February 2, 2014. Also, the time values show that the chronological order of the data sets matches a flight departing KLIA, flying over the Malacca Strait, continuing past the Andaman Islands, turning to the south, and exhausting fuel in the SIO, in the same order that the progressively depleting fuel levels suggest. The time values also indicate that the flight session lasted for about one hour. This confirms that the position and fuel levels were modified during the simulation, just as Yves Guillaume and I had concluded in our paper.
The newly released information regarding the date and duration of the simulator session means that it is almost certain that the recovered data sets were from a single flight session.
However, as the signed date of this part of the RMP report is May 15, 2014, it remains a mystery as to why the Malaysians omitted important data values that were already available to the ATSB on April 19, 2014.
Simulated Flight Path
Using our previous notation, we refer to the identification of each data set by its latitude, i.e., as 2N, 3N, 5N, 10N, 45S1, and 45S2. The position of the first four coordinates are shown above in the figure, where the position for data set 2N is Runway 32R at KLIA.
After takeoff, the next coordinate is 3N, which is in the Malacca Strait on airway R467 between waypoints AGOSA and GUNIP. The altitude for 3N is 23,247 ft.
The next is coordinate 5N, which is between GUNIP and TASEK near airway B466. The exact position suggests the aircraft has already left airway B466; the track, which can be calculated from the components of the velocity presented in the 5N data set, is 317 deg, which is exactly towards waypoint VAMPI on N571. (The value for the heading is 315 deg, which differs slightly from the track due to wind.) The altitude at coordinate 5N is 32,246 ft.
The final point for the northwest portion of the path is coordinate 10N, at an altitude of 40,003 ft, and to the west of the Andaman and Nicobar Islands. The plane is at a heading of 256 deg, and is banked at 20 deg and turning left towards the south. The coordinates for 10N place it near airway N877 between waypoints LAGOG and DOTEN. The position suggests that the aircraft left the airway about 30 NM before DOTEN.
The final two coordinates, 45S1 and 45S2, are in the SIO near 45S, 104E, and are separated by a distance of about 2.5 NM. Despite the short distance, the altitudes at 45S1 and 45S2 are 37,561 ft and 4,000 ft, respectively. The data set for 45S2 shows unmistakable evidence that the altitude was manually changed from 37,654 ft to 4,000 ft just before the data set was saved, which is consistent with the large change in altitude over a short distance.
The track of 5N towards VAMPI on N571, and the proximity of 10N to airway N877, together suggest that in the simulation session, after taking off and flying to GUNIP, the aircraft joined N571 and followed the waypoints VAMPI, MEKAR, NILAM, IGOGU, LAGOG, and DOTEN. The great circle alignment of 10N, 45S1, and Pegasus Field (NZPG) at McMurdo Station, Antarctica, means the session might have simulated a great circle path towards McMurdo Station until fuel exhaustion was reached in the SIO. (Aircraft that are flying in LNAV mode follow great circle paths between waypoints.)
Similarities to Flight MH150
We know that the recovered simulator coordinates describe a flight departing KLIA that is not consistent with a flight to Beijing: the initial path of the simulation is to the northwest, flying over the Malacca Strait, and the initial path to Beijing is to the northeast, and flies above the South China Sea. I searched for whether there might be a scheduled flight that better matched the simulation coordinates 2N, 3N, 5N, and 10N. In particular, I searched for scheduled flights that had a departure that followed a route from KLIA to GUNIP, and then to either TASEK or VAMPI, and would require a fuel loading similar to the 68,424 kg that is inferred from data set 2N.
After considering the list of Malaysia Air's departing flights from Kuala Lumpur, I discovered that MH150, from Kuala Lumpur to Jeddah, Saudi Arabia, met the fuel and path criteria. Next, I checked whether the captain had flown any MH150 flights in that time period. I was surprised to learn that he commanded MH150 on February 4, 2014, which appeared to be very close to the date that the simulation session was created. In November 2016, I privately communicated my findings to other independent investigators, although I thought it was still too speculative and controversial to present in a public forum. Months later, on April 30, 2017, I noted in a blog comment:
The flight might have been a simulation of a flight from KLIA to Jeddah with a diversion, as the fuel loading and SID are consistent with that. Also, Zaharie Shah was scheduled to captain MH150 to Jeddah on Feb 4, 2014. The Shadow Copy Set containing the deleted flight file fragments was dated Feb 3, 2014.
Now that we know that the exact date of the simulation session was February 2, 2014, the link between the simulation session and MH150 is less speculative. The authors of the recent ATSB report had similar thoughts:
On the day the simulation was conducted the PIC was on a rostered day of leave. The following day the PIC was rostered to fly from Kuala Lumpur to Denpasar, Bali and return the same day. On 4 February 2014 the PIC was rostered to fly from Kuala Lumpur to Jeddah, Saudi Arabia. The first three data points recovered from the simulator were consistent with the route from Kuala Lumpur to Jeddah. In the weeks between the Jeddah flight and the accident flight the PIC was rostered to fly return flights from Kuala Lumpur to Denpasar, Beijing, Melbourne and then Denpasar again.
I was curious to see just how close the path suggested by the simulator coordinates resembled previous paths taken by MH150. For the comparison, I used the ADS-B data available from FlightRadar24 for eight consecutive flights between Aug 17, 2017 and Sep 21, 2017. (The available data for all the flights end around waypoint LAGOG, probably due to the range limitations of the receivers in the vicinity.) The MH150 flight paths are plotted above in the figure.
For seven of the eight flights, the aircraft departed KLIA and flew over waypoint GUNIP. For the seven flights that flew over GUNIP, six followed airway N571 towards VAMPI and continued to follow N571 towards LAGOG. One of the six that reached GUNIP, one flew towards TASEK on airway B466, but rejoined N571 near IGOGU. (Some of the flights show deviations from airways, which are probably weather related.). The similarity between typical routes taken by MH150 and the simulator data is evident.
We can only speculate as to why, just two days before he commanded MH150 from Kuala Lumpur to Jeddah, and five weeks before the disappearance of MH370, the captain used his home computer to simulate a flight of MH150 that was diverted to the SIO.
In Part 2, we further investigate the simulator data and how it may give us clues about MH370.
Updates on October 13 and 15, 2017. In the figure, the dates in the legend were corrected so that all refer to year 2017. Also, the label on the airway between LAGOG and DOTEN was corrected to be N877, and the label of the airway between GUNIP and TASEK was corrected to be B466. Thank you to Twitter handle @BKKDiet and blog contributors @Mick Gilbert and @TBill for finding these errors.
Posted in Aviation | 554 Comments »
ATSB Releases Final Report on MH370
by Victor Iannello Posted: Monday, 10/2/2017
The Australian Transport Safety Bureau (ATSB) has released a report entitled "The Operational Search for MH370". It is a long document (440 pages) that is meant to provide final documentation of all of the ATSB's activities related to this incident. There are no new conclusions, although we can gain some new insights:
MH370 flew over or near IFR waypoints a cluster of waypoints near Kota Bharu called ABTOK, KADAX, and GOLUD and later PUKAR as it flew towards Penang. This implies that MH370 was following waypoints after the transponder stopped operating after the turn back.
The registration of the first officer's cell phone on a tower on Penang Island is officially acknowledged for the first time. A footnote citation says, "This information was obtained by the Royal Malaysian Police and reported to the Ministry of Transport Malaysia. Though a formal report was not available to the ATSB, information relevant to the search was shared." Of course, this begs the question as to why the ATSB only learned of this information after the RMP report was leaked.
The two sources of the primary surveillance radar (PSR) data revealed to be the civilian radar at Kota Bharu and the military radar on Penang Island on Western Hill. The military radar captures are described as "not continuous" with no further explanation.
After passing Penang Island, the report says the "Radar data shows the aircraft then headed to the northwest, eventually aligning with published air route N571 from IFR waypoint VAMPI. The validity of this section of the radar data was verified using the track of a commercial flight that followed N571 about 33 NM behind MH370." This implies the radar captures shown to the NOK in Beijing on March 21, 2014, at the Lido Hotel, are valid. The performance of the military radar was verified by comparing the civil radar data to the military data as another commercial aircraft, likely to be EK343, trailed 33 NM behind MH370.
The data recovered from the captain's home flight simulator is discussed for the first time in an official report. An overview of the data is presented, suggesting a flight from Kuala Lumpur up the Strait of Malacca, and then towards the Southern Indian Ocean (SIO), ending in fuel exhaustion. The flight path recovered from the simulator did not match the MH370 flight paths that were reconstructed from the Inmarsat satellite data.
The ATSB pegs the date of the simulator session as February 2, 2014. We know that the deleted file fragments were found in a Shadow Volume with the date February 3, 2014, so likely the session was created on or shortly before that date. It is not explained how the ATSB can be sure the session was created on exactly February 2, 2014, but this would be significant.
There is mention that the last data point in the SIO suggested there was a user input of an altitude of 4,000 ft. (The evidence that the simulator's user manually changed the altitude and other parameters during the flight was first presented in a paper by me and Yves Guillaume.)
There is acknowledgement that the simulator data shows a beginning sequence that is similar to the flight the captain flew from Kuala Lumpur to Jeddah, Saudi Arabia, on February 4, 2014. (The significance of the similarities in path and timing between the simulator data and the captain's flight MH150 to Jeddah was first discussed on this blog.)
Although the ATSB does not speculate that the captain was responsible for the diversion, and although the simulator data was not deemed useful for reconstructing possible flight paths of MH370, based on the presentation of this data in the report, it is clear that the ATSB considers the simulator data to be significant evidence.
Based on examination of the debris and a detailed study of the final BFO data, the ATSB believes that MH370's flight ended in a steep, uncontrolled descent. This will serve to limit the distance from the 7th arc for future searches.
Although there was an attempt by the official investigators to discern information about the crash site from an investigation of the marine ecology attached to the recovered debris, all results were inconclusive.
No new drift analyses are presented. The ATSB reaffirms its belief that the most likely crash site is 35.6S, 92.8E, based on the drift analyses by CSIRO.
So, although there are no new conclusions in this report, there are some interesting new pieces of information. It is also important to note that Malaysia chose to omit key pieces of evidence from the Factual Information (FI) released in March 2015 that are presented in the new ATSB report. These pieces of evidence include details about the radar data, information regarding the simulator data found on the captain's home computer, and the data related to the registration of the first officer's cell phone as the aircraft flew near Penang. Although these omissions have been discussed in detail on this blog, perhaps with the release of the ATSB report, more will question why Malaysia chose to not disclose, and even deny the existence of, important evidence.
On a final note, the ATSB chose to acknowledge the contributions of some of the independent investigators, including many that comment here. The ATSB was kind enough to give a special recognition to Blaine Gibson:
The ATSB acknowledges the extensive contributions that many individuals and groups have made during the underwater search for MH370. Many contributors have provided credible, alternate and independent approaches and analysis of the limited data available. In particular, the 'MH370 Independent Group' comprised of scientists, researchers and individuals who have cooperated across continents to advance the search for MH370. The ATSB is grateful for their work collectively and individually including Duncan Steel, Mike Exner, Victor Iannello, Don Thompson, and Richard Godfrey. The ATSB also acknowledges the extensive and detailed contributions provided by Simon Hardy, Bobby Ulich and Robin Stevens.
The search for MH370 was significantly advanced after the first debris from the aircraft was found on La Reunion Island in July 2015. The subsequent efforts of Blaine Gibson in searching for and locating MH370 debris on east African coastlines did much to raise public awareness of the importance of the MH370 debris which led to many more items of debris being handed in. Mr Gibson met and communicated with ATSB during his 2015-2016 search expeditions and he is acknowledged for his outstanding efforts in communicating his debris finds to Malaysia, ATSB, the next of kin and the wider world.
A Comprehensive Survey of Possible MH370 Paths
A New Methodology to Determine MH370's Path
Insights from New MH370 Tracking Data
MH370 Family Member: Give Us the Truth
MH370 Flight Around Penang
DennisW on A Comprehensive Survey of Possible MH370 Paths
Niels on A Comprehensive Survey of Possible MH370 Paths
Sid Bennett on A Comprehensive Survey of Possible MH370 Paths
TBill on A Comprehensive Survey of Possible MH370 Paths
Andrew on A Comprehensive Survey of Possible MH370 Paths
Copyright © 2020, Victor Iannello


Reza Farahan helps Nema Vand connect with his Persian culture.
Preview Nema Buys His Very First Gold Necklace!
Show Highlight Would You Do This Hours Before Your Wedding?
Preview Next on Shahs of Sunset: It's the Day Before MJ's Wedding!


Join us on Wednesday 13 March for another popular BIA networking lunch. This is an ideal opportunity to meet new business contacts, network with members and hear from local members. Speakers will focus on international collaborations from all over the world and how it has improved their business and innovation. We will also be joined by selected Turkish life science companies participating in Innovate UK's Newton Fund programme, T-DEB, which promotes R&D partnerships between Turkey and the UK.


The Peoples Democratic Party has reacted to the comments made by Kaduna State governor, Nasir el-Rufai over interference from foreign nationals.
Following comments by Governor Nasir el-Rufai of Kaduna state that any foreigners who may interfere in Nigeria's electoral process would be returned in "body bag," the Peoples Democratic Party (PDP) on Wednesday threatened to pull out in the peace accord it signed with other political parties.
But addressing a press conference in Abuja on Wednesday over the matter, Kola Ologbondiyan, National Publicity Secretary and Director, Media & Publicity PDP Presidential Campaign Organisation, said the party considered that the governor's remark as directly inimical to a peaceful, free and fair election.
He stated that the PDP is therefore left with no option than to consider a review of its signatory in the national peace accord if no action is immediately taken to curb this trend.
Ologbodiyan added: "Nigerians are still in a shock over comments by the Governor of Kaduna state, Mallam Nasir el-Rufai, who declared on national television that members of the global democratic institutions that are working for a peaceful election in Nigeria will return to their countries in body bags. What a threat?
The statement further said: "Nigerians are aware of how CP Kayode Egbetokun was posted to Lagos state by the disgraced former Inspector General of Police, Idris Ibrahim, to serve the same partisan interest and how that posting was stopped by the new IGP Adamu Mohammed. Now, he is being redeployed to Kwara state for the same ignoble plot.
"These pedigree and exposure place on his shoulders, the responsibility to be just, firm, equitable and professional in the discharge of his duties. We, therefore, urge him not to allow his reputation to be mired in controversial political activities.
"We, therefore, call on the National Peace Committee to immediately summon El-Rufai on his inflammatory remarks against the peaceful election in our country.


Broadband versions are for visitors with DSL, Cable Modem, T3 or T1 Connections; Dial-up versions are optimized for access via 28.8Kbps and 56Kbps telephone modems.
For a satisfactory viewing experience, a broadband connection is recommended, however, a dial-up connection will deliver a good enough picture for you to recognize the speaker during close-up shots and the audio portion will be adequate.
If you are using Firefox to navigate our website, you might have issues with viewing our archive streams. you will need to right click on the meeting link that you want to watch and copy the URL. Then open the windows media player and to to the file menu and select "Open URL" from the dropdown menu that appears. Paste the URL you copied from our website to the box that appears and click okay. You should be able to watch the meeting that you choose to.
Only recordings of the most recently televised meeting of the city council is available on our website. Copies of older meetings are archived in Windows Media Format on CD ROM at the city clerks offices. If you have a need for access to older meetings contact us at 772-589-5330.
If you are using a mac, you will need an additional program installed on your machine in order to view the stream. Microsoft provides a product called Flip4MacTM. With Windows Media® Components for QuickTime, by Flip4MacTM, you can play Windows Media files (.wma and .wmv) directly in QuickTime Player and view Windows Media content on the Internet using a Web browser.
If you need more information or have trouble with downloading, installation or operation of the Windows Media Player there is a troubleshooting guide available at Microsoft Product Support Services .


text:
use driver::session::Session;

use middle::save::generated_code;

use std::cell::Cell;

use syntax::ast;
use syntax::codemap::*;
use syntax::parse::lexer;
use syntax::parse::lexer::{Reader,StringReader};
use syntax::parse::token;
use syntax::parse::token::{is_keyword,keywords,is_ident,Token};

pub struct SpanUtils<'a> {
    pub sess: &'a Session,
    pub err_count: Cell<int>,
}

impl<'a> SpanUtils<'a> {
    // Standard string for extents/location.
    pub fn extent_str(&self, span: Span) -> String {
        let lo_loc = self.sess.codemap().lookup_char_pos(span.lo);
        let hi_loc = self.sess.codemap().lookup_char_pos(span.hi);
        let lo_pos = self.sess.codemap().lookup_byte_offset(span.lo).pos;
        let hi_pos = self.sess.codemap().lookup_byte_offset(span.hi).pos;

        format!("file_name,{},file_line,{},file_col,{},extent_start,{},\
                 file_line_end,{},file_col_end,{},extent_end,{}",
                lo_loc.file.name, lo_loc.line, lo_loc.col.to_uint(), lo_pos.to_uint(),
                hi_loc.line, hi_loc.col.to_uint(), hi_pos.to_uint())
    }

    // sub_span starts at span.lo, so we need to adjust the positions etc.
    // If sub_span is None, we don't need to adjust.
    pub fn make_sub_span(&self, span: Span, sub_span: Option<Span>) -> Option<Span> {
        let loc = self.sess.codemap().lookup_char_pos(span.lo);
        assert!(!generated_code(span),
                "generated code; we should not be processing this `{}` in {}, line {}",
                 self.snippet(span), loc.file.name, loc.line);

        match sub_span {
            None => None,
            Some(sub) => {
                let FileMapAndBytePos {fm, pos} =
                    self.sess.codemap().lookup_byte_offset(span.lo);
                let base = pos + fm.start_pos;
                Some(Span {
                    lo: base + self.sess.codemap().lookup_byte_offset(sub.lo).pos,
                    hi: base + self.sess.codemap().lookup_byte_offset(sub.hi).pos,
                    expn_id: NO_EXPANSION,
                })
            }
        }
    }

    pub fn snippet(&self, span: Span) -> String {
        match self.sess.codemap().span_to_snippet(span) {
            Some(s) => s,
            None => String::new(),
        }
    }

    pub fn retokenise_span(&self, span: Span) -> StringReader<'a> {
        // sadness - we don't have spans for sub-expressions nor access to the tokens
        // so in order to get extents for the function name itself (which dxr expects)
        // we need to re-tokenise the fn definition

        // Note: this is a bit awful - it adds the contents of span to the end of
        // the codemap as a new filemap. This is mostly OK, but means we should
        // not iterate over the codemap. Also, any spans over the new filemap
        // are incompatible with spans over other filemaps.
        let filemap = self.sess.codemap().new_filemap(String::from_str("<anon-dxr>"),
                                                      self.snippet(span));
        let s = self.sess;
        lexer::StringReader::new(s.diagnostic(), filemap)
    }

    // Re-parses a path and returns the span for the last identifier in the path
    pub fn span_for_last_ident(&self, span: Span) -> Option<Span> {
        let mut result = None;

        let mut toks = self.retokenise_span(span);
        let mut bracket_count = 0u;
        loop {
            let ts = toks.next_token();
            if ts.tok == token::EOF {
                return self.make_sub_span(span, result)
            }
            if bracket_count == 0 &&
               (is_ident(&ts.tok) || is_keyword(keywords::Self, &ts.tok)) {
                result = Some(ts.sp);
            }

            bracket_count += match ts.tok {
                token::LT => 1,
                token::GT => -1,
                token::BINOP(token::SHR) => -2,
                _ => 0
            }
        }
    }

    // Return the span for the first identifier in the path.
    pub fn span_for_first_ident(&self, span: Span) -> Option<Span> {
        let mut toks = self.retokenise_span(span);
        let mut bracket_count = 0u;
        loop {
            let ts = toks.next_token();
            if ts.tok == token::EOF {
                return None;
            }
            if bracket_count == 0 &&
               (is_ident(&ts.tok) || is_keyword(keywords::Self, &ts.tok)) {
                return self.make_sub_span(span, Some(ts.sp));
            }

            bracket_count += match ts.tok {
                token::LT => 1,
                token::GT => -1,
                token::BINOP(token::SHR) => -2,
                _ => 0
            }
        }
    }

    // Return the span for the last ident before a `(` or `<` or '::<' and outside any
    // any brackets, or the last span.
    pub fn sub_span_for_meth_name(&self, span: Span) -> Option<Span> {
        let mut toks = self.retokenise_span(span);
        let mut prev = toks.next_token();
        let mut result = None;
        let mut bracket_count = 0u;
        let mut last_span = None;
        while prev.tok != token::EOF {
            last_span = None;
            let mut next = toks.next_token();

            if (next.tok == token::LPAREN ||
                next.tok == token::LT) &&
               bracket_count == 0 &&
               is_ident(&prev.tok) {
                result = Some(prev.sp);
            }

            if bracket_count == 0 &&
                next.tok == token::MOD_SEP {
                let old = prev;
                prev = next;
                next = toks.next_token();
                if next.tok == token::LT &&
                   is_ident(&old.tok) {
                    result = Some(old.sp);
                }
            }

            bracket_count += match prev.tok {
                token::LPAREN | token::LT => 1,
                token::RPAREN | token::GT => -1,
                token::BINOP(token::SHR) => -2,
                _ => 0
            };

            if is_ident(&prev.tok) && bracket_count == 0 {
                last_span = Some(prev.sp);
            }
            prev = next;
        }
        if result.is_none() && last_span.is_some() {
            return self.make_sub_span(span, last_span);
        }
        return self.make_sub_span(span, result);
    }

    // Return the span for the last ident before a `<` and outside any
    // brackets, or the last span.
    pub fn sub_span_for_type_name(&self, span: Span) -> Option<Span> {
        let mut toks = self.retokenise_span(span);
        let mut prev = toks.next_token();
        let mut result = None;
        let mut bracket_count = 0u;
        loop {
            let next = toks.next_token();

            if (next.tok == token::LT ||
                next.tok == token::COLON) &&
               bracket_count == 0 &&
               is_ident(&prev.tok) {
                result = Some(prev.sp);
            }

            bracket_count += match prev.tok {
                token::LT => 1,
                token::GT => -1,
                token::BINOP(token::SHR) => -2,
                _ => 0
            };

            if next.tok == token::EOF {
                break;
            }
            prev = next;
        }
        if bracket_count != 0 {
            let loc = self.sess.codemap().lookup_char_pos(span.lo);
            self.sess.span_bug(span,
                format!("Mis-counted brackets when breaking path? Parsing '{}' in {}, line {}",
                        self.snippet(span), loc.file.name, loc.line).as_slice());
        }
        if result.is_none() && is_ident(&prev.tok) && bracket_count == 0 {
            return self.make_sub_span(span, Some(prev.sp));
        }
        self.make_sub_span(span, result)
    }

    // Reparse span and return an owned vector of sub spans of the first limit
    // identifier tokens in the given nesting level.
    // example with Foo<Bar<T,V>, Bar<T,V>>
    // Nesting = 0: all idents outside of brackets: ~[Foo]
    // Nesting = 1: idents within one level of brackets: ~[Bar, Bar]
    pub fn spans_with_brackets(&self, span: Span, nesting: int, limit: int) -> Vec<Span> {
        let mut result: Vec<Span> = vec!();

        let mut toks = self.retokenise_span(span);
        // We keep track of how many brackets we're nested in
        let mut bracket_count = 0i;
        loop {
            let ts = toks.next_token();
            if ts.tok == token::EOF {
                if bracket_count != 0 {
                    let loc = self.sess.codemap().lookup_char_pos(span.lo);
                    self.sess.span_bug(span, format!(
                        "Mis-counted brackets when breaking path? Parsing '{}' in {}, line {}",
                         self.snippet(span), loc.file.name, loc.line).as_slice());
                }
                return result
            }
            if (result.len() as int) == limit {
                return result;
            }
            bracket_count += match ts.tok {
                token::LT => 1,
                token::GT => -1,
                token::BINOP(token::SHL) => 2,
                token::BINOP(token::SHR) => -2,
                _ => 0
            };
            if is_ident(&ts.tok) &&
               bracket_count == nesting {
                result.push(self.make_sub_span(span, Some(ts.sp)).unwrap());
            }
        }
    }

    pub fn sub_span_before_token(&self, span: Span, tok: Token) -> Option<Span> {
        let mut toks = self.retokenise_span(span);
        let mut prev = toks.next_token();
        loop {
            if prev.tok == token::EOF {
                return None;
            }
            let next = toks.next_token();
            if next.tok == tok {
                return self.make_sub_span(span, Some(prev.sp));
            }
            prev = next;
        }
    }

    // Return an owned vector of the subspans of the tokens that come before tok2
    // which is before tok1. If there is no instance of tok2 before tok1, then that
    // place in the result is None.
    // Everything returned must be inside a set of (non-angle) brackets, but no
    // more deeply nested than that.
    pub fn sub_spans_before_tokens(&self,
                               span: Span,
                               tok1: Token,
                               tok2: Token) -> Vec<Option<Span>> {
        let mut sub_spans : Vec<Option<Span>> = vec!();
        let mut toks = self.retokenise_span(span);
        let mut prev = toks.next_token();
        let mut next = toks.next_token();
        let mut stored_val = false;
        let mut found_val = false;
        let mut bracket_count = 0u;
        while next.tok != token::EOF {
            if bracket_count == 1 {
                if next.tok == tok2 {
                    sub_spans.push(self.make_sub_span(span, Some(prev.sp)));
                    stored_val = true;
                    found_val = false;
                }
                if next.tok == tok1 {
                    if !stored_val {
                        sub_spans.push(None);
                    } else {
                        stored_val = false;
                    }
                    found_val = false;
                }
                if !stored_val &&
                   is_ident(&next.tok) {
                    found_val = true;
                }
            }

            bracket_count += match next.tok {
                token::LPAREN | token::LBRACE => 1,
                token::RPAREN | token::RBRACE => -1,
                _ => 0
            };

            prev = next;
            next = toks.next_token();
        }
        if found_val {
            sub_spans.push(None);
        }
        return sub_spans;
    }

    pub fn sub_span_after_keyword(&self,
                              span: Span,
                              keyword: keywords::Keyword) -> Option<Span> {
        let mut toks = self.retokenise_span(span);
        loop {
            let ts = toks.next_token();
            if ts.tok == token::EOF {
                return None;
            }
            if is_keyword(keyword, &ts.tok) {
                let ts = toks.next_token();
                if ts.tok == token::EOF {
                    return None
                } else {
                    return self.make_sub_span(span, Some(ts.sp));
                }
            }
        }
    }

    // Returns a list of the spans of idents in a patch.
    // E.g., For foo::bar<x,t>::baz, we return [foo, bar, baz] (well, their spans)
    pub fn spans_for_path_segments(&self, path: &ast::Path) -> Vec<Span> {
        if generated_code(path.span) {
            return vec!();
        }

        self.spans_with_brackets(path.span, 0, -1)
    }

    // Return an owned vector of the subspans of the param identifier
    // tokens found in span.
    pub fn spans_for_ty_params(&self, span: Span, number: int) -> Vec<Span> {
        if generated_code(span) {
            return vec!();
        }
        // Type params are nested within one level of brackets:
        // i.e. we want ~[A, B] from Foo<A, B<T,U>>
        self.spans_with_brackets(span, 1, number)
    }

    pub fn report_span_err(&self, kind: &str, span: Span) {
        let loc = self.sess.codemap().lookup_char_pos(span.lo);
        info!("({}) Could not find sub_span in `{}` in {}, line {}",
              kind, self.snippet(span), loc.file.name, loc.line);
        self.err_count.set(self.err_count.get()+1);
        if self.err_count.get() > 1000 {
            self.sess.bug("span errors reached 1000, giving up");
        }
    }
}

redpajama_set_name: RedPajamaGithub


This tutorial will show you how to work with Fermi-LAT data with Gammapy. As an example, we will look at the Galactic center region using the high-energy dataset that was used for the 3FHL catalog, in the energy range 10 GeV to 2 TeV.
We note that support for Fermi-LAT data analysis in Gammapy is very limited. For most tasks, we recommend you use Fermipy, which is based on the Fermi Science Tools (Fermi ST).
Using Gammapy with Fermi-LAT data could be an option for you if you want to do an analysis that is not easily possible with Fermipy and the Fermi Science Tools. For example a joint likelihood fit of Fermi-LAT data with data e.g. from H.E.S.S., MAGIC, VERITAS or some other instrument, or analysis of Fermi-LAT data with a complex spatial or spectral model that is not available in Fermipy or the Fermi ST.
Besides Gammapy, you might want to look at are Sherpa or 3ML. Or just using Python to roll your own analyis using several existing analysis packages. E.g. it it possible to use Fermipy and the Fermi ST to evaluate the likelihood on Fermi-LAT data, and Gammapy to evaluate it e.g. for IACT data, and to do a joint likelihood fit using e.g. iminuit or emcee.
To use Fermi-LAT data with Gammapy, you first have to use the Fermi ST to prepare an event list (using gtselect and gtmktime, exposure cube (using gtexpcube2 and PSF (using gtpsf). You can then use gammapy.data.EventList, gammapy.maps and the gammapy.irf.EnergyDependentTablePSF to read the Fermi-LAT maps and PSF, i.e. support for these high-level analysis products from the Fermi ST is built in. To do a 3D map analyis, you can use Fit for Fermi-LAT data in the same way that it's use for IACT data. This is illustrated in this notebook. A 1D region-based spectral analysis is also possible, this will be illustrated in a future tutorial. There you have to extract 1D counts, exposure and background vectors and then pass them to SpectrumFit.
IMPORTANT: For this notebook you have to get the prepared 3fhl dataset provided in your $GAMMAPY_DATA.
Note that the 3fhl dataset is high-energy only, ranging from 10 GeV to 2 TeV.
The event data is stored in a astropy.table.Table object. In case of the Fermi-LAT event list this contains all the additional information on positon, zenith angle, earth azimuth angle, event class, event type etc.
Let us start to prepare things for an 3D map analysis of the Galactic center region with Gammapy. The first thing we do is to define the map geometry. We chose a TAN projection centered on position (glon, glat) = (0, 0) with pixel size 0.1 deg, and four energy bins.
[10, 30, 100, 300, 2000], name="energy", unit="GeV", interp="log"
# multiple times when executing the ``fill_by_coord`` multiple times.
The Fermi-LAT datatset contains the energy-dependent exposure for the whole sky as a HEALPix map computed with gtexpcube2. This format is supported by gammapy.maps directly.
Interpolating the exposure cube from the Fermi ST to get an exposure cube matching the spatial geometry and energy axis defined above with Gammapy is easy. The only point to watch out for is how exactly you want the energy axis and binning handled.
Below we just use the default behaviour, which is linear interpolation in energy on the original exposure cube. Probably log interpolation would be better, but it doesn't matter much here, because the energy binning is fine. Finally, we just copy the counts map geometry, which contains an energy axis with node_type="edges". This is non-ideal for exposure cubes, but again, acceptable because exposure doesn't vary much from bin to bin, so the exact way interpolation occurs in later use of that exposure cube doesn't matter a lot. Of course you could define any energy axis for your exposure cube that you like.
The Fermi-LAT collaboration provides a galactic diffuse emission model, that can be used as a background model for Fermi-LAT source analysis.
Diffuse model maps are very large (100s of MB), so as an example here, we just load one that represents a small cutout for the Galactic center region.
diffuse_galactic_fermi.unit = "cm-2 s-1 MeV-1 sr-1"
Next we will tke a look at the PSF. It was computed using gtpsf, in this case for the Galactic center position. Note that generally for Fermi-LAT, the PSF only varies little within a given regions of the sky, especially at high energies like what we have here. We use the gammapy.irf.EnergyDependentTablePSF class to load the PSF and use some of it's methods to get some information about it.
Let's compute a background cube, with predicted number of background events per pixel from the diffuse Galactic and isotropic model components. For this, we use the use the gammapy.cube.MapEvaluator to multiply with the exposure and apply the PSF. The Fermi-LAT energy dispersion at high energies is small, we neglect it here.
Let's compute an excess and flux image, by subtracting the background, and summing over the energy axis.
Finally, the big finale: let's do a 3D map fit for the source at the Galactic center, to measure it's position and spectrum. We keep the background normalisation free.
Fit the position and spectrum of the source SNR G0.9+0.1.
Make maps and fit the position and spectrum of the Crab nebula.
In this tutorial you have seen how to work with Fermi-LAT data with Gammapy. You have to use the Fermi ST to prepare the exposure cube and PSF, and then you can use Gammapy for any event or map analysis using the same methods that are used to analyse IACT data.
This works very well at high energies (here above 10 GeV), where the exposure and PSF is almost constant spatially and only varies a little with energy. It is not expected to give good results for low-energy data, where the Fermi-LAT PSF is very large. If you are interested to help us validate down to what energy Fermi-LAT analysis with Gammapy works well (e.g. by re-computing results from 3FHL or other published analysis results), or to extend the Gammapy capabilities (e.g. to work with energy-dependent multi-resolution maps and PSF), that would be very welcome!


I have saved my seed from last year and did a germination test last week. The seed looks good but a couple seeds got moldy before germinating, all the rest (about 20 seeds) were fine. Is this typical of what is expected? Is there anything folks do to sanitize the seed? I am newer to saving seed so any advice would be appreciated.


My radio show running on air has been broadcasting for a few weeks now on South Leeds Community Radio. I have been enjoying making it and already I have been getting some encouraging feedback and involvement from other people. Alongside the radio show I am running a group for people to get started with running, and last week was the first session. I was a bit scared about how it would go and if anyone would turn up, but it was fab!
Jill joined me to record my show in the morning and then stayed to help me with the group. As we were getting ready to go my friend James put in a surprise appearance – complete with a tin of his yummy Ginger Crunch for us to enjoy afterwards! Big thanks to you both for support – it was much appreciated.
Most of the group were fellow volunteers from SLCR who had been cajoled into coming along, and there was one lady who, although already a runner, was seeking additional support and guidance. She had heard about running on air through a friend, who in turn is a friend of a volunteer.
So our little group headed off towards Cross Flatts Park. It's about a 10-minute walk, so we chatted on the way, and then did some warm-up drills when we arrived. Then it was a 1-minute walk, 2-minutes jog session, covering a mile in total to celebrate the 60th anniversary of Roger Bannister's four-minute mile. We did our mile in 13:46, so we now have a benchmark to improve upon.
After some stretches we walked back to the station for snacks and pats on the back.
Everyone did really well, and there were a couple of people in particular who surprised and impressed me. They all said they had enjoyed it and promised to come back. Some were even asking about races and there were parkrun sign-ups going on while we were still there!
It was really fun for me to share something that I enjoy so much, and it was great to help others discover the joy of being active. I'm excited to see everyone progress over the next few weeks and months, and I hope they continue to enjoy their running journey with me.
On Sunday 13th April I (mostly) ran the London Marathon. It was a unique and interesting experience. And I have no intention of ever repeating it.
What follows is a haphazard account of the build-up, the race and my thoughts and feelings.
I travelled to London on the Friday to give myself plenty of time to visit the expo to collect my number that evening, and have a relaxing day on Saturday. The plan worked out marvellously – Rose and I wandered through the expo without incident (and without spending very much – I just stocked up on gels) and I went to the Old Operating Theatre Museum on Saturday, which was marvellous and not too tiring. I volunteered to be the "patient" so the historian could demonstrate an amputation – I told her about the marathon though so she made sure I survived the procedure!
By Sunday morning I was feeling much calmer about the marathon and had decided that I wouldn't try to do it in under 4:30. That just seemed silly and there was no need for me to go chasing after a time – it would be much more enjoyable if I just ran for the experience. I am glad I decided on this.
I got to the start area in plenty of time, coffee in hand, and straightaway bumped into my running club friends Emma, Jill and Graham who were helping out on the water stands. This meant we had a convenient meeting point so I also got to chat with Burjor, Jason and Kieran, and I spotted Lucy in the toilet queue.
The friendly faces, plus the masses of room in the park and the good weather made for a very chilled out 90 minutes before the race. In fact, it was probably the most relaxed I have been before a race! Fantastic!
In the start pen I bumped into someone I know online so more friendly chats to keep the nerves in check. And soon enough we were off. It took about 14 minutes to get to the start line, and straightaway there was plenty of support from the spectators lining the route. The sun was shining, music was blaring from various houses, and all was good with the world.
I really enjoyed the first few miles and couldn't stop grinning. Here I was, my first ever marathon and I was running it in London. What a thing!
I stuck to my fuelling plan and avoided the temptation to drink loads at each water station. I ran just as fast or as slow as I felt like running, happily accepted jelly babes off firemen, high-fived various kids and did my best to soak it all up.
The miles added up and before I knew it I was running over Tower Bridge, which brought the first tears to my eyes. Soon after it was about halfway and I spotted the Kirkstall Harriers support crew on the opposite side of the road so gave them a good wave.
At this point the route starts to get a bit bendy, and I think this is where I began to lose it a little.
The noise was just phenomenal.
I couldn't see more than half a metre in any direction except for straight up because of the sheer amount of bodies around me, both runners and spectators.
It was sensory overload. People were clapping, shouting names, whistling and whooping. Various styles of music came and went, from brass bands to Led Zeppelin.
Sweets were being thrust at me from all angles, and everywhere I looked there were crowds of people drinking, waving banners and jumping up and down.
I felt like a molecule of water being carried along with the current. I was simply a small part in a mass race and there wasn't room, time or mental capacity to run my own race, let alone enjoy it.
I couldn't hear myself think, and consequently I couldn't concentrate on my form or even give myself a pep talk. Everything was INPUT INPUT INPUT, with so much going on externally that I couldn't do anything about what was going on internally. Intense does not even begin to cover it.
I started to slow considerably by about mile 17, and from mile 20 onwards there was a lot of walking. This didn't bother me in the slightest – I was glad to just be going forward and not fussed about whether it took me another hour or three to get to the finish line. Add in the fact that it got very narrow in places, and that a lot of other people were walking, then jogging a bit, and it made for a very stop-start final third.
I ran the last mile or so, doing my best to ignore the noisy crowds, have a look at the Tower of London, the Eye and Parliament and give Her Majesty a quick wave. I crossed the line in 5:27:29 and was absolutely elated. I shed a few tears as I received my medal and tried to comprehend what I had just done.
There were many times when I was enjoying myself. And many times where it really hurt. As usual, I put on a good show for the snappers and am smiling and skipping along in most of my official photos. I could grab on to small moments every now and then to relish the experience and realise what I was achieving, but as a whole the race went by in a blur and overall it wasn't that much fun.
I just wasn't a part of the London Marathon 2014. I was there in body, but not in mind. It was so lonely. I was simply part of something that was bigger than any of us, and as a result had no real individual identity in it.
It took me until Monday evening to properly look at my stats – I simply wasn't bothered because I had finished it in one piece, and that was all that mattered. I did it and I am super proud of myself. But I won't be running London Marathon again.
I loved the distance and I felt that I could have gone on running even longer had I needed to, so I have no worries about doing more marathons and ultra-marathons. But next time I need fewer people and greener surroundings.
This week at Kirkstall Harriers we hosted our annual Christmas Lights Run. We invite our running club neighbours Horsforth Harriers, get dressed up and go for a run around Leeds city centre to marvel at the festive-ness. And afterwards we scoff a lot of food at our HQ.
As much as I love any opportunity to wear fancy dress I have to admit my outfit was a little tame. By which I mean I didn't really dress "as" anything – I just draped Christmas decs around myself.
We were expecting a decent turnout – it was a great evening for running – but to get more than 120 runners was fantastic! This is what such a gathering of festive fancy dress runners looks like.
We ran 6.75 miles in just over 1:12 according to my watch, which isn't bad going for a weekday evening. And, good runners that we are, we made sure not a single crumb remained of the buffet.
On Saturday I went to Cross Flatts parkrun for the first time. I am competing in the Leeds Race Series and points can be gained at each of our four parkruns in Leeds over certain weeks. Cross Flatts Park is a great venue, and it has a much smaller field of runners than our other parkruns, which means it is easier to get a good start and go straight into your pace.
I wasn't too sure about the course or its PB potential so I just headed out at what felt good and took it from there. Because there weren't as many runners there were far fewer opportunities for chatting along the way, but that was fine – I had one headphone in and I just thought about my feet.
The route was pleasant and there is only a small incline with a few steps in the middle. I'll be back at the end of the month for my last PB attempt of 2013.
On Sunday I marshalled at the Leeds Christmas 10k. I ran this race last year and really enjoyed it, but as I have done so much recently I decided I would go along to help out. The fact that fancy dress and being loud was a job requirement also helped my decision.
I rocked up to the John Charles Stadium where the race started and finished and found a lovely bunch of people all there to ensure the race went smoothly. We assembled in the announcer's box at the top of the stand, where we had plenty of goodies to keep us going.
My marshal point was about half way round the circuit in the woods, of which the runners did three laps before returning to finish at the stadium. The lead runners got to me in under 10 minutes, and after that there was a constant stream of them for over an hour.
I greeted them looking like this, and making a lot of noise.
I channeled my inner Morris dancer and pinned bells to my legs, then I had a pom-pom in one hand and a tambourine in the other. Add in my purple Santa hat, hi-vis vest and jumping around and shouting rather manically I must have been quite a shock as they came along the path towards me the first time. By the third lap I fear some runners may have been going slightly deaf! But hopefully they also appreciated my efforts to help keep them going. Several people commented that they were glad of my energy and enthusiasm, especially as I was just at the bottom of a short hill. I ran up the hill quite a few times with some of the runners. Oh, and I saw several Father Christmases, all of whom promised to bring me kittens!
I finished my shift very tired but having had a wonderful time. The lovely organisers even gave us a race tee for helping out.
I can highly recommend this race – either to run or to marshal. It is a challenging course, but there are mince pies at the finish so you have to earn them! Big thanks to the organisers for their hard work in creating a great event, and also well done to my fellow Kirkstall Harriers who took part.
The running community is the most inclusive, welcoming, supportive and encouraging that you could hope to find. I am often overwhelmed by the absolute awesomeness of my fellow runners and their willingness to give advice, hugs, time and support. Sometimes they even share food, and that really is special!
When I first started running I had no idea there was a whole world dedicated to it. I thought clubs were the realm of fast, lean runners who ran to win. Not wobbly, slow runners who had never run further than six miles.
But as soon as I plucked up the courage to go along to a training session with Kirkstall Harriers at the start of this year I realised that running really is for everyone. We are truly a diverse bunch of people in our purple posse – from students to pensioners, from all backgrounds and all walks of life, from those who love a 5k, to those who have done more than 100 marathons (yes, really). I challenge anyone to show me a more mixed, interesting and friendly bunch of people, and I think that goes for the running community in general.
I love that a shared enjoyment for something as simple as running can bring together all sorts of people. I am impressed, amazed, inspired by and sometimes saddened by the things I learn about, and from, my fellow runners. When we run we end up talking about anything and everything. And quite often, a lot of nothing too. We share things, we gossip, we natter and preach and teach and moan.
This is becoming a bit lovey-dovey, but running really is so ace and it gets under your skin. It's more than just something you do alone for a few hours each week to tick the exercise box and justify an extra biscuit with afternoon tea. It's more than just huddling together for warmth with club mates on a cold, dark night. It's more than getting quicker or drooling over pretty new shoes.
Running is a local and global community that unites people who all recognise, and relish, that innate drive to achieve a natural high that comes from within. And I, for one, love it.


text:
Capitol Hill Block Party Music Festival Lineup
By	lydz
Updated Jul 14, 2011 at 9:45am
[BoxTitle]Capitol Hill Block Party[/BoxTitle]
July 22nd-24th is gonna be a major music weekend in Seattle (and it's not as if they ever really find themselves lacking the music department).
TV On the Radio, Explosions In The Sky, Ghostland Observatory, Thurston Moore, The Head And The Heart, The Cave Singers, Best Coast, Handsome Furs, Kurt Vile, Cold Cave, F*cked Up, Les Savy Fav, Battles, Ra Ra Riot, Yuck, Austra, Baths, My Goodness (Seattle locals, and they are AMAZING- check them out on Heavy if you haven't listened yet), The Fresh And Onlys, Telekinesis, and about 50 other bands filling out the roster. Get the full lineup and all the deets here.
Published Jul 14, 2011 at 9:45am
Austra, Battles, Best Coast, Cold Cave, Explosions In The Sky, F*cked Up, Ghostland Observatory, Handsome Furs, Kurt Vile, Les Savy Fav, My Goodness, Ra Ra Riot, Telekinesis, The Cave Singers, The Fresh And Onlys, The Head And The Heart, Thurston Moore, TV On The Radio, Yuck
Seattle's next big music weekend: TV On the Radio, Explosions In The Sky, Ghostland Observatory, Thurston Moore, Yuck, Austra, The Cave Singers, Best Coast, Handsome Furs, Kurt Vile, Cold Cave, F*cked Up, Les Savy Fav, Battles, Ra Ra Riot, My Goodness and a whole lot more.

redpajama_set_name: RedPajamaCommonCrawl


Reconstructing Beethoven' s Fur Elise is elise a great book it also has an alternative version of Fur Elise that sounds great fresh. Below is the Fur Elise sheet music elise by Hans- Gunter Heumann. 25 in A minor is elise one of the most famous compositions for elise piano fur solo written by Ludwig van Beethoven , fur Für Elise, as it is commonly known played by pianists elise the world over. Lyrics Fur Elise Sheet Music Beethoven " Fur Elise Sheet Music Beethoven" he piece is in A minor piano and is set in 3/ 8 time. Fur Elise Usually associated with the piano, Fur Elise makes an excellent fur addition to the guitarist' s repertoire. About " Fur Elise" High quality Digital sheet elise music for trombone and piano. Download Ludwig van Beethoven Fur Elise sheet music notes and chords for Piano ( Big Notes). Caec worked hard on this score. We have 1 arrangement for Fur Elise Piano Sheet Music.
virtualsheetmusic. Having troubles downloading? In order to see elise the sheet music please click on the preview button next to the score fur you are interested in. Fur elise score sheet piano. Sheet music for Für Elise score score Keywords: Ludwig score fur van Beethoven. This piano score was first released on. Für Elise Ludwig van Beethoven Bagatelle No. Your download has started. Many attempts at arranging this piece go " fur down the octave" but David has score the score main theme in the fur original key register. Find elise the sheet music of. This Classical composition includes 4 page( s). Well- loved music of many genres, which has proven fur its worth pedagogically. Virtual Sheet Music presents the famous Fur Elise for Piano by Beethoven. sheet music notes chords. com/ video2 Be sure to Like this Video! Für elise Elise is probably the most famous piano music Beethoven wrote. Genre: Supplementary. Give a small token of appreciation! This item includes: PDF ( digital sheet music to download Mp3 audio files ( including Mp3 music accompaniment tracks to fur fur play along) * Once you buy , print), access this item score as a Member, MIDI you' ll be able to download everything included as a single.
This Pop score includes 6 page( s. Piano π Œ œ5 # œ ∑ œ # œ. Fur elise score sheet piano. Want to give something back? so feel free to experiment and please score see those listed in this sheet. Virtual Piano is fast becoming a form of expression piano communication between different cultures , space , regions of the world – crossing language time. Download fur Ludwig van Beethoven Fur Elise sheet music notes and chords for Piano. It begins with an A minor theme marked Poco moto ( little movement) with the left hand playing arpeggios alternating elise between A minor E major. Our vision is to spread the joy of playing the piano to every corner of the globe.
Für Elise Original version 5 Chris Arensky" Want to learn Fur Elise in 25 short easy studies? Find free sheet music downloads - - thousands of them tips, lessons, articles; many instrument, plus links to elise thousands of free sheet music sites, many musical styles. Piano Classical Piano Classical Piano Free Sheet elise Music Beethoven - piano Fur Elise ( score original) Beethoven piano - Fur Elise ( original) ( Original Version) sheet music for Piano Sheet Music PDF MP3 fur Midi Score Info. Even beginner piano fur players will be able to read elise enjoy this score free printable sheet music version, your younger students will feel a great sense of accomplishment in being given " real piano music" to play! Yes, REALLY free sheet music. Printable piano music , free vocal sheet music easy guitar tabs for beginners.
Beethoven' s Fur Elise Sheet Music by Jennifer Vose The Bagatelle in A minor ( WoO 59), one of the most well- known works in all of classical music, is a piece shrouded in mystery. Piano Benches, Stools, Cushions, Covers, Chair, More - All Listings Click Here Jansen Highest Quality Benches - All - Including adjustable ARTIST BENCHES Poeschl High Quality Benches - All OSP Budget Adjustable Artist Benches - Fair quality, amazing low price! Jansen Petite Adjustable Artist Benches - for uprights and small grandsJansen Grand ( duet size) Wood Top and Upholstered Piano. Fur Elise: simplified easy piano sheet music by Beethoven.
The free sheet music on Piano Song Download has been composed and/ or arranged by us to ensure that our piano sheet music is legal and safe to download and print. Free Piano Sheet Music For Für Elise. 1, 2, 3, and 4 page versions are included.
Capotasto Music : Free printable sheet music for guitar, bass guitar, piano, flute, clarinet, violin, alto saxophone, tenor saxophone, trumpet, cello, ukulele and.


Almost every user of the Windows Operating Systems will before long start getting .dll files related error messages. You may get such error messages as "D3dx9_39.dll is missing" or "Msvcr110.dll is missing" when launching a program or the .dll loading error message when your computer is starting up. The reason why these messages pop appear is because the program is somewhat dependent on a certain .dll file which can be corrupt or missing. A lot of programs make use of the same .dll file and can overwrite it. Dll missing errors can also be due to some malware or virus issues, registry problems or a hardware failure in some extreme cases.
We constantly update our library with new .dll files to make sure that our users always find what they are looking for. We upload genuine files from only legitimate and trusted sources, all with the right MD5 Hash identifier. As a user, you can also contribute to the dll file database by uploading files that will help other users fix their system problems. The file will only be made available for public download after we have carried out our detailed integrity check and MD5 hash verifications.
If you have problems installing the downloaded .dll file or don't know how to install it, please visit our "How to Install DLL file" page, where you will find useful step-by-step guides on how to get it done. Please check out our "Video Tutorials" page for more information, as it's easier to fix .dll errors by following a well-structured video guide.
Just get it fixed - with Dllkit.com!
Dllkit.com is an intuitive and user-friendly platform that is very easy to navigate. To search for the missing files you can either use an alphabetical directory or type in the file name into the search box. If you can't find the file you're looking for or don't have time to search for the file, you can request us to find the file on the main menu and we will get back to you with the file name as soon as possible. Downloading is easy, all you need to do is to click the file name and you'll be redirected to the download page. Once there, just click the link to start downloading your file.
No matter what is the type of .dll file error you're receiving, whether it's Msvcr110.dll, D3dx9_43.dll Mfc110u.dll, D3dx9_39.dll, or Msvcp100.dll, etc. we can help you to fix that by giving you a free access to our extensive .dll file library. But if you'd rather prefer to get those problems solved automatically with just a few clicks, then consider buying our .dll repair tool.


text:
July 24, 2019 00:15:00 | Lalit K Jha
Kashmir won't be resolved bilaterally: Imran
'Pak will give up nukes if India did so'
Chillaikalan reigns
Govt constitutes team to visit snow-affected areas
Taboos, ignorance take toll on menstrual hygiene
GoI's Seven 'Samaritans' Start JK Outreach
Buoyed by US President Donald Trump's offer of mediation on Kashmir, Pakistan Prime Minister Imran Khan on Tuesday said that the contentious issue between the two South Asian neighbours can never be resolved bilaterally.
Khan's statement came hours after Trump offered to be the "mediator" between India and Pakistan on the Kashmir issue as the two leaders met at the White House where they discussed a host of issues, including the Afghan peace process.
Khan, who is on a three-day official visit to the US, welcomed Trump's offer of mediation.
"Bilaterally there will never be (a resolution of the Kashmir dispute)," Khan told Fox News, the favourite channel of president Trump.
"There was one point when there was General (Pervez) Musharraf and Prime Minister (Atal Bihari) Vajpayee of India when we did get close to the resolution of the Kashmiri issue. But since then we are poles apart and I really feel that India should come on the table; US could play a big part. President Trump certainly can play a big part," Khan said hours after he met Trump at his Oval Office for the first time at the White House.
"We are talking about 1.3 billion people on this earth. Imagine the dividends of peace if somehow that issue could be resolved," Khan said when the Fox news anchor read out the Indian statement that it has been India's consistent position that all outstanding issues with Pakistan are discussed only bilaterally.
Khan welcomed Trump's remarks, saying "President, I can tell you that, right now, you would have the prayers of over a billion people if you can mediate and resolve this issue".
Responding to another question, Khan said Pakistan will give up its nuclear weapons if India did so.
"Yes, because nuclear war is not an option. Between Pakistan and India, the idea of nuclear war is actually self-destruction because we have two-and-a-half thousand-mile border. I think there's a realisation in the subcontinent that and (if) there was some incident happened last February and we again had tensions at the border... So, there's a realisation and that's why I asked, president Trump that if he could play his role, the US as the most powerful country in the world, the only country that could mediate between Pakistan and India and resolve the only issue is Kashmir," he said.
"The only reason for 70 years that we have not been able to live like civilised neighbours is because of Kashmir," Khan said.
Meanwhile, Imran said that he was surprised by India's reaction to Trump's offer of mediation for resolving the Kashmir issue which, according to him, has held the subcontinent hostage for 70 years.
"Surprised by reaction of India to Pres Trump's offer of mediation to bring Pak & India to dialogue table for resolving Kashmir conflict which has held subcontinent hostage for 70 yrs," Khan, who is here on a three-day working visit, tweeted at the end of his maiden trip to the US.
"Generations of Kashmiris have suffered & are suffering daily and need conflict resolution," he tweeted.


text:
Latest Prize Breakdown
UK Millionaire Maker
Playing EuroMillions
Special Draws
Superdraws
Choosing Your Numbers
Biggest Ever Jackpot
Biggest Winners
Prize Winner Statistics
European Lotteries
Italian SuperEnalotto
Spanish El Gordo de Navidad
Spanish La Primitiva
Portuguese Totolotto
Weihnachtslotterie
Play Free Lottery
Statistics: Daily Draw
Statistics: Weekly Draw
EuroMillions Results for Friday 8th May 2015
With over 30 million entries in Friday's EuroMillions draw and over 2.4 million players grabbing prizes, the game was a wild success save for the distinct lack of a jackpot winner. No player matched all the numbers drawn to win a life-changing amount of cash, though a lucky few certainly came close. Four rollovers have occurred since a UK ticket holder grabbed £36.2 million (€50.7 million), pushing the top prize higher and higher. With £29.5 million (€40 million) on the line last night, it was easy to see why so many people turned out to play Europe's biggest lottery game.
The winning EuroMillions numbers for Friday 8th May are 7, 14, 19, 47 and 49 with Lucky Stars 3 and 10. There were three players, one of whom was from the UK, who grabbed £378,884 (€495,553) after matching five main numbers and one Lucky Star, while 14 ticket holders matched all five main numbers drawn to snap up £27,063 (€35,396) each.
The remaining participants won prizes worth between £2.90 (€3.80) for matching two main numbers and £4,209 (€5,506) for matching four main numbers and two Lucky Stars. For a full prize breakdown, details of the winning Millionaire Maker code and other important information from the draw, visit the Results page.
Out of all of the participating countries, the UK was the most successful, as 634,440 participants scooped a combined £3.7 million in the main game. In second place was Spain, with 541,245 players grabbing €3.6 million. France was third, with 463,120 ticket holders sharing a prize pool worth €3.1 million.
If you're keen on the idea of winning £34 million (€47 million) on EuroMillions next Tuesday, make sure that you buy tickets online or from authorised retailers before sales stop at 7.30pm BST (8.30pm CEST) on the night of the draw. It's sure to be a big night - as the jackpot grows larger, so does the number of entries as participants give a little fuel to their wildest hopes and dreams. Good luck, have fun and don't forget to check Euro-Millions.com for the latest results after the draw has been made.
‹ View the Previous News Article
View the Next News Article ›
Published: Saturday, 9 May 2015 14:54:20+01:00
Last Updated: Monday, 15 June 2015 08:57:25+01:00
Published By Euro-Millions.com
Material Copyright © 2020
Follow us to stay up to date
About Us • Privacy Policy • Cookie Policy • Sitemap • Contact • Terms and Conditions
Players must be 18 or over to participate in online lotteries.
Disclaimer: The content and operations of this website have not been approved or endorsed by Camelot UK Lotteries Limited, the National Lottery Commission or SLE.


text:
Q: Change time in azure log analytics In 'Azure log Analytics' logs are saved all day. Is there any way to change the time of saving? I mean changing time so that logs are saved for example between 6:00 AM to 9:00 PM?
It would be great if you send an screenshot.
Thank you!

A: Unfortunately, there is no such option when log into Azure Log Analytics. You can only control the log categories when configuring logs into Azure Log Analytics via UI or rest api.
If you are only interested the data in a specified time range, you can try to write a query to fetch these logs in Azure Log Analytics.

redpajama_set_name: RedPajamaStackExchange


Nestled at the head of this quiet cul de sac, this spacious home sits wide on the block.
– Upon entering the foyer featuring a lovely stained glass panel, the size of the interior starts to reveal itself on this level.
– Offering an office, generous living room and dining room complemented by a bay window.
– Double doors open into the sizeable study.
– The welcoming, good sized informal zone showcases the well appointed and designed kitchen with breakfast bar adjoining the meals and family area. From the kitchen and elevated deck there are expansive views of the neighbourhood to be enjoyed. Another door leads onto the front garden.
– Offering four robed bedrooms in total highlighting the zoned large main bedroom with abundant BIRs and contemporary ensuite plus a modern bathroom and separate WC.
– The spacious design downstairs features three additional bedrooms, substantial cinema room plus on trend bathroom.
– Outdoor relaxation focuses on the swim-spa, cabana, BBQ and paved alfresco space plus a lawn-garden area.
– Packed with inclusions, evaporative ducted cooling, gas ducted heating, ducted vacuum, walk in storage, double carport with lock up storage provision, under house storage plus a storage shed.
– Positioned to please within this sought after locale, near Ringwood Heights and Ringwood North Primary Schools, Holy Spirit Community School, handy to Mullum Primary and Norwood Secondary College, short commute to Private schools. Walk to B.J Hubbard and Loughies Bushland Reserves, short drive to Whitefriars also Ringwood North shops, vibrant Eastland and Eastlink.


text:
package ru.stqa.pft.addressbook.tests;

import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import ru.stqa.pft.addressbook.model.ContactData;
import ru.stqa.pft.addressbook.model.Contacts;

import java.io.File;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.testng.Assert.assertEquals;

/**
 * Created by 1 on 24.03.2017.
 */
public class ContactModificationTests extends TestBase {

  @BeforeMethod
  public void insurePreconditions() {
    if (app.db().contacts().size() == 0) {
      app.goTo().homePage();
      ContactData contact = new ContactData().withName("Ivan").withLname("Ivanov")
              .withPhoto(new File("src/test/resources/Test.jpg")).withAddress("Lenina, 20-45")
              .withHomePhone("926-525-25-25").withEmail("test@test.ru");
      app.contact().create(contact);
    }
  }

  @Test
  public void testContactModification() {
    Contacts before = app.db().contacts();
    ContactData modifiedContact = before.iterator().next();
    ContactData contact = new ContactData().withId(modifiedContact.getId()).withName("Ivan").withLname("Petrov").
            withPhoto(new File("src/test/resources/Test.jpg")).withAddress("Lenina, 20-45")
            .withHomePhone("225-78-98").withMobilePhone("333").withWorkPhone("444").withEmail("newmail@mail.ru");
    app.goTo().homePage();
    app.contact().modify(contact);
    app.goTo().homePage();
    assertThat(app.contact().count(), equalTo(before.size()));
    Contacts after = app.db().contacts();
    assertEquals(after.size(), before.size());

    assertThat(after, equalTo(before.without(modifiedContact).withAdded(contact)));
  }
}