Orthorectification and radiometric calibration of raw Pleiades data yields unreliable results - What am I doing wrong? #50
-
I got access to "raw" Pleiades data (Geometric Processing Level: SENSOR; Radiometric Processing Level: BASIC), which I'm trying to orthorectify, calibrate radiometrically and export as GeoTIFF. I'm new to Pleiades data and was lucky finding EOReader to ease this process. If I understood correctly, opening the product, specifying a DEM and creating a stack should do all this. However, the final GeoTIFF appears to be offset by ~12 m towards ENE, if compared with e.g. Google or Bing Maps. Additionally, the reflectances of e.g. the Blue band are in a range between 411 and 4267, which appears quite strange to me. What is the unit of this output? Or may this be related to an error in the radiometric calibration? Strangely, if I include the It may be that both things are results of improper usage of your package. I built my code mainly from snippets from different tutotials: import logging
import tempenv
from sertit import logs
from eoreader.reader import Reader
from eoreader.bands import GREEN, BLUE, RED, NIR, DEM
from eoreader.env_vars import DEM_PATH
from eoreader.keywords import TO_REFLECTANCE
from dask.distributed import Client, LocalCluster
def run():
# Create logger
logger = logging.getLogger("eoreader")
logs.init_logger(logger)
pleiades_fname = "IMG_PHR1A_PMS_001"
reader = Reader()
prod = reader.open(pleiades_fname)
try:
prod.load(RED)[RED]
except ValueError as msg:
logger.error(msg)
dem = "SH_UTM_WGS84.tif"
with LocalCluster(
n_workers=4, threads_per_worker=4, processes=True
) as cluster, Client(cluster):
with tempenv.TemporaryEnvironment({DEM_PATH: dem}):
prod.load(DEM)[DEM]
stack = prod.stack([BLUE],
stack_path="test_stack.tif",
save_as_int = True)
return stack
if __name__ == "__main__":
stack = run() Environment:
Further Ideas |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
Hello, Thanks for this extra-detailed feedback! First of all, what kind of DEM is Concerning the reflectance & white noise:
To answer your last idea, the keyword to keep the bands "as is" is already implemented and is |
Beta Was this translation helpful? Give feedback.
-
Thanks for trying the workarounds! ➡️ The issue when saving stacks as uint16 with bands loaded "as is" is referenced here: #52 ➡️ I think I never really paid attention to SEN products (we don't use them during CEMS activations).
prod.ortho_stack = "/path/to/ortho_stack.tif" ➡️ Sorry I read too fast for the radiance output. You are right, for now you cannot load bands as radiance in EOReader.
Feel free to answer directly in the corresponding issues 😉 |
Beta Was this translation helpful? Give feedback.
Thanks for trying the workarounds!
➡️ The issue when saving stacks as uint16 with bands loaded "as is" is referenced here: #52
➡️ I think I never really paid attention to SEN products (we don't use them during CEMS activations).
What I'm doing is I am reprojecting the stacks with the given RPCs on the DEM.
I also have some shifts on my SEN products, but I was assuming it came from the DEM I'm using (orthorectifying a 0.5m image with a 90m DEM for testing purposes).
But since you have also this issue, I have referenced it here: #53
I have a workaroud though. If you can orthorectify the stack elsewhere, just set the ortho stack path as described here: