[Geoserver-users] Multidimensional Image Mosaic REST configuration question(s)

As I continue to work on REST-based configuration of some Image Mosaic stores, I know I will run into some questions, so I thought I would start a thread for those here. I hope that is ok.

My first question here involves the time attribute / dimension for a store. Specifically, I am using the new indexer.xml form of the indexer for the image mosaic, but I am using it with geotiffs. This has worked fine in the past, with some pointers from Daniele and others.

If I create a new image mosaic through the web interface and allow it to collect my granules at the same time, everything works fine. The auto-generated .properties file for the mosaic contains the TimeAttribute= entry as expected, and when I go to publish a layer, the time dimension is populated correctly with the value of the TimeAttribute.

However, when I zip up the indexer.xml and datastore.properties files and use the REST interface to create an empty mosaic, then use the REST interface again to harvest my granules, the auto-generated .properties file does not contain the TimeAttribute= entry, and the web interface says the time dimension is disabled (“Cannot enable, no attribute of type Date found”).

Oddly, everything in the database is fine … the attribute for the time is parsed correctly for each file. If I manually add the TimeAttribute= back to the auto-generated .properties file and reload the GeoServer configuration, then it works. It just seems, then, that the attribute isn’t getting added to properties when I harvest via REST.

I am pasting my indexer.xml file below. I have dug into the code and have tried adding the TimeAttribute to the parameters but it still seems to no avail.

I greatly appreciate the help!

  • Mike Grogan
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> validtime level the_geom:Polygon,location:String,validtime:java.util.Date,level:String wind regex=[0-9]{8}T[0-9]{9}Z TimestampFileNameExtractorSPI validtime (?<=Z_)([a-zA-Z0-9]+) StringFileNameExtractorSPI level

Hi Mike,

I think that the only way to investigate into the issue is to debug the code.

Do you have any chance to open a JIRA for this?
I think you can simply paste the explanations you provided in this email.
Please, also attach the sample zip, containing data (even fake pixels but proper naming), indexer, and so on, which you have used to do the harvest as well as the steps you performed to do the creation/harvesting.

Hope this helps.

Regards,

Daniele

···

On Tue, Mar 31, 2015 at 10:04 PM, Mike Grogan <d.michael.grogan@anonymised.com> wrote:

As I continue to work on REST-based configuration of some Image Mosaic stores, I know I will run into some questions, so I thought I would start a thread for those here. I hope that is ok.

My first question here involves the time attribute / dimension for a store. Specifically, I am using the new indexer.xml form of the indexer for the image mosaic, but I am using it with geotiffs. This has worked fine in the past, with some pointers from Daniele and others.

If I create a new image mosaic through the web interface and allow it to collect my granules at the same time, everything works fine. The auto-generated .properties file for the mosaic contains the TimeAttribute= entry as expected, and when I go to publish a layer, the time dimension is populated correctly with the value of the TimeAttribute.

However, when I zip up the indexer.xml and datastore.properties files and use the REST interface to create an empty mosaic, then use the REST interface again to harvest my granules, the auto-generated .properties file does not contain the TimeAttribute= entry, and the web interface says the time dimension is disabled (“Cannot enable, no attribute of type Date found”).

Oddly, everything in the database is fine … the attribute for the time is parsed correctly for each file. If I manually add the TimeAttribute= back to the auto-generated .properties file and reload the GeoServer configuration, then it works. It just seems, then, that the attribute isn’t getting added to properties when I harvest via REST.

I am pasting my indexer.xml file below. I have dug into the code and have tried adding the TimeAttribute to the parameters but it still seems to no avail.

I greatly appreciate the help!

  • Mike Grogan
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> validtime level the_geom:Polygon,location:String,validtime:java.util.Date,level:String wind regex=[0-9]{8}T[0-9]{9}Z TimestampFileNameExtractorSPI validtime (?<=Z_)([a-zA-Z0-9]+) StringFileNameExtractorSPI level

Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/


Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.

Daniele,

I have spent about 5 hours today putting together an extensive set of test data, indexer files, and cases for this to submit a JIRA … but JIRA will no longer let me submit issues for GeoServer under my account, even though I have done so in the past. Have you guys locked down who can submit issues or something? Is there a special dance I need to do to find where to submit issues? User error? (Quite possibly user error, though I know JIRA continues to be frustrating for a lot of people asked to submit issues). So, until that gets figured out I can’t submit a JIRA with the data.

I’ll be glad to submit the JIRA and the test data there if someone can help me. I can also e-mail you the test data directly as a zip. Would you want that?

