This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>From: "Hongming Qi" <address@hidden> >Organization: NOAA >Keywords: 200303122036.h2CKaqB2028638 NOAAPORT SDI LDM-6 Hi Hongming, >I am Hongming Qi who is working in NOAA WWB. Sorry to bother you again. No worries. >I got lots of helps from you when I was installing LDM. Now I have one >question about LDM. We are trying to exact NLDN lightning data from >NOAAPORT. Do you think LDM could be connected with NOAAPORT SDI ingestor >system? Yes, definitely. This is how we are supplying NOAAPORT data to Unidata sites. >I know there is one command "pqing" in LDM package. It looks >like the feedname should be specified. SSEC setup the SDI ingester that both they and we are using in our IDD system. I am assuming that you got your NOAAPORT system from them, so they should be able to help you with the specifics of what needs to be done on the SDI to make it work with the LDM. >Meanwhile, Is the LDM able to >detect the one-minute NLDN data from NOAAPORT if LDM could be connected >to NOAAPORT? I appreciate it. The LDM is simply a vehicle for sending products from one machine to another. It would be the responsibility of the SDI ingest process for recognizing the lightning products on NOAAPORT and doing something specific with them. If your question is whether the LDM has sub minute resolution for moving data, the answer is yes. One a product is inserted in to the LDM queue, it is tagged with a time that has resolution down to the millisecond. >Thanks, You are welcome. Again, I recommend that you contact SSEC for specific help in getting your NOAAPORT SDI to work with an LDM. You will, of course, have to build an LDM on the SDI box, but this is easy to do _if_ you have compilers available on the SDI. Also, I want to make you aware of our impending release of a new version of the LDM, LDM-6, that is _much_ more efficient in relaying data to other LDM-6s. We have a release candidate for LDM-6 available right now to sites that are interested in upgrading. The only thing holding up a general announcement of LDM-6 is LDM-6 specific documentation, and that is being worked on. If you are interested in trying out the new LDM-6, you can grab it (ldm-6.0.2.tar.Z) from the pub/ldm/test directory of anonymous FTP on our FTP server, ftp.unidata.ucar.edu. The following is some information I sent to top level IDD relay nodes when I asked them to upgrade to LDM-6 in advance of a general announcement: From address@hidden Mon Mar 3 17:12:11 2003 Notes: - The online documentation for LDM is still that for LDM-5. We (Steve Emmerson) are working on upgrading it for the general release. LDM 6 offers a number of new ideas that we are excited about. Here's an overview: o request lines to the same host in ldmd.conf are no longer accumulated into a single rpc.ldmd invocation. This allows a user to split feeds without having to create machine name aliases in /etc/hosts. o the size of the HEREIS - COMINGSOON "fence" is now user configurable. In LDM-5, all products smaller than 16384 bytes would be sent using the HEREIS protocol. In LDM-6, this "fence" is settable on a per-request line basis. The default for the "fence" size is now essentially infinity (actually, it is size of a uint). You specify the "fence" size as the 4th parameter on an ldmd.conf request line. LDM-6 understands a couple of mnemonics for minimim and maximum "fence" sizes: request IDS|DDPLUS ".*" my.upstream.site PRIMARY (or PRI) request IDS|DDPLUS ".*" my.upstream.site ALTERNATE (or ALT) or equivalently: request IDS|DDPLUS ".*" my.upstream.site MAXIMIM (or MAX) request IDS|DDPLUS ".*" my.upstream.site MINIMUM (or MIN) We think that the PRI (uint_max) and ALT (zero) values are basically all that a site will ever need/use, but the values are configurable nonetheless. o products sent with the COMINGSOON/BLKDATA protocol are sent in one chunk after a transaction is made between the client and server in which the client says that it wants the product. In LDM-5, the same client/server transaction was made and then the product was sent in 16384 BLKDATA chunks. o LDM-6 is backward/forward compatible with LDM-5. LDM-5 clients can receive data from LDM-6 servers, and LDM-6 clients can receive data from LDM-5 servers. When LDM-5 talks to LDM-6, it does so using LDM-5 protocols. LDM-6 running LDM-5 protocols is more efficient than LDM-5. o LDM-6 can use the same product queue that LDM-5 uses. This allows a site to install the new version and start running without remaking the product queue. o LDM-6 is much more capable of delivering data to electronically remote sites. One site we have been using for testing is located on the edge of the Amazon in Belem, Brazil. o LDM-6's ldmadmin now does several things for you that you had to do by hand in LDM-5: o put you in the ~ldm directory at LDM startup o create the ~ldm/logs/ldmd.log file if it does not already exist o determine your machine's hostname using a 'uname -n'. If this does not result in a fully qualified hostname, ldmadmin will complain and not start the LDM. In this case, you need to edit ldmadmin and set the hostname: change: chop($hostname = `uname -n`); # $hostname = "your.hostname.here"; to: # chop($hostname = `uname -n`); $hostname = "yourown.hostname.edu"; o LDM-6's ldmadmin now waits until the rpc.ldmd processes have all exited before returning you to the Unix command prompt o LDM-6 now understands CONDUIT and CRAFT as the NMC2 and NEXRD2 streams. o Some early tests using synthesized data showed that LDM-6 was capable of moving 8.4 times more data than LDM-5. The increase in "efficiency" using real data has, however, not yet been quantified, but qualitatively we can assure that the increase in "efficiency" is real. For reference, the early tests that showed the 8.4 times increase was conducted between a machine here at the UPC, and a Linux PC running at the Universidade Federal do Para in Belem, Brazil using synthetic products that were each 200KB in size. Also, during the test, the client LDM did not write into a product queue. N.B. (nota bene/yo): During stress testing of the LDM-6, we learned that there is a class of "pathological" regular expressions that adversly affect the performance of LDM servers. Steve sent a note to ldm-users explaining how to identify pathological cases, and what to do to correct these. Unfortunately, it is the client requesting data that has control over these regular expressions, so if you find these in your ldmd.log files, you will need to contact the downstream host's administrator and ask him/her to correct the pattern. Steve has included a new function in LDM-6, regex, that can be used to test regular expressions for pathologicalness ;-). Check the regex man page for more information after you install LDM-6. To upgrade to LDM-6, then you should do the following: 1) make backup copies of your ~ldm/etc/ldmd.conf file(s). While you are at it, you could make a backup copy of your ~ldm/etc/pqact.conf file, but this is optional since it will not be affected by moving to LDM-6. 2) FTP LDM-6 release candidate 6: <login as 'ldm'> cd ~ldm ftp ftp.unidata.ucar.edu <user> anonymous <pass> your_full_email_address cd pub/ldm/test binary get ldm-6.0.2.tar.Z quit zcat ldm-6.0.2.tar.Z | tar xvf - 3) build LDM-6. Note that LDM-6 is built with '-O' optimization turned on. If you want to build otherwise, you will want to set the Unix environment variable CFLAGS _before_ you run configure. Also, you should define the Unix environment variable LDMHOME _before_ you run configure: setenv CFLAGS -O setenv LDMHOME your_ldm_home_directory cd ~ldm/ldm-6.0.2/src ./configure make && make install 4) finish the LDM install as 'root': sudo make install_setuids 5) adjust entries in ldmadmin to match those from your existing ldmadin. This should boil down to you changing the product queue size; the number of log files that you want to keep online (we keep 14 on our IDD machines); uncommenting out the entry for udunits if you are running things like gribtonc; filling in your full hostname if a 'uname -n' does not return a fully qualified hostname; etc. 6) shutdown your current LDM waiting for all LDM processes to exit. This step is easier in LDM-6 since ldmadmin won't return you to the Unix/Linux prompt before processes have exited. 7) change the runtime link to point at ldm-6.0.2 cd ~ldm rm runtime && ln -s ldm-6.0.2 runtime 8) verify that your operating system has finished flushing the LDM queue from memory to disk. I found that this was an important step in getting things to work smoothly on thelma. I did the verification by watching the iostat listing of top. As soon as it quites down, you are ready to go. Our experience is that the larger the queue, the longer this step takes. We even added a 'sync' call from ldmadmin to tell the OS to sync to disk before shutting down LDM processes. 9) start LDM-6: rehash <- C shell only ldmadmin start I think I have covered all bases in this note, but you never know. The good news is that you guys already know all of the upgrade procedure, so most of the above was unneeded. Cheers, Tom From: "Hongming Qi" <address@hidden> Date: Thu, 13 Mar 2003 11:31:33 -0500 Organization: noaa To: Tom Yoksas <address@hidden> Subject: Re: 20030312: LDM with NOAAPORT Tom, Thank you so much! I will try to install version 6.0 in our Solaris ingestor system. Thanks, Hongming