intn write_swath(int32 swfid, char* sname, int xdim, int ydim, int zdim) { char field_name[]= "temperature"; char field_dim_name[]= "ZDim,xtrack,ytrack"; char geo_name[]= "pressure"; char geo_name_lon[]= "Longitude"; char geo_name_lat[]= "Latitude"; char geo_dim_name[]= "ZDim"; char geo_dim_name2[]= "xtrack,ytrack"; int swid = 0; swid = SWcreate(swfid, sname); if(swid == -1) { fprintf(stderr, "SWcreate() failed.\n"); return -1; } /* Define dimension. */ write_dimension(swid, xdim, ydim, zdim); /* Define geolocaiton fields. */ write_field_1d(swid, geo_name, 1, zdim, geo_dim_name); write_field_2d(swid, geo_name_lat, 1, xdim, ydim, geo_dim_name2); write_field_2d(swid, geo_name_lon, 1, xdim, ydim, geo_dim_name2); /* Write field. */ write_field_3d(swid, field_name, xdim, ydim, zdim, field_dim_name); /* Close the Grid. */ SWdetach(swid); return 0; }
int main() { char filename[] = "test.he4"; int fid = SWopen(filename, DFACC_CREATE); char swathname[] = "myswath"; int swid = SWcreate(fid, swathname); char dimname[] = "mydim"; const int32 dimlen = 10; int rc = SWdefdim(swid, dimname, dimlen); printf("SWdefdim: %d\n", rc); char fieldname[] = "test_field"; rc = SWdefdatafield(swid, fieldname, dimname, DFNT_FLOAT, 0); printf("SWdefdatafield: %d\n", rc); int32 start = 0; int32 edge = dimlen; float data[dimlen]; for (int i=0; i<dimlen; ++i) { data[i] = 1.0 + i; } rc = SWwritefield(swid, fieldname, &start, NULL, &edge, data); printf("SWwritefield: %d\n", rc); rc = SWdetach(swid); printf("SWdetach: %d\n", rc); rc = SWclose(fid); printf("SWclose: %d\n", rc); }