Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
otb
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
David Youssefi
otb
Commits
353bc42b
Commit
353bc42b
authored
17 years ago
by
Thomas Feuvrier
Browse files
Options
Downloads
Patches
Plain Diff
Suppression filtre DEMReaderFilter !!
parent
dbd34ea4
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
Code/IO/otbDEMReaderFilter.h
+0
-115
0 additions, 115 deletions
Code/IO/otbDEMReaderFilter.h
Code/IO/otbDEMReaderFilter.txx
+0
-171
0 additions, 171 deletions
Code/IO/otbDEMReaderFilter.txx
with
0 additions
and
286 deletions
Code/IO/otbDEMReaderFilter.h
deleted
100755 → 0
+
0
−
115
View file @
dbd34ea4
/*=========================================================================
Program: ORFEO Toolbox
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
See OTBCopyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef __otbDEMReaderFilter_h
#define __otbDEMReaderFilter_h
#include
"itkIndent.h"
#include
"itkImageSource.h"
#include
"otbImage.h"
#include
<iostream>
#include
<stdio.h>
#include
"elevation/ossimElevManager.h"
#include
"base/ossimFilename.h"
#include
"itkImageRegionIteratorWithIndex.h"
#include
"itkIndent.h"
namespace
otb
{
/** \class DEMReaderFilter
*
* \brief Class for Reading a DEM data
*
* This class is based on ossimElevManager. It takes in input the UL and LR geographic coordinates and the spacing.
* Handle DTED and SRTM formats.
* \ingroup Images
*
*/
template
<
class
TDEMImage
>
class
ITK_EXPORT
DEMReaderFilter
:
public
itk
::
ImageSource
<
Image
<
typename
TDEMImage
::
PixelType
,
2
,
0
>
>
{
public
:
/** Standard class typedefs. */
typedef
itk
::
Indent
Indent
;
typedef
TDEMImage
DEMImageType
;
typedef
typename
DEMImageType
::
Pointer
DEMImagePointerType
;
typedef
typename
DEMImageType
::
PixelType
PixelType
;
typedef
DEMReaderFilter
Self
;
typedef
itk
::
ImageSource
<
Image
<
typename
DEMImageType
::
PixelType
,
2
,
0
>
>
Superclass
;
typedef
itk
::
SmartPointer
<
Self
>
Pointer
;
typedef
itk
::
SmartPointer
<
const
Self
>
ConstPointer
;
typedef
Image
<
PixelType
,
2
>
OutputImageType
;
typedef
typename
Superclass
::
Pointer
OutputImagePointer
;
typedef
typename
OutputImageType
::
SpacingType
SpacingType
;
typedef
typename
OutputImageType
::
SizeType
SizeType
;
typedef
typename
OutputImageType
::
PointType
PointType
;
typedef
typename
OutputImageType
::
IndexType
IndexType
;
typedef
typename
Superclass
::
OutputImageRegionType
OutputImageRegionType
;
typedef
itk
::
ImageRegionIteratorWithIndex
<
Image
<
PixelType
,
2
,
0
>
>
ImageIteratorType
;
/** Method for creation through the object factory. */
itkNewMacro
(
Self
);
/** Run-time type information (and related methods). */
itkTypeMacro
(
DEMReader
,
ImageSource
);
/** Set the spacing. */
itkSetMacro
(
Spacing
,
SpacingType
);
itkGetConstReferenceMacro
(
Spacing
,
SpacingType
);
/** Set the Upper Left coordinates. */
itkSetMacro
(
Ul
,
PointType
);
itkGetConstReferenceMacro
(
Ul
,
PointType
);
/** Set the Lower Right coordinates. */
itkSetMacro
(
Lr
,
PointType
);
itkGetConstReferenceMacro
(
Lr
,
PointType
);
/** Set the spacing. */
void
SetSpacing
(
const
double
*
spacing
);
/** Try to open the DEM directory. */
bool
OpenDEMDirectory
(
char
*
&
DEMDirectory
);
/** Compute the height above MSL(Mean Sea Level) of the point. */
virtual
double
GetHeightAboveMSL
(
const
PointType
&
worldPoint
);
protected:
DEMReaderFilter
();
~
DEMReaderFilter
();
void
PrintSelf
(
std
::
ostream
&
os
,
Indent
indent
)
const
;
void
GenerateData
();
virtual
void
GenerateOutputInformation
();
ossimElevManager
*
m_ElevManager
;
//DEMImagePointerType m_DEMImage;
SpacingType
m_Spacing
;
PointType
m_Ul
;
PointType
m_Lr
;
};
}
// namespace otb
#ifndef OTB_MANUAL_INSTANTIATION
#include
"otbDEMReaderFilter.txx"
#endif
#endif
This diff is collapsed.
Click to expand it.
Code/IO/otbDEMReaderFilter.txx
deleted
100755 → 0
+
0
−
171
View file @
dbd34ea4
/*=========================================================================
Program: ORFEO Toolbox
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
See OTBCopyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef __otbDEMReaderFilter_txx
#define __otbDEMReaderFilter_txx
#include "otbDEMReaderFilter.h"
#include "otbMacro.h"
namespace otb
{
template<class TDEMImage>
DEMReaderFilter<TDEMImage>
::DEMReaderFilter()
{
m_ElevManager=ossimElevManager::instance();
//m_DEMImage = DEMImageType::New();
m_Spacing[0]=0;
m_Spacing[1]=0;
m_Ul[0]=0;
m_Ul[1]=0;
m_Lr[0]=0;
m_Lr[1]=0;
}
template<class TDEMImage>
DEMReaderFilter<TDEMImage>
::~DEMReaderFilter()
{
delete m_ElevManager;
}
///Methode pour specifier un dossier contenant des DEM
template<class TDEMImage>
bool
DEMReaderFilter<TDEMImage>::
OpenDEMDirectory(char* &DEMDirectory)
{
ossimFilename ossimDEMDir;
ossimDEMDir=ossimFilename(DEMDirectory);
bool result= false;
if (m_ElevManager->openDirectory(ossimDEMDir))
{
result= true;
}
return result;
}
///Methode pour calculer l'altitude d'un point geographique
template<class TDEMImage>
double
DEMReaderFilter<TDEMImage>::
GetHeightAboveMSL(const PointType& worldPoint)
{
float height;
ossimGpt ossimWorldPoint;
ossimWorldPoint.lat=worldPoint[0];
ossimWorldPoint.lon=worldPoint[1];
height=m_ElevManager->getHeightAboveMSL(ossimWorldPoint);
return height;
}
///Methode SetSpacing
template<class TDEMImage>
void DEMReaderFilter<TDEMImage>
::SetSpacing( const double* spacing)
{
SpacingType s(spacing);
this->SetSpacing(s);
}
///Methode GenerateOutputInformation
template <class TDEMImage>
void DEMReaderFilter<TDEMImage>
::GenerateOutputInformation()
{
DEMImageType *output;
IndexType start;
start[0]=0;
start[1]=0;
PointType origin;
origin[0]=m_Ul[0]; //latitude de l'origine.
origin[1]=m_Ul[1]; //longitude de l'origine.
output = this->GetOutput(0);
// Calcul de la taille de l'image:
SizeType size;
size[0]=int (abs(((m_Lr[0]-m_Ul[0])/m_Spacing[0]))+1.5);
size[1]=int (abs(((m_Lr[1]-m_Ul[1])/m_Spacing[1]))+1.5);
// On specifie les parametres de la region
OutputImageRegionType largestPossibleRegion;
largestPossibleRegion.SetSize( size );
largestPossibleRegion.SetIndex( start );
output->SetLargestPossibleRegion( largestPossibleRegion );
output->SetSpacing(m_Spacing);
output->SetOrigin(m_Ul);
}
///Methode GenerateData
template <class TDEMImage>
void
DEMReaderFilter<TDEMImage>
::GenerateData()
{
DEMImagePointerType m_DEMImage = this->GetOutput();
// allocate the output buffer
m_DEMImage->SetBufferedRegion( m_DEMImage->GetRequestedRegion() );
m_DEMImage->Allocate();
// Create an iterator that will walk the output region
ImageIteratorType outIt = ImageIteratorType(m_DEMImage,m_DEMImage->GetRequestedRegion());
// Walk the output image, evaluating the height at each pixel
IndexType currentindex;
PointType phyPoint;
double height;
for (outIt.GoToBegin(); !outIt.IsAtEnd(); ++outIt)
{
currentindex=outIt.GetIndex();
m_DEMImage->TransformIndexToPhysicalPoint(currentindex, phyPoint);
ossimGpt ossimWorldPoint;
ossimWorldPoint.lat=phyPoint[0];
ossimWorldPoint.lon=phyPoint[1];
height=m_ElevManager->getHeightAboveMSL(ossimWorldPoint); //Calcul de l'altitude
otbMsgDebugMacro(<<" HeightAboveMSL: "<<height);
if (height>-static_cast<double>(32768)) //On teste si les fichiers MNT recouvre la zone g�ographique demand�e (-32768 = theNullHeightValue)
{
m_DEMImage->SetPixel(currentindex, static_cast<PixelType>(height) );
} //On remplit l'image
else
{
m_DEMImage->SetPixel(currentindex, static_cast<PixelType>(0) );
}
}
}
template <class TDEMImage>
void
DEMReaderFilter<TDEMImage>
::PrintSelf(std::ostream& os, Indent indent) const
{
Superclass::PrintSelf(os,indent);
os << indent << "Spacing:"<< m_Spacing[0] << ","<< m_Spacing[1] << std::endl;
os << indent << "Lr:"<< m_Lr[0] << ","<< m_Lr[1] << std::endl;
os << indent << "Ul:"<< m_Ul[0] << ","<< m_Ul[1] << std::endl;
}
} // namespace otb
#endif
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment