### Chirps Precipitation to Excel - GEE and Pandas ###### Published on Apr 29, 2020 | Bikesh Bade | 3761 Views

ExtractClimate Hazards Group InfraRed Precipitation with Station data (CHIRPS) is a 30+ year quasi-global rainfall dataset using Google earth engine API and convert it into. Excel and charts using Python Pandas data frame.

The simplest way to convert CHIRPS into excel or CSV is to infuse the panda's data frame with GEE python API. To infuse the ee.CHIRPS using python API, first you have to set up a python environment in your local computer.

Set up Python API for GEE and continue following

Step 1

The Python API package is called `ee`. It must also be initialized for every new session and script. and import other necessary modules such as pandas, Matloplib, Numpy

```# import Google earth engine module
import ee

ee.Initialize()

#Pandas modules to interact data
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

```

Step 2

Create a Python function to convert CHIRPS image collections:

```# import the RS products

# Define time range
startyear = 2019
endyear = 2020

# Set date in ee date format
startdate = ee.Date.fromYMD(startyear,1,1)
enddate = ee.Date.fromYMD(endyear+1,12,31)

# create list for years
years = range(startyear,endyear);

# make a list with months
months = range(1,13)

#Filter to select Precipitation band
PrecipitationChirps = chirps.filterDate(startdate, enddate).sort('system:time_start', False).select("precipitation")

# Define geograpic
point = ee.Geometry.Point([85.68, 26.91])

# calculate the monthly Sum
def MonthlySum(imageCollection):
mylist = ee.List([])
for y in years:
for m in months:
w = imageCollection.filter(ee.Filter.calendarRange(y, y, 'year')).filter(ee.Filter.calendarRange(m, m, 'month')).sum()
mylist = mylist.add(w.set('year', y).set('month', m).set('date', ee.Date.fromYMD(y,m,1)).set('system:time_start',ee.Date.fromYMD(y,m,1)))
return ee.ImageCollection.fromImages(mylist)

# run the calcMonthlyMean function
monthlyChirps = ee.ImageCollection(MonthlySum(PrecipitationChirps))

# select the region of interest, 25000 is the cellsize in meters
monthlyChirps = monthlyChirps.getRegion(point,25000,"epsg:4326").getInfo()

# get january (index = 0)
precipiation = pd.DataFrame(monthlyChirps, columns = monthlyChirps)

# remove the first line
precipiation = precipiation[1:]

#to display the data
print(precipiation[['id','longitude','latitude','precipitation']])

#To export to CSV
precipiation.to_csv (r'C:\bikesh\Code\GEE\mywork\Chirps\precipitation.csv', index = False, header=True)
```

` `

Step 3

The final step is to create a chart with precipitation data

```# To display the data in the chart
#style the font size
font = {'family' : 'normal',
'weight' : 'bold',
'size'   : 14}
plt.rc('font', **font)

#chart Title
plt.title('Monthly Precipitaion')

#chart lable for x axis
plt.xlabel('Months')

#chart lable for y axis
plt.ylabel('Rainfall in mm')

#chart size and data assign
plt.bar(January['id'], January['precipitation'], color='#fa4b2a')
plt.rcParams["figure.figsize"] = (10,7)

#export chart as png
plt.savefig('precipitation.png')

```

` `

Get all the code in the GitHub in the formate of Jupyter notebook

#### Claudette

Donnez vous des formations en ligne ?

• May 01, 2020 |

si tu veux je peux te donner la formation

• May 02, 2020 |

#### Mulugeta

Are there any scripts that can extract daily rainfall?

• Jan 27, 2022 |

Currently there no such script but in future will create some scripts.

• Feb 08, 2022 |