Scénario de test & Cas d'usage
Procesamiento, manipulación y análisis de imágenes.
Descubrir todas las acciones de imageCreación de una tabla que referencia dos imágenes satelitales de gran tamaño (simuladas).
| 1 | DATA mycas.imagenes_satelite; |
| 2 | LENGTH region_id $10 image_path $200; |
| 3 | INPUT region_id $ image_path $; |
| 4 | DATALINES; |
| 5 | AMAZONAS /path/to/large_satellite_image_1.tif |
| 6 | CONGO /path/to/large_satellite_image_2.tif |
| 7 | ; |
| 8 | RUN; |
| 9 | |
| 10 | PROC CAS; |
| 11 | image.loadImages / |
| 12 | path='imagenes_satelite' |
| 13 | casOut={name='cas_satelite', caslib='mycas', replace=true} |
| 14 | TABLE={name='imagenes_satelite', caslib='mycas'} |
| 15 | copyVars={'region_id'}; |
| 16 | RUN; |
| 1 | PROC CAS; |
| 2 | image.augmentImages / |
| 3 | TABLE={name='cas_satelite', caslib='mycas'} |
| 4 | seed=2024 |
| 5 | augmentations={{ |
| 6 | sweepImage=true, width=256, height=256, stepSize=128, |
| 7 | mutations={{colorShifting=true}, {sharpen=true}} |
| 8 | }} |
| 9 | casOut={name='parches_satelite', caslib='mycas', replace=true} |
| 10 | copyVars={'region_id'} |
| 11 | image='_image_'; |
| 12 | RUN; |
| 1 | PROC CAS; |
| 2 | SIMPLE.numRows / |
| 3 | TABLE={name='parches_satelite', caslib='mycas'}; |
| 4 | RUN; |
La acción debe ejecutarse sin errores de memoria, a pesar del gran número de parches generados. La tabla de salida 'parches_satelite' debe contener un número muy elevado de filas (dependerá del tamaño de las imágenes de entrada, pero se esperan miles o millones de parches). Cada imagen original habrá generado `2 * (N_parches_horizontales * N_parches_verticales)` filas en la tabla de salida. La columna 'region_id' debe estar correctamente propagada a todos los parches generados.