diff --git a/GeoLib/Raster.cpp b/GeoLib/Raster.cpp
index 30c627d5de71d258ad116491b6549dcfd75b7a17..fa9743f4411a08d7ff8c0b6da5db0a863bb8137f 100644
--- a/GeoLib/Raster.cpp
+++ b/GeoLib/Raster.cpp
@@ -63,6 +63,11 @@ void Raster::setNoDataVal (double no_data_val)
 	_no_data_val = no_data_val;
 }
 
+GeoLib::Point const& Raster::getOrigin() const
+{
+	return _ll_pnt;
+}
+
 void Raster::writeRasterAsASC(std::ostream &os) const
 {
 	// write header
diff --git a/GeoLib/Raster.h b/GeoLib/Raster.h
index 0385d4a16fcf2a800097e79c0449a61cac4a739d..f4a3d2e55db813774325b293e6913ab89183dc26 100644
--- a/GeoLib/Raster.h
+++ b/GeoLib/Raster.h
@@ -21,8 +21,16 @@ class Raster {
 public:
 	Raster(std::size_t n_cols, std::size_t n_rows, double xllcorner, double yllcorner,
 					double cell_size = 1, double no_data_val = -9999, double* raster_data = NULL);
+
 	std::size_t getNCols() const { return _n_cols; }
 	std::size_t getNRows() const { return _n_rows; }
+
+	/**
+	 * get the origin of lower left raster cell
+	 * @return the origin of the raster
+	 */
+	GeoLib::Point const& getOrigin() const;
+
 	void refineRaster(std::size_t n_cols, std::size_t n_rows);
 	double const* getRasterData() const { return _raster_data; }
 	virtual ~Raster();