# November 9 Results
### Find places to backtrack from
I ran the backtracking algorithm on several high precipitation vs low precipitation days for the relevant locations (high precipitation variability).
Here is the plot of the average (by location) total hourly precipitation in India for June 2020.
> This parameter is the accumulated liquid and frozen water, comprising rain and snow, that falls to the Earth's surface. It is the sum of large-scale precipitation and convective precipitation. Large-scale precipitation is generated by the cloud scheme in the ECMWF Integrated Forecasting System (IFS). The cloud scheme represents the formation and dissipation of clouds and large-scale precipitation due to changes in atmospheric quantities (such as pressure, temperature and moisture) predicted directly by the IFS at spatial scales of the grid box or larger. Convective precipitation is generated by the convection scheme in the IFS, which represents convection at spatial scales smaller than the grid box. This parameter does not include fog, dew or the precipitation that evaporates in the atmosphere before it lands at the surface of the Earth. This parameter is accumulated over a particular time period which depends on the data extracted. For the reanalysis, the accumulation period is over the 1 hour ending at the validity date and time. For the ensemble members, ensemble mean and ensemble spread, the accumulation period is over the 3 hours ending at the validity date and time. The units of this parameter are depth in metres of water equivalent. It is the depth the water would have if it were spread evenly over the grid box. Care should be taken when comparing model parameters with observations, because observations are often local to a particular point in space and time, rather than representing averages over a model grid box.

Here is the plot of the variability (standard deviation with respect to time) of total hourly precipitation in India for June 2020.

The 2000 vs 2020 plots look pretty different:


I selected three locations that looked like they had high standard deviations (to automate later).

I plotted the precipitation vs time for the month for each of these points. Then I selected two low precipitation times and two high precipitation times.
a) Here is the plot:

I picked two times that are at different times.
- High precipitation:
- 2020-06-12T22:00:00.000000000 (1055830 hours from 1900-01-01)
- 2020-06-15T10:00:00.000000000 (1055890)
- Low precipitation:
- 2020-06-24T00:00:00.000000000 (1056096)
- 2020-06-20T00:00:00.000000000 (1056000)
b) (longitude, latitude) = (84.8E, 22.3N)

- High precipitation:
- 2020-06-17T03:00:00.000000000 (1055931)
- 2020-06-04T12:00:00.000000000 (1055628)
- Low precipitation:
- 2020-06-04T00:00:00.000000000 (1055616)
- 2020-06-25T00:00:00.000000000 (1056120)
c) (longitude, latitude) = (82.3E, 27.8N)

- High precipitation:
- 2020-06-20T01:00:00.000000000 (1056001)
- 2020-06-17T00:00:00.000000000 (1055928)
- Low precipitation:
- 2020-06-03T00:00:00.000000000 (1055592)
- 2020-06-13T00:00:00.000000000 (1055832)
Now, I run the backtracking algorithm from the places I have selected as well as the high/low precipitation times.
I ran PJ's MATLAB code to plot (had to install mapping toolbox in matlab); had minor issues with coloring the pressure that I will fix later.
clear
close all;
A=readmatrix('2020_06_12_22_78-5_21-3.csv');
Time=A(2:end,1);
Longitude=A(2:end,3);
Latitude=A(2:end,4);
Pressure=A(2:end,5);
Temperature=A(2:end,6);
% Geopotential=A(2:end,7);
Precipitation=A(2:end,7);
SpecificHumidity=A(2:end,8);
load coastlines.mat;
coastlon=[coastlon; coastlon+360];
coastlat=[coastlat; coastlat];
figure(1)
clf
set(gcf,'Position',[172 76 1079 902]);
axMap=axes('Position',[0.13 0.4 0.775 0.55]);
plot(coastlon,coastlat,'k','LineWidth',2); hold on;
for nPoint=1:length(Time)
scatter(Longitude(nPoint),Latitude(nPoint),12,[(Pressure(nPoint)-900)/150 1-(Pressure(nPoint)-900)/150 0.5],'filled');
if mod(nPoint,40)==1
if nPoint==1
text(Longitude(nPoint)+1.5,Latitude(nPoint)+1,[num2str(Time(nPoint)) ' hr'],'FontSize',18,'HorizontalAlignment','right');
text(Longitude(nPoint)+1.5,Latitude(nPoint)-1.5,[num2str(round(Pressure(nPoint),0)) ' hPa'],'FontSize',18,'HorizontalAlignment','center','VerticalAlignment','middle');
else
text(Longitude(nPoint),Latitude(nPoint)+1,num2str(Time(nPoint)),'FontSize',18,'HorizontalAlignment','right');
text(Longitude(nPoint),Latitude(nPoint)-1.5,num2str(round(Pressure(nPoint),0)),'FontSize',18,'HorizontalAlignment','center','VerticalAlignment','middle');
end
scatter(Longitude(nPoint),Latitude(nPoint),36,[(Pressure(nPoint)-900)/150 1-(Pressure(nPoint)-900)/150 0.5],'filled');
end
end
xlim([56 85]);
xlabel('Longitude');
ylabel('Latitude');
ylim([5 25]);
set(gca,'FontSize',24);
title('June 1, 2020');
axQuantities=axes('Position',[0.13 0.125 0.775 0.15]);
yyaxis left
plot(Time,Temperature,'LineWidth',2); hold on;
xlabel('Time (hours)');
ylabel('T (K)');
ylim([292 303]);
yticks([295 300]);
yyaxis right
plot(Time,1000*SpecificHumidity,'LineWidth',2);
ylabel('q (g/kg)');
ylim([13 22]);
xlim([-47 0]);
set(gca,'FontSize',24);
saveas(gcf,'../Results/Example1.png');
This is what I asked the code to do:
air_locations = iterate_backtracking(ds = ds_integer_times, initial_lon = 78.5, initial_lat = 21.3, initial_time = 1055830, time_increment = 0.25, tracking_hours = 48)
air_locations.to_csv('../2020_06_12_22_78-5_21-3.csv')
plot_backtracking(air_locations, pressure_units = "millibars")
print(air_locations)
# for thing in ["temperature", "geopotential", "precipitation", "specific_humidity"]:
for thing in ["precipitation"]:
air_locations[thing] = air_locations[thing].astype(float)
# plt.figure()
air_locations.plot.line(y = thing)
plt.show()
print(ds)
a) (78.5E, 21.3N)
- High precipitation
- 2020-06-12T22:00:00.000000000 (1055830)


- 2020-06-15T10:00:00.000000000 (1055890)


- Low precipitation
- 2020-06-24T00:00:00.000000000 (1056096)



- 2020-06-20T00:00:00.000000000 (1056000)



b) (84.8E, 22.3N)
- High precipitation:
- 2020-06-17T03:00:00.000000000 (1055931)



- 2020-06-04T12:00:00.000000000 (1055628)



- Low precipitation:
- 2020-06-04T00:00:00.000000000 (1055616)


- 2020-06-25T00:00:00.000000000 (1056120)



c) (82.3E, 27.8N)
- High precipitation:
- 2020-06-20T01:00:00.000000000 (1056001)



- 2020-06-17T00:00:00.000000000 (1055928)



- Low precipitation:
- 2020-06-03T00:00:00.000000000 (1055592)



- 2020-06-13T00:00:00.000000000 (1055832)


##


air_locations = iterate_backtracking(ds = ds_integer_times, initial_lon = 82.3, initial_lat = 27.8, initial_time = 1056001, time_increment = 0.25, tracking_hours = 48)
air_locations.to_csv('../2020_06_20_01_82-3_27-8.csv')
plot_backtracking(air_locations, pressure_units = "millibars", zoom = 1.5)
# print(air_locations)
# for thing in ["temperature", "geopotential", "precipitation", "specific_humidity"]:
for thing in ["precipitation"]:
air_locations[thing] = air_locations[thing].astype(float)
# plt.figure()
air_locations.plot.line(y = thing)
plt.show()
- Send a video (3 per second, at most 5) of precipitation for each hour for the month
- At each point, plot humidity as a function of pressure (put pressure on the y-axis) and make the movie and make the same movie for humidity but take the average over pressure from 1000 to 850
- Do the same thing over the ocean (show that precipitation is more variable over land than the ocean)
- make sure the colorscale is the same at every timestep in the video