Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mpim-sw
libcdi
Commits
1a02a03a
Commit
1a02a03a
authored
Jul 28, 2009
by
Uwe Schulzweida
Browse files
added support for netCDF timeseries with only one grid axis
parent
b0504dd5
Changes
3
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
1a02a03a
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
* changed encode/decode_time to seconds
* changed encode/decode_time to seconds
* ieg: added support for Gaussian grids [request: Ralf Podzun]
* ieg: added support for Gaussian grids [request: Ralf Podzun]
* added support for netCDF timeseries without grid
* added support for netCDF timeseries without grid
* added support for netCDF timeseries with only one grid axis
* julday_add_seconds: bug fix for adjusting negative seconds
* julday_add_seconds: bug fix for adjusting negative seconds
* Version 1.4.0 released
* Version 1.4.0 released
...
...
app/printinfo.h
View file @
1a02a03a
...
@@ -113,35 +113,49 @@ static void printGridInfo(int vlistID)
...
@@ -113,35 +113,49 @@ static void printGridInfo(int vlistID)
yfirst
=
gridInqYval
(
gridID
,
0
);
yfirst
=
gridInqYval
(
gridID
,
0
);
ylast
=
gridInqYval
(
gridID
,
ysize
-
1
);
ylast
=
gridInqYval
(
gridID
,
ysize
-
1
);
yinc
=
gridInqYinc
(
gridID
);
yinc
=
gridInqYinc
(
gridID
);
if
(
gridtype
==
GRID_GAUSSIAN_REDUCED
)
if
(
gridtype
==
GRID_GAUSSIAN_REDUCED
)
fprintf
(
stdout
,
"size : dim = %d nlat = %d
\n
"
,
gridsize
,
ysize
);
else
fprintf
(
stdout
,
"size : dim = %d nlon = %d nlat = %d
\n
"
,
gridsize
,
xsize
,
ysize
);
if
(
xsize
>
0
)
{
{
fprintf
(
stdout
,
"size : dim = %d nlat = %d
\n
"
,
gridsize
,
ysize
);
if
(
gridtype
==
GRID_GAUSSIAN_REDUCED
)
fprintf
(
stdout
,
"%*s"
,
nbyte0
,
""
);
{
fprintf
(
stdout
,
"longitude : reduced
\n
"
);
fprintf
(
stdout
,
"size : dim = %d nlat = %d
\n
"
,
gridsize
,
ysize
);
fprintf
(
stdout
,
"%*s"
,
nbyte0
,
""
);
fprintf
(
stdout
,
"longitude : reduced
\n
"
);
}
else
{
xfirst
=
gridInqXval
(
gridID
,
0
);
xlast
=
gridInqXval
(
gridID
,
xsize
-
1
);
xinc
=
gridInqXinc
(
gridID
);
fprintf
(
stdout
,
"%*s"
,
nbyte0
,
""
);
fprintf
(
stdout
,
"%-9s : first = %.9g"
,
xname
,
xfirst
);
if
(
xsize
>
1
)
fprintf
(
stdout
,
" last = %.9g"
,
xlast
);
if
(
IS_NOT_EQUAL
(
xinc
,
0
)
)
fprintf
(
stdout
,
" inc = %.9g"
,
xinc
);
fprintf
(
stdout
,
" %s"
,
xunits
);
if
(
gridIsCircular
(
gridID
)
)
fprintf
(
stdout
,
" circular"
);
fprintf
(
stdout
,
"
\n
"
);
}
}
}
else
if
(
ysize
>
0
)
{
{
xfirst
=
gridInqXval
(
gridID
,
0
);
xlast
=
gridInqXval
(
gridID
,
xsize
-
1
);
xinc
=
gridInqXinc
(
gridID
);
fprintf
(
stdout
,
"size : dim = %d nlon = %d nlat = %d
\n
"
,
gridsize
,
xsize
,
ysize
);
fprintf
(
stdout
,
"%*s"
,
nbyte0
,
""
);
fprintf
(
stdout
,
"%*s"
,
nbyte0
,
""
);
fprintf
(
stdout
,
"%-9s : first = %.9g last = %.9g"
,
xname
,
xfirst
,
xlast
);
fprintf
(
stdout
,
"%-9s : first = %.9g"
,
yname
,
yfirst
);
if
(
IS_NOT_EQUAL
(
xinc
,
0
)
)
if
(
ysize
>
1
)
fprintf
(
stdout
,
"last = %.9g"
,
ylast
);
fprintf
(
stdout
,
" inc = %.9g"
,
xinc
);
if
(
IS_NOT_EQUAL
(
yinc
,
0
)
&&
fprintf
(
stdout
,
" %s"
,
xunits
);
(
gridtype
==
GRID_LONLAT
||
gridtype
==
GRID_SINUSOIDAL
||
if
(
gridIsCircular
(
gridID
)
)
gridtype
==
GRID_LCC2
||
gridtype
==
GRID_LAEA
)
)
fprintf
(
stdout
,
" circular"
);
fprintf
(
stdout
,
" inc = %.9g"
,
yinc
);
fprintf
(
stdout
,
" %s"
,
yunits
);
fprintf
(
stdout
,
"
\n
"
);
fprintf
(
stdout
,
"
\n
"
);
}
}
fprintf
(
stdout
,
"%*s"
,
nbyte0
,
""
);
fprintf
(
stdout
,
"%-9s : first = %.9g last = %.9g"
,
yname
,
yfirst
,
ylast
);
if
(
IS_NOT_EQUAL
(
yinc
,
0
)
&&
(
gridtype
==
GRID_LONLAT
||
gridtype
==
GRID_SINUSOIDAL
||
gridtype
==
GRID_LCC2
||
gridtype
==
GRID_LAEA
)
)
fprintf
(
stdout
,
" inc = %.9g"
,
yinc
);
fprintf
(
stdout
,
" %s"
,
yunits
);
fprintf
(
stdout
,
"
\n
"
);
if
(
gridIsRotated
(
gridID
)
)
if
(
gridIsRotated
(
gridID
)
)
{
{
...
...
src/stream_cdf.c
View file @
1a02a03a
...
@@ -2361,14 +2361,14 @@ void cdfDefGrid(int streamID, int gridID)
...
@@ -2361,14 +2361,14 @@ void cdfDefGrid(int streamID, int gridID)
{
{
/* no grid information */
/* no grid information */
}
}
else
if
(
gridInqXsize
(
gridID
)
==
0
||
gridInqYsize
(
gridID
)
==
0
)
else
if
(
gridtype
==
GRID_GENERIC
&&
(
gridInqXsize
(
gridID
)
==
0
||
gridInqYsize
(
gridID
)
==
0
)
)
{
{
cdfDefGdim
(
streamID
,
gridID
);
cdfDefGdim
(
streamID
,
gridID
);
}
}
else
else
{
{
cdfDefXaxis
(
streamID
,
gridID
);
if
(
gridInqXsize
(
gridID
)
>
0
)
cdfDefXaxis
(
streamID
,
gridID
);
cdfDefYaxis
(
streamID
,
gridID
);
if
(
gridInqYsize
(
gridID
)
>
0
)
cdfDefYaxis
(
streamID
,
gridID
);
}
}
if
(
gridIsRotated
(
gridID
)
)
cdfDefPole
(
streamID
,
gridID
);
if
(
gridIsRotated
(
gridID
)
)
cdfDefPole
(
streamID
,
gridID
);
...
@@ -4406,8 +4406,8 @@ int cdfInqContents(int streamID)
...
@@ -4406,8 +4406,8 @@ int cdfInqContents(int streamID)
{
{
if
(
ncvars
[
ncvarid
].
ndims
==
1
)
if
(
ncvars
[
ncvarid
].
ndims
==
1
)
{
{
if
(
ncvars
[
ncvarid
].
isvar
!=
TRUE
)
cdfSetVar
(
ncvars
,
ncvarid
,
FALSE
);
//
if ( ncvars[ncvarid].isvar != TRUE ) cdfSetVar(ncvars, ncvarid, FALSE);
//
if ( ncvars[ncvarid].isvar != FALSE ) cdfSetVar(ncvars, ncvarid, TRUE);
if
(
ncvars
[
ncvarid
].
isvar
!=
FALSE
)
cdfSetVar
(
ncvars
,
ncvarid
,
TRUE
);
if
(
ncdimid
==
ncvars
[
ncvarid
].
dimids
[
0
]
&&
ncdims
[
ncdimid
].
ncvarid
==
UNDEFID
)
if
(
ncdimid
==
ncvars
[
ncvarid
].
dimids
[
0
]
&&
ncdims
[
ncdimid
].
ncvarid
==
UNDEFID
)
if
(
strcmp
(
ncvars
[
ncvarid
].
name
,
ncdims
[
ncdimid
].
name
)
==
0
)
if
(
strcmp
(
ncvars
[
ncvarid
].
name
,
ncdims
[
ncdimid
].
name
)
==
0
)
...
@@ -5023,6 +5023,17 @@ int cdfInqContents(int streamID)
...
@@ -5023,6 +5023,17 @@ int cdfInqContents(int streamID)
else
else
ncvars
[
ncvarid
].
gridtype
=
GRID_LONLAT
;
ncvars
[
ncvarid
].
gridtype
=
GRID_LONLAT
;
}
}
else
if
(
islat
&&
!
islon
&&
xsize
==
0
)
{
if
(
isGaussGrid
(
ysize
,
yinc
,
grid
.
yvals
)
)
ncvars
[
ncvarid
].
gridtype
=
GRID_GAUSSIAN
;
else
ncvars
[
ncvarid
].
gridtype
=
GRID_LONLAT
;
}
else
if
(
islon
&&
!
islat
&&
ysize
==
0
)
{
ncvars
[
ncvarid
].
gridtype
=
GRID_LONLAT
;
}
else
else
ncvars
[
ncvarid
].
gridtype
=
GRID_GENERIC
;
ncvars
[
ncvarid
].
gridtype
=
GRID_GENERIC
;
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment