cleanup
This commit is contained in:
parent
7a4691e3e4
commit
d07f3485fc
12 changed files with 38 additions and 8083 deletions
BIN
10.png
BIN
10.png
Binary file not shown.
Before Width: | Height: | Size: 3.2 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1018
log.txt
1018
log.txt
File diff suppressed because one or more lines are too long
|
@ -11,7 +11,6 @@ use std::time::SystemTime;
|
|||
use actix_web::{App, HttpServer};
|
||||
use actix_web::web::Data;
|
||||
use crate::grib2::{LookupTable2D};
|
||||
use crate::sources::noaa::mrms_cref;
|
||||
|
||||
#[global_allocator]
|
||||
static GLOBAL: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
|
||||
|
@ -39,7 +38,7 @@ async fn main() -> std::io::Result<()> {
|
|||
});
|
||||
HttpServer::new(move || {
|
||||
App::new()
|
||||
.service(mrms_cref)
|
||||
.service(sources::noaa::noaa_mrms_merged_composite_reflectivity_qc)
|
||||
.app_data(data.clone())
|
||||
})
|
||||
.bind(("::", 8080))?
|
||||
|
|
|
@ -165,4 +165,28 @@ pub fn render(xtile: f64, ytile: f64, z: i32, tilesize: usize, pal: Palette, map
|
|||
}
|
||||
|
||||
buf
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! grib2_handler {
|
||||
(mount $f:ident, at: $path:expr, from: $from:expr, needs_gzip: $needs_gzip:expr, valid_for: $valid_for:expr, lut_with: $lut_key:expr, palette: $pal:expr) => {
|
||||
#[::actix_web::get($path)]
|
||||
async fn $f(path: ::actix_web::web::Path<(i32,u32,u32)>, data: ::actix_web::web::Data<crate::AppState>) -> ::actix_web::HttpResponse {
|
||||
crate::sources::grib2::reload_if_required(
|
||||
$from,
|
||||
$needs_gzip,
|
||||
$valid_for,
|
||||
$lut_key,
|
||||
&data.lut_cache_timestamps,
|
||||
&data.lut_cache
|
||||
).await;
|
||||
if let Some(map) = data.lut_cache.read().await.get(&$lut_key) {
|
||||
::actix_web::HttpResponse::Ok()
|
||||
.insert_header(::actix_web::http::header::ContentType(::mime::IMAGE_PNG))
|
||||
.body(crate::sources::grib2::render(path.1 as f64, path.2 as f64, path.0, 256, $pal, map))
|
||||
} else {
|
||||
::actix_web::HttpResponse::new(::actix_web::http::StatusCode::NOT_FOUND)
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
|
@ -1,2 +1,3 @@
|
|||
pub mod noaa;
|
||||
mod grib2;
|
||||
#[macro_use]
|
||||
pub mod grib2;
|
|
@ -1,40 +1,12 @@
|
|||
use std::collections::BTreeMap;
|
||||
use std::f64::consts::PI;
|
||||
use std::io::{BufWriter, Cursor, Read};
|
||||
use std::time::{SystemTime};
|
||||
use actix_web::{get, HttpResponse, web};
|
||||
use actix_web::http::{header, StatusCode};
|
||||
use actix_web::web::Data;
|
||||
use eccodes::{CodesHandle, FallibleStreamingIterator, ProductKind};
|
||||
use flate2::read::GzDecoder;
|
||||
use ndarray::{Zip};
|
||||
use ordered_float::{FloatCore, OrderedFloat};
|
||||
use png::{BitDepth, ColorType, Encoder};
|
||||
use wxbox_pal::{Color, ColorPalette, create_test_palette};
|
||||
use crate::{AppState, LutKey};
|
||||
use crate::grib2::{closest_key, LookupTable2D};
|
||||
use crate::pixmap::Pixmap;
|
||||
use crate::sources::grib2::{eccodes_remap, load, needs_reload, reload_if_required, render};
|
||||
|
||||
#[get("/noaa_mrms_merged_composite_reflectivity_qc/{z}/{x}/{y}.png")]
|
||||
async fn mrms_cref(path: web::Path<(i32, u32, u32)>, data: Data<AppState>) -> HttpResponse {
|
||||
let pal = create_test_palette();
|
||||
|
||||
reload_if_required(
|
||||
"https://mrms.ncep.noaa.gov/data/2D/MergedReflectivityQCComposite/MRMS_MergedReflectivityQCComposite.latest.grib2.gz",
|
||||
true,
|
||||
120,
|
||||
LutKey::NoaaMrmsMergedCompositeReflectivityQc,
|
||||
&data.lut_cache_timestamps,
|
||||
&data.lut_cache
|
||||
).await;
|
||||
|
||||
if let Some(map) = data.lut_cache.read().await.get(&LutKey::NoaaMrmsMergedCompositeReflectivityQc) {
|
||||
HttpResponse::Ok()
|
||||
.insert_header(header::ContentType(mime::IMAGE_PNG))
|
||||
.body(render(path.1 as f64, path.2 as f64, path.0, 256, pal, map))
|
||||
} else {
|
||||
HttpResponse::new(StatusCode::NOT_FOUND)
|
||||
}
|
||||
}
|
||||
use wxbox_pal::create_test_palette;
|
||||
use crate::{grib2_handler, LutKey};
|
||||
|
||||
grib2_handler! {
|
||||
mount noaa_mrms_merged_composite_reflectivity_qc,
|
||||
at: "/noaa_mrms_merged_composite_reflectivity_qc/{z}/{x}/{y}.png",
|
||||
from: "https://mrms.ncep.noaa.gov/data/2D/MergedReflectivityQCComposite/MRMS_MergedReflectivityQCComposite.latest.grib2.gz",
|
||||
needs_gzip: true,
|
||||
valid_for: 120,
|
||||
lut_with: LutKey::NoaaMrmsMergedCompositeReflectivityQc,
|
||||
palette: create_test_palette()
|
||||
}
|
|
@ -4,7 +4,6 @@
|
|||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite dev",
|
||||
"host": "vite dev --host",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||
|
|
Loading…
Reference in a new issue