Until then, I am including here the summary information I was going to submit with the JIRA ticket.

Thanks,

Mike

···

On Wed, Apr 1, 2015 at 4:33 AM, Daniele Romagnoli <daniele.romagnoli@anonymised.com> wrote:

Hi Mike,

I think that the only way to investigate into the issue is to debug the code.

Do you have any chance to open a JIRA for this?
I think you can simply paste the explanations you provided in this email.
Please, also attach the sample zip, containing data (even fake pixels but proper naming), indexer, and so on, which you have used to do the harvest as well as the steps you performed to do the creation/harvesting.

Hope this helps.

Regards,

Daniele

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.

On Tue, Mar 31, 2015 at 10:04 PM, Mike Grogan <d.michael.grogan@anonymised.com> wrote:

As I continue to work on REST-based configuration of some Image Mosaic stores, I know I will run into some questions, so I thought I would start a thread for those here. I hope that is ok.

My first question here involves the time attribute / dimension for a store. Specifically, I am using the new indexer.xml form of the indexer for the image mosaic, but I am using it with geotiffs. This has worked fine in the past, with some pointers from Daniele and others.

If I create a new image mosaic through the web interface and allow it to collect my granules at the same time, everything works fine. The auto-generated .properties file for the mosaic contains the TimeAttribute= entry as expected, and when I go to publish a layer, the time dimension is populated correctly with the value of the TimeAttribute.

However, when I zip up the indexer.xml and datastore.properties files and use the REST interface to create an empty mosaic, then use the REST interface again to harvest my granules, the auto-generated .properties file does not contain the TimeAttribute= entry, and the web interface says the time dimension is disabled (“Cannot enable, no attribute of type Date found”).

Oddly, everything in the database is fine … the attribute for the time is parsed correctly for each file. If I manually add the TimeAttribute= back to the auto-generated .properties file and reload the GeoServer configuration, then it works. It just seems, then, that the attribute isn’t getting added to properties when I harvest via REST.

I am pasting my indexer.xml file below. I have dug into the code and have tried adding the TimeAttribute to the parameters but it still seems to no avail.

I greatly appreciate the help!

  • Mike Grogan
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> validtime level the_geom:Polygon,location:String,validtime:java.util.Date,level:String wind regex=[0-9]{8}T[0-9]{9}Z TimestampFileNameExtractorSPI validtime (?<=Z_)([a-zA-Z0-9]+) StringFileNameExtractorSPI level

Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/


Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Hi Mike,

Current JIRA is being shut down by the folks who host it. The GeoServer devs are in the process of switching it over to somewhere else, but it’s in-progress I believe.

You may wish to see this post from the dev list: http://osgeo-org.1560.x6.nabble.com/New-jira-instance-ready-for-new-ticket-creation-td5196375.html

Cheers,

Jonathan

···

Daniele,

I have spent about 5 hours today putting together an extensive set of test data, indexer files, and cases for this to submit a JIRA … but JIRA will no longer let me submit issues for GeoServer under my account, even though I have done so in the past. Have you guys locked down who can submit issues or something? Is there a special dance I need to do to find where to submit issues? User error? (Quite possibly user error, though I know JIRA continues to be frustrating for a lot of people asked to submit issues). So, until that gets figured out I can’t submit a JIRA with the data.

I’ll be glad to submit the JIRA and the test data there if someone can help me. I can also e-mail you the test data directly as a zip. Would you want that?

Until then, I am including here the summary information I was going to submit with the JIRA ticket.

Thanks,

Mike

=======================================================================

Environment:

GeoServer

Version

2.6.2

Git Revision

d8d01ae1fb41132bc15794670834c5606fdfa991

Build Date

20-Jan-2015 01:54

GeoTools Version

12.2 (rev a40c4d86948338d52120588f3ada518e923a57d8)

GeoWebCache Version

1.6.1 (rev 1.6.x/01bbae5727a8a05babbd06e0dc2d4024e9318362)

GeoServer 2.6.2

PostgrsSQL 9.3.6

Distributor ID: Ubuntu

Description: Ubuntu 14.04.1 LTS

Release: 14.04

Codename: trusty

=======================================================================

I have discovered an issue where GeoServer behaves significantly differently when creating Image Mosaics via REST commands in different circumstances for GeoTIFF files using the new indexer.xml index specification format.

These differences can depend on whether or not granules are submitted with the uploaded zip file for immediate harvesting versus creating an empty mosaic and performing harvesting with another subsequent command.

These differences significantly impact the naming of the .properties file in the resulting data directory, the naming of the database table used to store granule metadata, and, most importantly, whether or not the Image Mosaic plugin will honor the existence of a time domain.

