void Observation::printDepths(Rect r) { std::cout << "toplam feat:" << Observation::areaFromII<double>(sparse->cumNumFeats, r.x1, r.y1, r.x2, r.y2) << std::endl; int numFeats = 0; double totDepth = 0; for (int j=0; j<sparse->cumDepths.rows; ++j) { if (j<r.y1 || j>r.y2) continue; for (int i=0; i<sparse->cumDepths.cols; ++i) { if (i<r.x1 || i>r.x2) continue; if (!(i<r.x2 && i>r.x1 && j<r.y2 && j>r.y1)) continue; if (1 != Observation::areaFromII<double>(sparse->cumNumFeats, i, j, i, j)) continue; double depth = Observation::areaFromII<double>(sparse->cumDepths, i, j, i, j); totDepth += depth; ++numFeats; //std::cout << "derinlik #"<< ++numFeats <<": "<< depth << std::endl; } } double meanDepth = totDepth/numFeats; std::cout << "ortalama: " << meanDepth << std::endl; numFeats = 0; for (int j=0; j<sparse->cumDepths.rows; ++j) { if (j<r.y1 || j>r.y2) continue; for (int i=0; i<sparse->cumDepths.cols; ++i) { if (i<r.x1 || i>r.x2) continue; if (!(i<r.x2 && i>r.x1 && j<r.y2 && j>r.y1)) continue; if (1 != Observation::areaFromII<double>(sparse->cumNumFeats, i, j, i, j)) continue; double depth = Observation::areaFromII<double>(sparse->cumDepths, i, j, i, j); totDepth += depth; std::cout << "derinlik sapmasi #"<< ++numFeats <<": "<< depth-meanDepth << std::endl; } } std::cout << "Diyor ki; " << depthVar(r.x1,r.y1,r.x2,r.y2) << std::endl; }
//---------------------------------------- void CExternalFilesAvisoGrid::AddVirtualVariables() { int32_t dimId = -1; try { CheckNetCDFDimensions(); } catch(CException& e) { throw CException(CTools::Format("ERROR: CExternalFilesAvisoGrid::AddVirtualVariables - %s", e.what()), BRATHL_LOGIC_ERROR); } CStringMap mapAttributes; //-------------- // add latitude var //-------------- mapAttributes.RemoveAll(); mapAttributes.Insert(STANDARD_NAME_ATTR, "latitude"); dimId = m_latDim->GetDimId(); AddVar(dimId, CExternalFilesAvisoGrid::m_LAT_DIM_NAME, "Latitude of measurement", CLatLonPoint::m_DEFAULT_UNIT_LATITUDE, NC_DOUBLE, m_nbLatitudes, CExternalFilesAvisoGrid::m_LAT_DIM_NAME, dimId, &mapAttributes); CNetCDFCoordinateAxis latVar(CExternalFilesAvisoGrid::m_LAT_DIM_NAME, CLatLonPoint::m_DEFAULT_UNIT_LATITUDE, Latitude); latVar.AddNetCDFDim(*m_latDim); m_latDim->AddCoordinateVariable(latVar.GetName()); m_file.AddNetCDFVarDef(latVar, true); //-------------- // add longitude var //-------------- mapAttributes.RemoveAll(); mapAttributes.Insert(STANDARD_NAME_ATTR, "longitude"); dimId = m_lonDim->GetDimId(); AddVar(dimId, CExternalFilesAvisoGrid::m_LON_DIM_NAME, "Longitude of measurement", CLatLonPoint::m_DEFAULT_UNIT_LONGITUDE, NC_DOUBLE, m_nbLongitudes, CExternalFilesAvisoGrid::m_LON_DIM_NAME, dimId, &mapAttributes); CNetCDFCoordinateAxis lonVar(CExternalFilesAvisoGrid::m_LON_DIM_NAME, CLatLonPoint::m_DEFAULT_UNIT_LONGITUDE, Longitude); lonVar.AddNetCDFDim(*m_lonDim); m_lonDim->AddCoordinateVariable(lonVar.GetName()); m_file.AddNetCDFVarDef(lonVar, true); //-------------- // add depth //-------------- if (m_file.VarExists(CExternalFilesAvisoGrid::m_INTERNAL_DEPTH_DIM_NAME)) { AddVar(CExternalFilesAvisoGrid::m_INTERNAL_DEPTH_DIM_NAME); } else { mapAttributes.RemoveAll(); mapAttributes.Insert(STANDARD_NAME_ATTR, "depth"); dimId = m_depthDim->GetDimId(); AddVar(dimId, CExternalFilesAvisoGrid::m_INTERNAL_DEPTH_DIM_NAME, "Depth layer", "count", NC_DOUBLE, m_nbDepths, CExternalFilesAvisoGrid::m_INTERNAL_DEPTH_DIM_NAME, dimId, &mapAttributes); CNetCDFCoordinateAxis depthVar(CExternalFilesAvisoGrid::m_INTERNAL_DEPTH_DIM_NAME, "count", Z); depthVar.AddNetCDFDim(*m_depthDim); m_depthDim->AddCoordinateVariable(depthVar.GetName()); m_file.AddNetCDFVarDef(depthVar, true); } }