Git Product home page Git Product logo

Comments (10)

srcarter3 avatar srcarter3 commented on June 2, 2024

Hi there,

Our AWIPS does have the ability to decode Himawari data.

What I would suggest is to first get a file or two for manual testing and use our manual endpoint: /awips2/edex/data/manual/

If the data gets decoded you should see something new in the /awips2/edex/data/hdf5/ directory.

You should also be able to "watch" the ingest log file when you copy the file into the manual endpoint:
tail -f /awips2/edex/logs/edex-ingex-[today's date].log

And that should give you some indication if it was decoded.

I have a suspicion it might not decode right away, because it looks like the file name/header may or may not be the same as what we expect.
If it does not decode, you'll want to go edit this file:
/awips2/edex/data/utility/common_static/base/distribution/goesr.xml
At the bottom of that file you'll see a section for Himawari Imagery that is matching with regular expressions for:

<regex>^OR_HFD</regex>
<regex>^H8FD.B</regex>

You can try editing those or adding another <regex> </regex> line to match on your data.

If the data gets ingested, you should be able to see it in CAVE in the Product Browser.

If that all works, then I'd suggest writing a script that retrieves data in your data source and pushes it to your qpid queue for EDEX to decode automatically. You can see a brief example of this in our script /awips2/ldm/dev/checkFileTime.sh at line 43 -- this is where it puts the new file into the qpid queue for decoding.

After you have all that working, you may want to modify your CAVE menus for easier display access. Some information for that can be found in our documentation website.

Let me know if that all makes sense?

from awips2.

GarryLai avatar GarryLai commented on June 2, 2024

Hi there,

Our AWIPS does have the ability to decode Himawari data.

What I would suggest is to first get a file or two for manual testing and use our manual endpoint: /awips2/edex/data/manual/

If the data gets decoded you should see something new in the /awips2/edex/data/hdf5/ directory.

You should also be able to "watch" the ingest log file when you copy the file into the manual endpoint: tail -f /awips2/edex/logs/edex-ingex-[today's date].log

And that should give you some indication if it was decoded.

I have a suspicion it might not decode right away, because it looks like the file name/header may or may not be the same as what we expect. If it does not decode, you'll want to go edit this file: /awips2/edex/data/utility/common_static/base/distribution/goesr.xml At the bottom of that file you'll see a section for Himawari Imagery that is matching with regular expressions for:

<regex>^OR_HFD</regex>
<regex>^H8FD.B</regex>

You can try editing those or adding another <regex> </regex> line to match on your data.

If the data gets ingested, you should be able to see it in CAVE in the Product Browser.

If that all works, then I'd suggest writing a script that retrieves data in your data source and pushes it to your qpid queue for EDEX to decode automatically. You can see a brief example of this in our script /awips2/ldm/dev/checkFileTime.sh at line 43 -- this is where it puts the new file into the qpid queue for decoding.

After you have all that working, you may want to modify your CAVE menus for easier display access. Some information for that can be found in our documentation website.

Let me know if that all makes sense?

It seems that EDEX only support NETCDF format. Where I can download NETCDF format of Himawari data?

ERROR 2024-02-07 12:08:44,635 3990 [Ingest.GOESR-1] GoesrNetcdfDecoder: Unable to open the file HS_H09_20240207_0820_B01_FLDK_R10_S0110.DAT for splitting.
java.io.IOException: java.io.IOException: Cant read /tmp/sbn/manual/goesr/20240207/12/HS_H09_20240207_0820_B01_FLDK_R10_S0110.DAT: not a valid CDM file.
	at ucar.nc2.NetcdfFile.open(NetcdfFile.java:427) ~[cdm-4.6.10.jar:4.6.10]
	at ucar.nc2.NetcdfFile.open(NetcdfFile.java:394) ~[cdm-4.6.10.jar:4.6.10]
	at ucar.nc2.NetcdfFile.open(NetcdfFile.java:381) ~[cdm-4.6.10.jar:4.6.10]
	at ucar.nc2.NetcdfFile.open(NetcdfFile.java:369) ~[cdm-4.6.10.jar:4.6.10]
	at com.raytheon.uf.edex.netcdf.decoder.AbstractNetcdfDecoder.split(AbstractNetcdfDecoder.java:151) ~[com.raytheon.uf.edex.netcdf.jar:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
	at org.apache.camel.support.ObjectHelper.invokeMethodSafe(ObjectHelper.java:372) ~[camel-support-3.7.0.jar:3.7.0]
	at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:489) ~[camel-bean-3.7.0.jar:3.7.0]
	at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:311) ~[camel-bean-3.7.0.jar:3.7.0]
	at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:281) ~[camel-bean-3.7.0.jar:3.7.0]
	at org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:145) ~[camel-bean-3.7.0.jar:3.7.0]
	at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83) ~[camel-base-engine-3.7.0.jar:3.7.0]
	at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41) ~[camel-support-3.7.0.jar:3.7.0]
	at org.apache.camel.language.bean.BeanExpression.invokeBean(BeanExpression.java:347) ~[camel-bean-3.7.0.jar:3.7.0]
	at org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:202) ~[camel-bean-3.7.0.jar:3.7.0]
	at org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:214) ~[camel-bean-3.7.0.jar:3.7.0]
	at org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:150) ~[camel-core-processor-3.7.0.jar:3.7.0]
	at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:276) ~[camel-core-processor-3.7.0.jar:3.7.0]
	at org.apache.camel.processor.Splitter.process(Splitter.java:145) ~[camel-core-processor-3.7.0.jar:3.7.0]
	at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:312) ~[camel-base-engine-3.7.0.jar:3.7.0]
	at org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:90) ~[camel-core-processor-3.7.0.jar:3.7.0]
	at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148) ~[camel-base-engine-3.7.0.jar:3.7.0]
	at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60) ~[camel-base-engine-3.7.0.jar:3.7.0]
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:147) ~[camel-core-processor-3.7.0.jar:3.7.0]
	at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:312) ~[camel-base-engine-3.7.0.jar:3.7.0]
	at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83) ~[camel-base-engine-3.7.0.jar:3.7.0]
	at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41) ~[camel-support-3.7.0.jar:3.7.0]
	at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:130) ~[camel-jms-3.7.0.jar:3.7.0]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736) ~[spring-jms-5.3.20.jar:5.3.20]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696) ~[spring-jms-5.3.20.jar:5.3.20]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674) ~[spring-jms-5.3.20.jar:5.3.20]
	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:331) ~[spring-jms-5.3.20.jar:5.3.20]
	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:270) ~[spring-jms-5.3.20.jar:5.3.20]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1237) ~[spring-jms-5.3.20.jar:5.3.20]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1227) ~[spring-jms-5.3.20.jar:5.3.20]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1120) ~[spring-jms-5.3.20.jar:5.3.20]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
