MATLAB Answers

How to read a netcdf file and convert it to time table

15 views (last 30 days)
Hamed Hedayatnia
Hamed Hedayatnia on 17 Nov 2020
Commented: Hamed Hedayatnia on 21 Nov 2020
Hi guys,
I have a climate data file in netsdf format containing long, lat, time and temperature. The issue is that temperature has been shown for 9 lang and 5 lat during 3 years.
As can be observed. I need to extract t2m variable during the time for each lat,long(9*5=45 different point).
The question is how can I do that?
Thanks in advsnce

  0 Comments

Sign in to comment.

Answers (1)

Peter Perkins
Peter Perkins on 19 Nov 2020
Hamed, it's not currently possible to create a timetable that is 3-D (lat-by-lon-by-time). One thing you can do is make a 45*8759x3 timetable, with variables for lat, lon, and temp. Another possibility is to make an 8759x45 timetable with one var for each grid point. Or an 8759x9 timetable each of whose variables is itself 8759x5.
Hard to say which of these might work for you, it depends on what you need to do next.

  3 Comments

Hamed Hedayatnia
Hamed Hedayatnia on 19 Nov 2020
Thanks but how can I remove one dimension and keep the other? with reshape?
Peter Perkins
Peter Perkins on 19 Nov 2020
I think in all cases you first need permute to turn 9x5x8759 into 8759x9x5.
You would use ndgrid to create the repeated lat/lon for the 45*8759x3 option, and yes, reshape on the temperatures. Reshape and and array2table would get you the 8759x45 version. Subscripting and the table constructor would get you the 8759x9 version.
Hamed Hedayatnia
Hamed Hedayatnia on 21 Nov 2020
How can I create an 8759x45 timetable with one var for each grid point?

Sign in to comment.

Products


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!