At Daniele’s request, I am including a zip file of data and test cases I have performed. The data, though renamed, were taken from GeoSolutions’ temperature dataset in their multidimensional training modules. The output.txt file contains output of scripted tests in runcases.bash.

I will describe the cases and results here:

In case one, I do not include any parameters in my indexer.xml file. I upload the tiff granules in the zip file with datastore.properties and indexer.xml and my REST request asks for immediate harvesting (omits the ?configure=none). The “Automagically created” caseone.properties file in the appropriate data directory correctly includes my TimeAttribute. The database table for the granules is properly created, contains all granule metadata, and is properly named caseone. The GeoServer UI allows me to publish layers with a time dimension. All seems correct for case one.

In case two, I do not include files for harvesting in the zip file and delay harvesting using ?configure=none in my REST request. I add the AbsolutePath and CanBeEmpty parameters to the indexer.xml file. When I submit my REST request for harvesting, the .properties file is created as index.properties (instead of casetwo.properties) and DOES NOT include my TimeAttribute. The database table for the granules is created but is named index as well. It does, however, contain all granule metadata including that for the TimeAttribute. The GeoServer UI will not allow me to publish layers with a time dimension.

In case three, I add the “Name” parameter in and give it a value of “casethree”, but keep the name in different. I also delay harvesting as in case two. Upon harvesting, the .properties file is created as casethree.properties but still DOES NOT INCLUDE the TimeAttribute. The database table for the granules is created and named casethree and, like case two, does contain all granule metadata including that for the TimeAttribute. The GeoServer UI will not allow me to publish layers with a time dimension.

Case four is where everything returns to expected behavior. In this case, an empty mosaic is created and harvesting is delayed as in cases two and three. The name used in both the portion and the portion of the indexer.xml file is “casefour”. Upon subsequent harvesting of granules with another REST command, the .properties file is created as casefour.properties and INCLUDES the TimeAttribute! The database table is created and named casefour, and still contains all of the right metadata. The GeoServer UI WILL allow me to publish layers with a time dimension.

On Wed, Apr 1, 2015 at 4:33 AM, Daniele Romagnoli <daniele.romagnoli@…1107…> wrote:

Hi Mike,

I think that the only way to investigate into the issue is to debug the code.

Do you have any chance to open a JIRA for this?
I think you can simply paste the explanations you provided in this email.
Please, also attach the sample zip, containing data (even fake pixels but proper naming), indexer, and so on, which you have used to do the harvest as well as the steps you performed to do the creation/harvesting.

Hope this helps.

Regards,

Daniele

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.

On Tue, Mar 31, 2015 at 10:04 PM, Mike Grogan <d.michael.grogan@…84…> wrote:

As I continue to work on REST-based configuration of some Image Mosaic stores, I know I will run into some questions, so I thought I would start a thread for those here. I hope that is ok.

My first question here involves the time attribute / dimension for a store. Specifically, I am using the new indexer.xml form of the indexer for the image mosaic, but I am using it with geotiffs. This has worked fine in the past, with some pointers from Daniele and others.

If I create a new image mosaic through the web interface and allow it to collect my granules at the same time, everything works fine. The auto-generated .properties file for the mosaic contains the TimeAttribute= entry as expected, and when I go to publish a layer, the time dimension is populated correctly with the value of the TimeAttribute.

However, when I zip up the indexer.xml and datastore.properties files and use the REST interface to create an empty mosaic, then use the REST interface again to harvest my granules, the auto-generated .properties file does not contain the TimeAttribute= entry, and the web interface says the time dimension is disabled (“Cannot enable, no attribute of type Date found”).

Oddly, everything in the database is fine … the attribute for the time is parsed correctly for each file. If I manually add the TimeAttribute= back to the auto-generated .properties file and reload the GeoServer configuration, then it works. It just seems, then, that the attribute isn’t getting added to properties when I harvest via REST.

I am pasting my indexer.xml file below. I have dug into the code and have tried adding the TimeAttribute to the parameters but it still seems to no avail.

I greatly appreciate the help!

  • Mike Grogan
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

validtime

level

the_geom:Polygon,location:String,validtime:java.util.Date,level:String

wind

regex=[0-9]{8}T[0-9]{9}Z

TimestampFileNameExtractorSPI

validtime

(?<=Z_)([a-zA-Z0-9]+)

StringFileNameExtractorSPI

level


Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/


Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

This message has been scanned for viruses by MailControl, a service from BlackSpider Technology

Click here to report this email as spam.