Venha trabalhar conosco, temos bolsas disponíveis para o projeto!
PlatePrep prepares settlement-plate campaign photographs for annotation in CoralNet and other platforms, in a single five-step browser workflow: campaign metadata, per-plate triage, selection, perspective-corrected cropping at fixed scale, and the writing of named images and CSVs into an output folder. The interface is bilingual — the PT/EN toggle sits in the header. Photos never leave your computer; the only external call is the optional weather lookup. This page follows the manual shipped with version 1.1.2.
A Chromium-based desktop browser (Chrome or Edge). Direct folder access uses the File System Access API; in browsers without it, the results are downloaded as a .zip at the end. The photographs must be available on the computer — in Google Drive, mark the folder as Available offline. The weather lookup needs internet at the moment you click it, but every field can also be filled in by hand.
Open PlatePrep in Chrome, click Choose folders and start, and pick the input folder (the campaign photographs, JPG or PNG) and an output folder. The program reads the EXIF of every photo and moves to step 1.
The campaign metadata, typed once, composes each crop's file name and the metadata table. Campaign date, camera and coordinates arrive pre-filled from the photographs' EXIF and GPS; without GPS, type the coordinates or pick a saved site. The deployment date (day 0) is what turns into exposure days. Under Plates you set the number of plates, the triage numbering direction, the plate size — which fixes the crop scale — and the plate → treatment map, built in for the Bioē coating experiment and editable for any other. One click fetches the day's weather from Open-Meteo (air temperature and conditions from its historical service, based on the ERA5 reanalysis; water temperature from its marine service); the three fields are editable and go into each image's notes.
The photographs appear in sequence with their EXIF time. Click the first photo of each plate to mark the start of a group; the program groups the rest and numbers the plates. The counter turns green when the number of groups matches the number of plates, and Suggest uniform split gives a starting point. Triage feeds the crop step — each photo arrives with its plate pre-filled — and produces triage_mapping.csv. The step can also be skipped, and the plates picked by hand while cropping.
A gallery of every photograph, each thumbnail tagged with the plate assigned in triage. Check the ones to crop; photographs already cropped, found in the output folder, start unchecked.
For each photograph, click the plate's four corners, clockwise from the top left. The preview shows the rectified crop; a loupe helps with precision, and the points can be dragged or nudged with the arrow keys. The plate comes pre-filled from triage — verify it — while treatment, file name and sequence are automatic, and the notes already carry the weather. Enter saves and advances. The rectification is a fixed-scale homography: the whole image corresponds to the plate side, which is what makes the crops measurable. The photograph is read at native resolution and every output pixel is computed through the exact homography.
Keyboard: Enter saves and advances; Backspace undoes a point and Esc clears them; S skips the photograph; Ctrl and the wheel zoom, the wheel alone scrolls (Shift for horizontal); Alt and drag pans; C centres and R rotates 90°; the arrow keys nudge a point (Shift moves it by 5 px).
The summary shows what the session produced, and Write final files writes everything into the output folder — or downloads a .zip in fallback mode.
Plate##_T?_EXP_YYYY_MM_DD_##.JPG — square, perspective-corrected crops at fixed scale, with self-describing, machine-parseable names. The physical scale in pixels per centimetre is written into the JPEG's JFIF header, so Photoshop, GIMP, QGIS or Python open the crop already calibrated; nothing is drawn on the image itself.
metadata_coralnet.csv — one record per image, with the columns CoralNet imports: name, date, experiment, site, treatment, exposure days, plate, height, latitude, longitude, depth, camera, photographer and comments, which carry the day's weather.
triage_mapping.csv — original photograph to plate, treatment and sequence: a permanent record of the campaign photo log.
crop_manifest.csv and .json — for every crop, the four source-image corner coordinates, the working-canvas and source-file dimensions, the output size, the plate size and the scale. Any crop can be re-derived from it, and between-operator variability measured from the manifests alone.
PlatePrep_ImageJ_scale.ijm — an ImageJ/Fiji macro that sets the global spatial calibration of the campaign's crops. ImageJ's JPEG reader ignores the JFIF density, so this macro is run once per session.
A photograph will not load — check that the file is available offline, if it lives in Google Drive.
The camera has no GPS — type latitude and longitude in step 1; the weather lookup and the metadata table use those values.
The weather comes back empty — Open-Meteo's historical data (ERA5 reanalysis) can lag a few days behind; for a recent campaign, fill the three fields in by hand.
The photograph is on its side — press R to rotate 90° before marking the corners.
The crop already exists — the program asks whether to replace it, create a new one or discard it (shortcuts 1, 2 and 3).
Measuring in ImageJ or Fiji — ImageJ ignores the JFIF density, so run PlatePrep_ImageJ_scale.ijm from the output folder, or set the scale by hand with the image side in pixels and the plate side in centimetres. Photoshop, GIMP, QGIS and Python read the scale straight from the JPEG.
Re-deriving crops — on the welcome screen, Re-derive crops from a manifest reproduces earlier crops from the source photographs and the manifest, with the corners rescaled to the current resolution, and writes a log and a rendering audit.
The same instructions, illustrated with screenshots of every step, are distributed with the program in English and in Portuguese. PlatePrep is released under a CC BY 4.0 licence.