Spaces:
Running on Zero
Running on Zero
Download test_app_logic.py from prateeksharmacoder/satellite: direct link, hf CLI and curl.
- Browser
- Download file 3.65 kB
-
https://huggingface.co/spaces/prateeksharmacoder/satellite/resolve/main/test_app_logic.py
- Command line
-
hf download hf://spaces/prateeksharmacoder/satellite/test_app_logic.py
-
curl -L -o test_app_logic.py https://huggingface.co/spaces/prateeksharmacoder/satellite/resolve/main/test_app_logic.py
3.65 kB
| import sys | |
| from pathlib import Path | |
| import numpy as np | |
| import rasterio | |
| from rasterio.transform import Affine | |
| from PIL import Image | |
| sys.path.insert(0, str(Path(__file__).resolve().parent)) | |
| from app_zerogpu import run_super_resolution | |
| def create_test_images(): | |
| print("Creating test images...") | |
| # 1. 16-bit GeoTIFF (Single multiband file) | |
| tiff_path = "test_16bit.tif" | |
| data = np.random.randint(0, 65535, (3, 64, 64), dtype=np.uint16) | |
| transform = Affine.translation(100.0, 50.0) * Affine.scale(10.0, -10.0) | |
| profile = { | |
| 'driver': 'GTiff', | |
| 'height': 64, | |
| 'width': 64, | |
| 'count': 3, | |
| 'dtype': 'uint16', | |
| 'crs': 'EPSG:4326', | |
| 'transform': transform, | |
| } | |
| with rasterio.open(tiff_path, 'w', **profile) as dst: | |
| dst.write(data) | |
| # 2. 16-bit GeoTIFFs (3 separate single-band files) | |
| b02_path = "Sentinel-2_L2A_B02_(Raw).tif" | |
| b03_path = "Sentinel-2_L2A_B03_(Raw).tif" | |
| b04_path = "Sentinel-2_L2A_B04_(Raw).tif" | |
| profile_single = profile.copy() | |
| profile_single['count'] = 1 | |
| with rasterio.open(b02_path, 'w', **profile_single) as dst: dst.write(data[2:3]) | |
| with rasterio.open(b03_path, 'w', **profile_single) as dst: dst.write(data[1:2]) | |
| with rasterio.open(b04_path, 'w', **profile_single) as dst: dst.write(data[0:1]) | |
| # 3. PNG | |
| png_path = "test.png" | |
| Image.fromarray(np.random.randint(0, 255, (64, 64, 3), dtype=np.uint8)).save(png_path) | |
| # 4. JPG | |
| jpg_path = "test.jpg" | |
| Image.fromarray(np.random.randint(0, 255, (64, 64, 3), dtype=np.uint8)).save(jpg_path) | |
| return tiff_path, [b02_path, b03_path, b04_path], png_path, jpg_path | |
| class DummyProgress: | |
| def __call__(self, value, desc=None): | |
| pass | |
| def main(): | |
| tiff_path, multi_tiff_paths, png_path, jpg_path = create_test_images() | |
| models = ["HAT-SAT (Recommended)", "ESRGAN (Baseline)"] | |
| for img_path in [tiff_path, multi_tiff_paths, png_path, jpg_path]: | |
| for model in models: | |
| print(f"\n--- Testing {img_path} with {model} ---") | |
| try: | |
| orig_img, result, out_png, out_tiff = run_super_resolution(img_path, model, progress=DummyProgress()) | |
| # Extract value from gr.update() dict | |
| out_png_val = out_png["value"] if isinstance(out_png, dict) else getattr(out_png, "value", out_png) | |
| out_tiff_val = out_tiff["value"] if isinstance(out_tiff, dict) else getattr(out_tiff, "value", out_tiff) | |
| out_file_path = out_tiff_val if out_tiff_val is not None else out_png_val | |
| print(f"Result size: {result.size}") | |
| print(f"Output file: {out_file_path}") | |
| if img_path == tiff_path: | |
| with rasterio.open(out_file_path) as src: | |
| print("TIFF Metadata:") | |
| print(" CRS:", src.crs) | |
| print(" Transform:", src.transform) | |
| print(" Bounds:", src.bounds) | |
| print(" Dimensions:", src.width, "x", src.height) | |
| # Verify scale | |
| expected_transform = Affine.translation(100.0, 50.0) * Affine.scale(2.5, -2.5) # 10 / 4 = 2.5 | |
| assert abs(src.transform.a - expected_transform.a) < 1e-6 | |
| assert src.width == 64 * 4 | |
| print("Scale and bounds verified!") | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| if __name__ == "__main__": | |
| main() | |