Operational issue – Amazon EC2 Outage (N. Virginia): Some TCP customers are currently experiencing a service outage related to the AWS power failure in Northern Virginia which is broadly impacting software providers globally. AWS expects full recover to happen this morning, but has acknowledged unexpected delays. Realtime updates from AWS can be found here and updates directly from TCP can be found here. TCP is working behind the scenes to migrate impacted customers to a secondary datacenter should AWS be unable to resolve their issue this morning.
import cv2 def to_linear_srgb(bgr): srgb = bgr[..., ::-1] / 255.0 # BGR→RGB & normalise linear = np.where(srgb <= 0.04045, srgb / 12.92, ((srgb + 0.055) / 1.055) ** 2.4) return linear Many JPEG tiles contain compression noise. Apply a light non‑local means filter:
Use conda to manage the Python environment: pppe153 mosaic015838 min high quality
conn = sqlite3.connect('tiles_index.db') cur = conn.cursor() cur.execute('SELECT file_path FROM tiles') missing = [p for (p,) in cur.fetchall() if not os.path.isfile(p)] print(f'Missing files: len(missing)') /project_root │ ├─ /source_images # original PPPE153 files (max) ├─ /tiles_min # down‑scaled "min" tiles (800x800) ├─ /tiles_max # full‑resolution tiles (optional) ├─ /index │ └─ tiles_index.db ├─ /scripts │ └─ mosaic_builder.py ├─ /output │ ├─ /drafts │ └─ /final └─ /assets └─ target.jpg # your master image Having distinct folders prevents accidental overwriting and speeds up batch operations. 5. Pre‑Processing Tiles for Optimal Quality 5.1 Resizing & Normalising If you plan to use the min set (800 × 800 px) but need a different tile size (e.g., 250 × 250 px), batch‑resize: import cv2 def to_linear_srgb(bgr): srgb = bgr[
magick mogrify -path clean_tiles -filter Gaussian -define convolve:scale='2,2' -quality 95 *.jpg Or in Python (OpenCV): Pre‑Processing Tiles for Optimal Quality 5
denoised = cv2.fastNlMeansDenoisingColored(img, None, 10, 10, 7, 21)