<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Grid Raster miteinander verschneiden]]></title><description><![CDATA[<p>Hallo zusammen !</p>
<p>Wie der Titel schon verrät muss ich Grid Raster miteinander verschneiden. Das wäre an sich kein Problem wenn es sich nur um einige Dateien handeln würde. Ich muss allerdings einige Hundert miteinander verschneiden. Im hab eigentlich recht wenig Praxis was sowas angeht aber ich denke da komm ich um ein kleines C++ Programm nicht drum herum das ich dann für ArcInfo verwenden kann, weil das manuel nicht machbar ist.</p>
<p>Es handelt sich im Großen und Ganzen um Niederschlagsdaten die als Grid Raster vorliegen. Diese Daten sollen auf ein bestimmtes Gebiet (Einzugsgebiet, was auch als Grid Raster vorhanden ist) zugeschnitten werden.</p>
<p>Die Niederscglagsdaten sind in einzelene sogenannte &quot;event&quot;-Ordner unterteilt,dh es geht los bei &quot;event4&quot; dann &quot;event9&quot;,&quot;event10&quot; (die zahlen sind nicht durchgehend) usw.<br />
In diesen &quot;event&quot;-Ordnern sind die Grid Raster Ordner untergebracht die nach &quot;cMonatTagStundeMinute&quot; benannt sind.</p>
<p>Wie gesagt nun gilt es diese Grid Raster auf den einen Gebiets Grid Raster zuzuschneiden.</p>
<p>Wenn einer vielleicht eine Idee hat wie ich an dieses Problem herangehn sollte und wie der Quellcode eines solchen Programms auschauen sollte wäre ich sehr froh.</p>
<p>danke</p>
<p>Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180953/grid-raster-miteinander-verschneiden</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 10:10:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180953.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 May 2007 14:50:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Tue, 08 May 2007 14:51:03 GMT]]></title><description><![CDATA[<p>Hallo zusammen !</p>
<p>Wie der Titel schon verrät muss ich Grid Raster miteinander verschneiden. Das wäre an sich kein Problem wenn es sich nur um einige Dateien handeln würde. Ich muss allerdings einige Hundert miteinander verschneiden. Im hab eigentlich recht wenig Praxis was sowas angeht aber ich denke da komm ich um ein kleines C++ Programm nicht drum herum das ich dann für ArcInfo verwenden kann, weil das manuel nicht machbar ist.</p>
<p>Es handelt sich im Großen und Ganzen um Niederschlagsdaten die als Grid Raster vorliegen. Diese Daten sollen auf ein bestimmtes Gebiet (Einzugsgebiet, was auch als Grid Raster vorhanden ist) zugeschnitten werden.</p>
<p>Die Niederscglagsdaten sind in einzelene sogenannte &quot;event&quot;-Ordner unterteilt,dh es geht los bei &quot;event4&quot; dann &quot;event9&quot;,&quot;event10&quot; (die zahlen sind nicht durchgehend) usw.<br />
In diesen &quot;event&quot;-Ordnern sind die Grid Raster Ordner untergebracht die nach &quot;cMonatTagStundeMinute&quot; benannt sind.</p>
<p>Wie gesagt nun gilt es diese Grid Raster auf den einen Gebiets Grid Raster zuzuschneiden.</p>
<p>Wenn einer vielleicht eine Idee hat wie ich an dieses Problem herangehn sollte und wie der Quellcode eines solchen Programms auschauen sollte wäre ich sehr froh.</p>
<p>danke</p>
<p>Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280963</guid><dc:creator><![CDATA[marlouwe]]></dc:creator><pubDate>Tue, 08 May 2007 14:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Tue, 08 May 2007 21:35:42 GMT]]></title><description><![CDATA[<p>Zumindest mir ist nicht klar, was Du genau machen willst. Und nach der Zahl an antworten zu urteilen vielen anderen wohl auch nicht. Bedenke: Wir stecken da nicht so tief drin wie Du. Vielleicht magst Du einfach mal erklären, was Du unter einem Grid-Raster verstehst und was Du unter verschneiden verstehst. Ein Beispiel dazu schadet sicher auch nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281239</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Tue, 08 May 2007 21:35:42 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Wed, 09 May 2007 07:30:05 GMT]]></title><description><![CDATA[<p>das Thema scheint interessant zu sein, schade dass sich Marlouwe auf Jesters Posting hin noch nicht wieder gemeldet hat.</p>
<p>marlouwe schrieb:</p>
<blockquote>
<p>Hallo zusammen !</p>
<p>Wie der Titel schon verrät muss ich Grid Raster miteinander verschneiden. Das wäre an sich kein Problem wenn es sich nur um einige Dateien handeln würde...</p>
</blockquote>
<p>ok, wenn das Verschneiden von zwei Grids kein Problem ist, so erläutere uns doch mal, wie das geht (Link ist auch ok) - und wir überlegen dann wie es mit vielen Grids funktionieren könnte.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281334</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 09 May 2007 07:30:05 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Wed, 09 May 2007 07:40:26 GMT]]></title><description><![CDATA[<p>ueber wieviel MB an daten sprechen wir hier? ich wuerde an deiner stelle erstmal alles ins ram laden.<br />
(ich gehe mal davon aus dass du alle niederschlaege aufsummieren musst?)<br />
Dann gehst du das gebietsraster fuer jedes niederschlagsraster durch und summierst quasi layer fuer layer auf das gebietsraster auf, falls ein gebietsraster-punkt ausserhalb deines niederschlagrasters liegt, kannst du ja erstmal 0 zurueckliefern (optimieren kann man spaeter sicherlich immer noch :D).</p>
<p>noch irgend ein problem vorhanden? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281342</guid><dc:creator><![CDATA[rapso]]></dc:creator><pubDate>Wed, 09 May 2007 07:40:26 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Wed, 09 May 2007 09:18:35 GMT]]></title><description><![CDATA[<p>danke erst mal für die Antworten auch wenn es nicht gut verständlich ist ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Also unter Grid Raster (oder Raster Grid) verstehe ich eine räumliche Verteiltung von (Niederschlags)daten die man visuell in ArcView , ArcGis, etc darstellen kann. Bei mir sind das Niederschlagssummen für 4 oder 5 min über ein grosses Gebiet. Ich brauch allerdings nur die Daten für ein kleineres Gebiet (dessen Räumliche Darstellung auch als Grid vorliegt). Ich möchte nun die Daten des kleineren Gebietes aus dem grösseren herausschneiden.<br />
Ich hab seid längerem keine Praxis mehr in GIS also lasst es mich wissen wenn ich was falsch verstehe.</p>
<p>Werner Salomon schrieb:</p>
<blockquote>
<p>ok, wenn das Verschneiden von zwei Grids kein Problem ist, so erläutere uns doch mal, wie das geht (Link ist auch ok) - und wir überlegen dann wie es mit vielen Grids funktionieren könnte.</p>
</blockquote>
<p>Wie gesagt ich hab das schon länger nicht mehr gemacht, allerdings weiss ich dass 2 einzelne Grids in ArcGis zu verschneiden kein so grosses Problem ist. Der befehl dazu lautet:Clip:<br />
ArcToolBox<br />
Analysis Tools &gt;&gt; Extract &gt;&gt; Clip</p>
<p>siehe Link:<a href="http://ifgivor.uni-muenster.de/vorlesungen/Geoinformatik/uebungen/ArcGIS_Beispiele/Beispiel_09/AG_B_09.html" rel="nofollow">http://ifgivor.uni-muenster.de/vorlesungen/Geoinformatik/uebungen/ArcGIS_Beispiele/Beispiel_09/AG_B_09.html</a></p>
<p>rapso schrieb:</p>
<blockquote>
<p>ueber wieviel MB an daten sprechen wir hier?</p>
</blockquote>
<p>Ich spreche hier von 50GB Daten, also jede Menge Grids oder Raster wie man das nun nennen mag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281391</guid><dc:creator><![CDATA[marlouwe]]></dc:creator><pubDate>Wed, 09 May 2007 09:18:35 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Wed, 09 May 2007 09:38:52 GMT]]></title><description><![CDATA[<p>schaut mir ganz danach aus als ob du texturemapping betreiben moechtest <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281407</guid><dc:creator><![CDATA[rapso0]]></dc:creator><pubDate>Wed, 09 May 2007 09:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Wed, 09 May 2007 14:04:28 GMT]]></title><description><![CDATA[<p>Ich habe noch einen guten Link gefunden der genau erklärt wie man in ArcView vorgehen muss um ein Grid aus einem anderen auszustanzen.</p>
<p><a href="http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&amp;d=22136" rel="nofollow">http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&amp;d=22136</a></p>
<p>und zwar unter: Clip a grid to a specific polygon shape.-show me-</p>
<p>das Problem ist halt dass ich das 5000 mal machen muss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281666</guid><dc:creator><![CDATA[marlouwe]]></dc:creator><pubDate>Wed, 09 May 2007 14:04:28 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Wed, 09 May 2007 15:23:59 GMT]]></title><description><![CDATA[<p>Hallo Marlouwe,</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> die Links, die Du angegeben hast, erklären wie man das Verschneiden mit einem Tool namens &quot;ArcGIS&quot; oder so erledigt. Ok - was erwartest Du jetzt als Antwort? Du befindest Dich hier einem C++-Forum. Mal angenommen wir würden Dir hier jetzt den Code posten, der die von Dir beschrieben Aufgabe macht. Was nützt er Dir dann? Wie bekommst Du das in &quot;ArcGIS&quot; hinein?<br />
Wenn Du ein eigenes Tool neben &quot;ArcGIS&quot; erstellen willst, dann müssen wir wiederum wissen, wie das Verschneiden vom Algorithmus her funktioniert (die Erklärung: wie bedient man ArcGIS nützt wenig), oder Du gibst uns einen Link auf eine C++-Bibliothek, die über entsprechende Funktionen verfügt.<br />
Welches Format haben denn Deine Dateien? kannst Du mal einen typischen Auszug posten.</p>
<p>Oder anders gefragt. Was soll das von Dir ersehnte C++-Programm genau tun? was ist der Input und was soll der Output sein?</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281759</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 09 May 2007 15:23:59 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Wed, 09 May 2007 15:57:29 GMT]]></title><description><![CDATA[<p>Ich weiss dass es nicht leicht zu verstehen ist, doch es ist so spezifisch dass ich einfach hoffe dass ich auf jemanden treffe der sich in beidem etwas auskennt: in C++ und in GIS.</p>
<p>Für alle die diese GIS Programme nicht kennen, es handelt sich hier um Software von der Firma ESRI, dazu gehören ua ArcView, ArcGis, ArcInfo etc</p>
<p>In ArcInfo kann man eben mit GIS Daten operieren wobei man sich vorher die dazu benötigte aml datei schreibt und die in ArcInfo einliest.</p>
<p>Hier zB eine aml bei der Grids miteinander multipiziert wurden:</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;math.h&gt;<br />
#include &lt;iostream.h&gt;</p>
<p>int i,filenumb;<br />
int year,month,day,hour,min;//long fileli [600];<br />
int date;<br />
int event;</p>
<p>void main()<br />
{</p>
<p>// 3 variables (output path ´fi1´, event number and date of the event) have to be changed to each event /////////</p>
<p>FILE *fi,*fi1;</p>
<p>fi = fopen (&quot;out91_92.txt&quot;, &quot;r&quot;); //file must be in the same folder or path need to be changed</p>
<p>fi1 = fopen (&quot;aml\\corr41.aml&quot;, &quot;w&quot;); //file name must be changed for each event</p>
<p>filenumb = 19854;</p>
<p>for (i=0 ; i&lt;filenumb; i++)<br />
{<br />
fscanf (fi, &quot;%d %d %d %d %d&quot;, &amp;year,&amp;month,&amp;day,&amp;hour,&amp;min);<br />
fscanf(fi,&quot;\n&quot;);</p>
<p>date = month*1000000 + day*10000 + hour*100 + min;</p>
<p>//event number------------------------<br />
event = 41;<br />
//------------------------------------</p>
<p>//event date--------------------------<br />
//if (date &gt;= 10120800 &amp;&amp; date &lt;= 10150759) //event4<br />
//if (date &gt;= 11020800 &amp;&amp; date &lt;= 11060759) //event9<br />
//if (date &gt;= 11100800 &amp;&amp; date &lt;= 11110759) //event10<br />
//if (date &gt;= 11130800 &amp;&amp; date &lt;= 11140759) //event12<br />
//if (date &gt;= 11270800 &amp;&amp; date &lt;= 12070759) //event15<br />
//if (date &gt;= 12080800 &amp;&amp; date &lt;= 12100759) //event16<br />
//if (date &gt;= 12100800 &amp;&amp; date &lt;= 12110759) //event17<br />
//if (date &gt;= 12110800 &amp;&amp; date &lt;= 12150759) //event18<br />
//if (date &gt;= 12180800 &amp;&amp; date &lt;= 12230759) //event19<br />
//if (date &gt;= 12230800 &amp;&amp; date &lt;= 12300759) //event20<br />
//if (date &gt;= 12300800 &amp;&amp; date &lt;= 12320759 || //event21, also next line!!<br />
// date &gt;= 1010000 &amp;&amp; date &lt;= 1040759)<br />
//if (date &gt;= 1120800 &amp;&amp; date &lt;= 1240759) //event24<br />
//if (date &gt;= 1290800 &amp;&amp; date &lt;= 2150759) //event26<br />
//if (date &gt;= 2150800 &amp;&amp; date &lt;= 2170759) //event27<br />
//if (date &gt;= 2190800 &amp;&amp; date &lt;= 3030759) //event28<br />
//if (date &gt;= 3040800 &amp;&amp; date &lt;= 3060759) //event30<br />
//if (date &gt;= 3120800 &amp;&amp; date &lt;= 3130759) //event31<br />
//if (date &gt;= 3140800 &amp;&amp; date &lt;= 3160759) //event32<br />
//if (date &gt;= 3200800 &amp;&amp; date &lt;= 3240759) //event33<br />
//if (date &gt;= 4120800 &amp;&amp; date &lt;= 4150759) //event37<br />
if (date &gt;= 4200800 &amp;&amp; date &lt;= 4210759) //event41<br />
//------------------------------------</p>
<p>{<br />
fprintf(fi1, &quot;grid\n&quot;);<br />
fprintf(fi1, &quot;setwindow ..\\radar199110\\g10121338\n&quot;);<br />
fprintf(fi1, &quot;setcell ..\\radar199110\\g10121338\n&quot;);</p>
<p>fprintf(fi1, &quot;c&quot;);<br />
if (date &lt; 10000000)<br />
{ fprintf(fi1, &quot;0&quot;);}<br />
fprintf(fi1, &quot;%d&quot;, date);<br />
fprintf(fi1, &quot; = &quot;);</p>
<p>fprintf(fi1, &quot;..\\radar&quot;);<br />
fprintf(fi1, &quot;%d&quot;, year);<br />
if (month &lt; 10)<br />
{ fprintf(fi1, &quot;0&quot;);}<br />
fprintf(fi1, &quot;%d&quot;, month);<br />
fprintf(fi1, &quot;\\g&quot;);<br />
if (date &lt; 10000000)<br />
{ fprintf(fi1, &quot;0&quot;);}<br />
fprintf(fi1, &quot;%d&quot;, date);</p>
<p>fprintf(fi1, &quot; * &quot;);</p>
<p>fprintf(fi1, &quot;..\\bias_grids\\e&quot;);<br />
fprintf(fi1, &quot;%d&quot;, event);</p>
<p>fprintf(fi1, &quot;\n&quot;);</p>
<p>fprintf(fi1, &quot;q\n&quot;);</p>
<p>}</p>
<p>} // von for</p>
<p>fclose(fi);<br />
fclose(fi1);</p>
<p>} // von main</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281777</guid><dc:creator><![CDATA[marlouwe]]></dc:creator><pubDate>Wed, 09 May 2007 15:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Thu, 10 May 2007 21:24:57 GMT]]></title><description><![CDATA[<p>Wenn ich das recht verstehe, so soll das C++-Programm nur ein aml-File erzeugen, was irgendeine Art Makro ist, das von ArcInfo gelesen wird und dann Dir die Klickerei der hunderte Dateien abnimmt.</p>
<p>Der Input ist eine Datei 'out91_92.txt' mit Datums- und Zeit-Angaben. Etwa in der Form</p>
<pre><code>Jahr Monat Tag Stunde Minute
2004 4 20 8 10
2004 4 20 8 11
...
</code></pre>
<p>Output wäre also eine aml-Datei - etwa in dieser Form</p>
<pre><code>grid
setwindow ..\radar199110\g10121338
setcell ..\radar199110\g10121338
c04200810 = ..\radar200404\g04200810 * ..\bias_grids\e41
q
grid
setwindow ..\radar199110\g10121338
setcell ..\radar199110\g10121338
c04200811 = ..\radar200404\g04200811 * ..\bias_grids\e41
q
</code></pre>
<p>.. mit hunderten von Einträgen.</p>
<p>Ich habe Deinen Code (das war C-Code) mal in C++ übersetzt und ein bisschen Fehlerbehandlung eingebaut.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

int main()
{
    using namespace std;
    //event number------------------------
    const int event_ = 41;
    //------------------------------------

    // 3 variables (output path ´fi1´, event number and date of the event) have to be changed to each event /////////

    const char* in_fn = &quot;out91_92.txt&quot;;
    ifstream in( in_fn );       // file must be in the same folder or path need to be changed
    if( !in.is_open() )
    {
        cerr &lt;&lt; &quot;Fehler beim Oeffnen von &quot; &lt;&lt; in_fn &lt;&lt; endl;
        return -1;
    }
    ostringstream out_fn_buf;
    out_fn_buf &lt;&lt; &quot;aml\\corr&quot; &lt;&lt; event_ &lt;&lt; &quot;.aml&quot;;   // Dateiname: &quot;aml/corr&lt;event#&gt;.aml&quot;
    ofstream out( out_fn_buf.str().c_str() );
    if( !out.is_open() )
    {
        cerr &lt;&lt; &quot;Fehler beim Oeffnen von &quot; &lt;&lt; out_fn_buf.str() &lt;&lt; endl;
        return -1;
    }

    const int filenumb = 19854;
    for( int i=0 ; i&lt;filenumb; ++i )
    {
        int year,month,day,hour,min;    //long fileli [600];
        if( !(in &gt;&gt; year &gt;&gt; month &gt;&gt; day &gt;&gt; hour &gt;&gt; min).ignore( 9999, '\n' ) )
        {
            cerr &lt;&lt; &quot;Fehler beim Lesen des &quot; &lt;&lt; (i+1) &lt;&lt; &quot;.Datums in der Datei &quot; &lt;&lt; in_fn &lt;&lt; endl;
            return -1;
        }
        string date;
        {
            // Format: MMDDhhmm
            ostringstream date_buf;
            date_buf.fill( '0' );
            date_buf &lt;&lt; setw(2) &lt;&lt; month &lt;&lt; setw(2) &lt;&lt; day &lt;&lt; setw(2) &lt;&lt; hour &lt;&lt; setw(2) &lt;&lt; min;
            date = date_buf.str();
        }
        //           MMDDhhmm             MMDDhhmm
        if( date &gt;= &quot;04200800&quot; &amp;&amp; date &lt; &quot;04210800&quot; ) // event41: 20.04 8:00 bis 21.04 7:59
        {
            out &lt;&lt; &quot;grid&quot; &lt;&lt; endl;
            out &lt;&lt; &quot;setwindow ..\\radar199110\\g10121338&quot; &lt;&lt; endl;
            out &lt;&lt; &quot;setcell ..\\radar199110\\g10121338&quot; &lt;&lt; endl;

            const char fill_char = out.fill( '0' ); // setw(2) &lt;&lt; month
            out &lt;&lt; &quot;c&quot; &lt;&lt; date &lt;&lt; &quot; = ..\\radar&quot; &lt;&lt; year &lt;&lt; setw(2) &lt;&lt; month &lt;&lt; &quot;\\g&quot; &lt;&lt; date 
                &lt;&lt; &quot; * ..\\bias_grids\\e&quot; &lt;&lt; event_ &lt;&lt; endl;
            out.fill( fill_char );
            out &lt;&lt; &quot;q&quot; &lt;&lt; endl;     // quit
        }
    } // von for
    return 0;
}
</code></pre>
<p>Aus 'date' sollte man noch eine Klasse machen, aber das ist erstmal nicht so wichtig.</p>
<p>Bleiben noch 'ne Menge Fragen: Wie muss dieser Code jetzt verändert oder erweitert werden, um Deinen Anforderungen zu genügen?<br />
Liegt Dir die passende Datei 'out91_92.txt' vor? Musst Du Directories lesen, oder hast Du eine Liste der Dateien? Benötigst Du eine Funktion, die aus einer Event-Nummer das Datums-Intervall erzeugt?<br />
Woher kennst Du die Anzahl der Dateien (hier filenumb = 19854)? Wie muss der Ausgabe-Pfad (welcher Pfad genau ist gemeint) mit der Event-Nummer geändert werden?</p>
<p>Kennst Du einen Link, wo so ein Verschneiden-Algorithmus erklärt ist?</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282687</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 10 May 2007 21:24:57 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Mon, 14 May 2007 14:55:51 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Wenn ich das recht verstehe, so soll das C++-Programm nur ein aml-File erzeugen, was irgendeine Art Makro ist, das von ArcInfo gelesen wird und dann Dir die Klickerei der hunderte Dateien abnimmt.</p>
</blockquote>
<p>Absolut korrekt !! output ist also eine AML Datei (Arc Macro Language) die in ArcInfo eingelesen werden kann</p>
<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Der Input ist eine Datei 'out91_92.txt' mit Datums- und Zeit-Angaben. Etwa in der Form<br />
[code]Jahr Monat Tag Stunde Minute<br />
2004 4 20 8 10<br />
2004 4 20 8 11<br />
...</p>
</blockquote>
<p>Absolut korrekt !! Die datei ist vorhanden und sieht volgendermaßen aus:</p>
<p>von</p>
<p>1991 10 12 13 33<br />
1991 10 12 13 38<br />
1991 10 12 13 42<br />
1991 10 12 13 47<br />
1991 10 12 13 52</p>
<p>etc bis</p>
<p>1992 04 22 10 16<br />
1992 04 22 10 21<br />
1992 04 22 10 26<br />
1992 04 22 10 31<br />
1992 04 22 10 35</p>
<p>Ich hab hier noch von einem Vorgänger (der es von einem vorgäger hat, und alle nicht so richtig bescheid wissen) einen code , der was ähnliches gemacht hat.</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;math.h&gt;
#include &lt;iostream.h&gt;

int i,filenumb;
int year,month,day,hour,min;
int date;

void main()
{
	FILE	*fi,*fi1;

	fi = fopen (&quot;out02_03.txt&quot;, &quot;r&quot;);
	fi1 = fopen (&quot;2003\\gridclip.aml&quot;, &quot;w&quot;);	//number must be changed to correct date; 3 times in this program

	filenumb = 20000; 

	for (i=0 ; i&lt;filenumb; i++)
	{
		fscanf (fi, &quot;%d %d %d %d %d&quot;, &amp;year,&amp;month,&amp;day,&amp;hour,&amp;min);
		fscanf(fi,&quot;\n&quot;);

		date = month*1000000 + day*10000 + hour*100 + min;

	if (year == 2003 &amp;&amp; month == 03 &amp;&amp; day &gt;= 02 &amp;&amp; day &lt;= 30)		// if #1	//number must be changed to correct date;
	{

		fprintf(fi1, &quot;gridclip&quot;);
		fprintf(fi1, &quot; &quot;);
		fprintf(fi1, &quot;g&quot;);

		if (date &lt; 10000000) 
			{ fprintf(fi1, &quot;0&quot;);}
		fprintf(fi1, &quot;%d&quot;, date);

		fprintf(fi1, &quot; &quot;);
		fprintf(fi1, &quot;cg&quot;);

		if (date &lt; 10000000) 
			{ fprintf(fi1, &quot;0&quot;);}
		fprintf(fi1, &quot;%d&quot;, date);

		fprintf(fi1, &quot; &quot;);
		fprintf(fi1, &quot;227178&quot;);

		fprintf(fi1, &quot; &quot;);
		fprintf(fi1, &quot;710761&quot;);

		fprintf(fi1, &quot; &quot;);
		fprintf(fi1, &quot;249028&quot;);

		fprintf(fi1, &quot; &quot;);
		fprintf(fi1, &quot;727111\n&quot;);

		fprintf(fi1, &quot;gridascii&quot;);
		fprintf(fi1, &quot; &quot;);
		fprintf(fi1, &quot;cg&quot;);
		if (date &lt; 10000000) 
			{ fprintf(fi1, &quot;0&quot;);}
		fprintf(fi1, &quot;%d&quot;, date);

		fprintf(fi1, &quot; &quot;);
		if (date &lt; 10000000) 
			{ fprintf(fi1, &quot;0&quot;);}
		fprintf(fi1, &quot;%d\n&quot;, date);

	}	// von if
	}	// von for

	fclose(fi);
    fclose(fi1);

}	// von main
</code></pre>
<p>Ich weiss dass er die gleiche Art von Daten wie ich benutzt hat, halt eben für ein anderes Jahr (2002/03) aber ich weiss nicht wie die genau hiessen oder in welchen Ordnern sie abgespeichert waren.</p>
<p>Um nochmal meine datenlage zu erklären:</p>
<p>Diese vielen 5min Niederschlagsdaten (Rasterdaten) sind zusammengefasst in einzelne Niederschlagsereignisse genannt: &quot;eventx&quot;. Also sagen wir wir haben ein Niederschlagsereignis genannt &quot;event9&quot; , dann haben wir alle 5 min ein Bild (Raster) wärend des Ereignisses. Also im Folder &quot;event9&quot; gehts zB los mit Raster &quot;c11020801&quot;, &quot;c11020806&quot;, &quot;c11020810&quot;, etc bis &quot;c11051402&quot; also die zahlen stehn für &quot;c,Monat,Tag,Stunde,Minute&quot;. Event9 geht also vom 2 Nov um 8:01 bis 5 Nov um 14:02.</p>
<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Musst Du Directories lesen, oder hast Du eine Liste der Dateien?</p>
<p>Benötigst Du eine Funktion, die aus einer Event-Nummer das Datums-Intervall erzeugt?</p>
</blockquote>
<p>kann das die Lösung sein ?:</p>
<pre><code class="language-cpp">//event number------------------------
		event = 41;
//------------------------------------

//event date--------------------------
		//if (date &gt;= 10120800 &amp;&amp; date &lt;= 10150759)	//event4
		//if (date &gt;= 11020800 &amp;&amp; date &lt;= 11060759)	//event9
		//if (date &gt;= 11100800 &amp;&amp; date &lt;= 11110759)	//event10
		//if (date &gt;= 11130800 &amp;&amp; date &lt;= 11140759)	//event12
		//if (date &gt;= 11270800 &amp;&amp; date &lt;= 12070759)	//event15
		//if (date &gt;= 12080800 &amp;&amp; date &lt;= 12100759)	//event16
		//if (date &gt;= 12100800 &amp;&amp; date &lt;= 12110759)	//event17
		//if (date &gt;= 12110800 &amp;&amp; date &lt;= 12150759)	//event18
		//if (date &gt;= 12180800 &amp;&amp; date &lt;= 12230759)	//event19
		//if (date &gt;= 12230800 &amp;&amp; date &lt;= 12300759)	//event20
		//if (date &gt;= 12300800 &amp;&amp; date &lt;= 12320759 ||	//event21, also next line!!
		//		date &gt;= 1010000 &amp;&amp; date &lt;= 1040759)
		//if (date &gt;= 1120800 &amp;&amp; date &lt;= 1240759)	//event24
		//if (date &gt;= 1290800 &amp;&amp; date &lt;= 2150759)	//event26
		//if (date &gt;= 2150800 &amp;&amp; date &lt;= 2170759)	//event27
		//if (date &gt;= 2190800 &amp;&amp; date &lt;= 3030759)	//event28
		//if (date &gt;= 3040800 &amp;&amp; date &lt;= 3060759)	//event30
		//if (date &gt;= 3120800 &amp;&amp; date &lt;= 3130759)	//event31
		//if (date &gt;= 3140800 &amp;&amp; date &lt;= 3160759)	//event32
		//if (date &gt;= 3200800 &amp;&amp; date &lt;= 3240759)	//event33
		//if (date &gt;= 4120800 &amp;&amp; date &lt;= 4150759)	//event37
		if (date &gt;= 4200800 &amp;&amp; date &lt;= 4210759)	//event41
//------------------------------------
</code></pre>
<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Woher kennst Du die Anzahl der Dateien (hier filenumb = 19854)?</p>
</blockquote>
<p>Weiss ich nicht genau, hab das einfach so übernommen, an der Anzahl der dateien hat sich ja nichts geändert</p>
<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Wie muss der Ausgabe-Pfad (welcher Pfad genau ist gemeint) mit der Event-Nummer geändert werden?</p>
</blockquote>
<p>HAb ich auch keinen blassen schimmer</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1284712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1284712</guid><dc:creator><![CDATA[marlouwe]]></dc:creator><pubDate>Mon, 14 May 2007 14:55:51 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Tue, 15 May 2007 20:37:25 GMT]]></title><description><![CDATA[<p>marlouwe schrieb:</p>
<blockquote>
<p>.. HAb ich auch keinen blassen schimmer</p>
</blockquote>
<p>das ist zuwenig um daraus ein Programm zu machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Damit fragst Du uns hier mehr oder weniger in welchen Directories und mit welchen Filenamen die Daten untergebracht sind, die bei Dir auf der Platte (oder Server) liegen.<br />
Das musst Du schon selber wissen, welche Dateien das sind, die zu einem Raster verschnitten werden sollen (die eines Events?). Das hat weder was mit C++ noch was mit 'wie benutzte ich ArcInfo' zu tun, sondern mit der Datenhaltung bei Dir.</p>
<p>Versuche noch mal selber heraus zu bekommen welche Datei-Namen in eine aml-Datei hineinkommen. Wenn Du es mit Worten vollständig erklären kannst, sollte es kein Problem sein, ein C++-Programm daraus zu machen.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1285789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1285789</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 15 May 2007 20:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to Grid Raster miteinander verschneiden on Wed, 16 May 2007 17:13:08 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Wie muss der Ausgabe-Pfad (welcher Pfad genau ist gemeint) mit der Event-Nummer geändert werden?</p>
</blockquote>
<p>Ich weiss nicht ob ich die Frage richtig verstanden habe, aber ich denke ich brauch für jedes Event eine aml Datei.</p>
<p>wie gesagt</p>
<p>marlouwe schrieb:</p>
<blockquote>
<p>Also im Folder &quot;event9&quot; gehts zB los mit Raster &quot;c11020801&quot;, &quot;c11020806&quot;, &quot;c11020810&quot;, etc bis &quot;c11051402&quot; also die zahlen stehn für &quot;c,Monat,Tag,Stunde,Minute&quot;. Event9 geht also vom 2 Nov um 8:01 bis 5 Nov um 14:02.</p>
</blockquote>
<p>Es sind alles in allem 20 events wenn ich mich recht erinner(bin im Moment nicht im Büro, werd das aber morgen nachprüfen). Ein Event kann locker 3 Tage dauern, und ich hab alle 5 min ein Rasterbild , dass können ganz schnell eine ganze Menge werden. Verschnitten werden müssen also alle Rasterbilder von alle Events mit jeweils immer dem selben einen Rasterbild des Einzugsgebiets. Ich versuch später noch eine Skizze anzufertigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286358</guid><dc:creator><![CDATA[marlouwe]]></dc:creator><pubDate>Wed, 16 May 2007 17:13:08 GMT</pubDate></item></channel></rss>