Caused by: java.io.IOException: Cant read /tmp/sbn/manual/goesr/20240207/12/HS_H09_20240207_0820_B01_FLDK_R10_S0110.DAT: not a valid CDM file.
	at ucar.nc2.NetcdfFile.open(NetcdfFile.java:825) ~[cdm-4.6.10.jar:4.6.10]
	at ucar.nc2.NetcdfFile.open(NetcdfFile.java:424) ~[cdm-4.6.10.jar:4.6.10]
	... 41 common frames omitted

from awips2.

srcarter3 avatar srcarter3 commented on June 2, 2024

Hi there,

I believe they are available from AWS:

https://noaa-himawari9.s3.amazonaws.com/index.html#AHI-L2-FLDK-Clouds/2024/02/07/0800/

from awips2.

GarryLai avatar GarryLai commented on June 2, 2024

Hi there,

I believe they are available from AWS:

https://noaa-himawari9.s3.amazonaws.com/index.html#AHI-L2-FLDK-Clouds/2024/02/07/0800/

Same not working

WARN  2024-02-07 16:10:10,457 7974 [Ingest.GOESR-1] GoesrNetcdfDecoder: No valid records were found in file: AHI-CHGT_v1r1_h09_s202402070800203_e202402070809397_c202402070818204.nc
WARN  2024-02-07 16:15:55,130 7976 [Ingest.GOESR-1] GoesrNetcdfDecoder: No valid records were found in file: AHI-CPHS_v1r1_h09_s202402070800203_e202402070809397_c202402070818204.nc
WARN  2024-02-07 16:15:58,132 7978 [Ingest.GOESR-2] GoesrNetcdfDecoder: No valid records were found in file: AHI-CMSK_v1r1_h09_s202402070800203_e202402070809397_c202402070818204.nc

from awips2.

srcarter3 avatar srcarter3 commented on June 2, 2024

Just as a test, can you ingest any current goes data successfully?

from awips2.

GarryLai avatar GarryLai commented on June 2, 2024

Just as a test, can you ingest any current goes data successfully?

No, nothing found in /awips2/edex/data/hdf5/

from awips2.

GarryLai avatar GarryLai commented on June 2, 2024

Where is the data source used in edex-cloud.unidata.ucar.edu?

from awips2.

srcarter3 avatar srcarter3 commented on June 2, 2024

You have to pull the data or drop in a manual file from somewhere to see if your EDEX will decode GOES data.
I believe it is also available through AWS: https://registry.opendata.aws/noaa-goes/

Our data sources are from LDM feeds here in the United States.
Are you an academic institution? Or a private company? Or a weather enthusiast?

from awips2.

GarryLai avatar GarryLai commented on June 2, 2024

I found that the correct file is at AHI-L2-FLDK-ISatSS, with the prefix OR_HFD.
Thanks for your helping.
BTW, I am a college student major in earth science from Taiwan.

from awips2.

srcarter3 avatar srcarter3 commented on June 2, 2024

Okay great, I'm glad you were able to get Himawari data to work!

from awips2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.