ERA as met input questions
Posted: May 15th, 2026, 5:53 pm
Hi everyone,
I'm new to working with HYSPLIT and would appreciate your input on a few issues I have faced, mostly related to using ERA5 as met data. My goal is to calculate 24-48h daily (potentially sub-daily) backward trajectories across 5-10 years in thousands of locations in Germany to investigate the effect of trees on air pollution. I am using era52arl for the conversion (see attached .cfg file for details how I implemented it). I have checked out the HYSPLIT user guide and several forum posts, but some open questions remain. As I'm an environmental economist by training, I'd appreciate your expertise a lot.
### 1. What is the appropriate model top for Hysplit + ERA5?
Is it possible to provide a general answer to this question? If I remember correctly, the model top in GDAS was 15500 when using it on the web. Are there any disadvantages to using a similar setting or something like 20000 for my European context?
### 2. Drop friction velocity `USTR` and setting `KBLS`
The README shipped with `era52arl` notes that ERA5 `friction_velocity` is biased small, and suggests that users may want to drop `USTR` and run with `KBLS=2` instead of `KBLS=1`. So I suppose I should follow that? Or are there scenarios in which I should not?
### 3. Cloud cover `TCLD` units / scaling
The ARL format guide lists `TCLD` (total cloud cover) in percent, but ERA5 `tcc` is a fraction (0–1). The installed `era52arl` default cfg and mine both use a multiplier of `1.0`, which leaves ARL `TCLD` as a fraction rather than as a percent.
- Should the cfg multiplier be `100.0` to match the ARL %-units spec?
- Or does HYSPLIT consume `TCLD` consistently in whatever units the ARL carries, so `1.0` is fine in practice?
### 4. Heat-flux / DSWF sign
The `era52arl` README states that HYSPLIT expects upward heat flux to be positive while ERA5 uses the opposite convention, so the `sshf`/`slhf` cfg multipliers should be negative. I am using `−0.00028` for `SHTF` and `LTHF` accordingly.
For `DSWF` (downward shortwave) I currently use `+0.00028`, on the assumption that `ssrd` is downward and positive in both ERA5 and HYSPLIT conventions, so no sign flip is needed. However, the `era5utils.py` helper in the `hysplit_metdata` repo appears to apply the same *negative* accumulated-field multiplier to `DSWF` as it does to `SHTF`/`LTHF`, which would contradict my setup. Which is correct — should `DSWF` carry a positive or a negative multiplier?
### 5. Variables I currently omit
I currently do not pull `MSLP` (pressure at mean level), `UMOF` (u-momentum flux), `VMOF` (v-momentum flux), or `RGHS` (surface roughness). Especially for the latter I am not sure whether omission is fine for my case.
### 6. Reduced pressure level set
As downloading ERA5 data takes ages, I am considering downloading only a reduced set of pressure levels (such as only 1000, 925, 850, 700, 600, 500, 400, 300, 250, 200, 150, 100, 70, 50, 30, 20, 10, 5, 1 as these are provided on the Destination Earth platform). I am sure there is no generalisable answer, but can I expect similar trajectories by omitting the rest of the 37 pressure levels?
### 7. Reduced geographical scope
Also related to data download constraints, I am considering subsetting the data such that I have a box that mostly covers Europe's land as I am interested in the forest cover along the backward trajectories. Is it correct to assume that even if a 48h backward trajectory originated outside the box, the path inside the Europe box should still be the same?
Thanks a lot for your help! Even if you can answer only one question, that would be of great help to me.
I'm new to working with HYSPLIT and would appreciate your input on a few issues I have faced, mostly related to using ERA5 as met data. My goal is to calculate 24-48h daily (potentially sub-daily) backward trajectories across 5-10 years in thousands of locations in Germany to investigate the effect of trees on air pollution. I am using era52arl for the conversion (see attached .cfg file for details how I implemented it). I have checked out the HYSPLIT user guide and several forum posts, but some open questions remain. As I'm an environmental economist by training, I'd appreciate your expertise a lot.
### 1. What is the appropriate model top for Hysplit + ERA5?
Is it possible to provide a general answer to this question? If I remember correctly, the model top in GDAS was 15500 when using it on the web. Are there any disadvantages to using a similar setting or something like 20000 for my European context?
### 2. Drop friction velocity `USTR` and setting `KBLS`
The README shipped with `era52arl` notes that ERA5 `friction_velocity` is biased small, and suggests that users may want to drop `USTR` and run with `KBLS=2` instead of `KBLS=1`. So I suppose I should follow that? Or are there scenarios in which I should not?
### 3. Cloud cover `TCLD` units / scaling
The ARL format guide lists `TCLD` (total cloud cover) in percent, but ERA5 `tcc` is a fraction (0–1). The installed `era52arl` default cfg and mine both use a multiplier of `1.0`, which leaves ARL `TCLD` as a fraction rather than as a percent.
- Should the cfg multiplier be `100.0` to match the ARL %-units spec?
- Or does HYSPLIT consume `TCLD` consistently in whatever units the ARL carries, so `1.0` is fine in practice?
### 4. Heat-flux / DSWF sign
The `era52arl` README states that HYSPLIT expects upward heat flux to be positive while ERA5 uses the opposite convention, so the `sshf`/`slhf` cfg multipliers should be negative. I am using `−0.00028` for `SHTF` and `LTHF` accordingly.
For `DSWF` (downward shortwave) I currently use `+0.00028`, on the assumption that `ssrd` is downward and positive in both ERA5 and HYSPLIT conventions, so no sign flip is needed. However, the `era5utils.py` helper in the `hysplit_metdata` repo appears to apply the same *negative* accumulated-field multiplier to `DSWF` as it does to `SHTF`/`LTHF`, which would contradict my setup. Which is correct — should `DSWF` carry a positive or a negative multiplier?
### 5. Variables I currently omit
I currently do not pull `MSLP` (pressure at mean level), `UMOF` (u-momentum flux), `VMOF` (v-momentum flux), or `RGHS` (surface roughness). Especially for the latter I am not sure whether omission is fine for my case.
### 6. Reduced pressure level set
As downloading ERA5 data takes ages, I am considering downloading only a reduced set of pressure levels (such as only 1000, 925, 850, 700, 600, 500, 400, 300, 250, 200, 150, 100, 70, 50, 30, 20, 10, 5, 1 as these are provided on the Destination Earth platform). I am sure there is no generalisable answer, but can I expect similar trajectories by omitting the rest of the 37 pressure levels?
### 7. Reduced geographical scope
Also related to data download constraints, I am considering subsetting the data such that I have a box that mostly covers Europe's land as I am interested in the forest cover along the backward trajectories. Is it correct to assume that even if a 48h backward trajectory originated outside the box, the path inside the Europe box should still be the same?
Thanks a lot for your help! Even if you can answer only one question, that would be of great help to me.